20155339 2016-2017 2 《Java程序设计》第2周学习总结

20155339 2016-2017-2 《Java程序设计》第2周学习总结

教材学习内容总结

这周学习了课本的第三章,主要内容是JAVA的基础语法,在这章的学习过程中我发现大部分与c语言的语法相差无几,但也有一些是与c语言不同的地方。

类型

在JAVA中分为基本类型和类类型两大类型系统。
JAVA中的基本类型主要分为如下几类:
1.整数:分为short(2字节)、int(4字节)与long(8字节)。
2.字节:byte,长度为一字节,若表示整数,可表示-128~127的整数。
3.浮点数:主要用来存储小数,可分为float(4字节)double(8字节)。
4.字符:char类型。每个字符占两字节。
5.布尔:boolean类型可表示为true与false。boolean类型不能用于运算。
其实不用记忆各种类型可存储的数值类型,可以通过API来得知。如下:

public class Range {public static void main(String[] args){

//byte、short、int、long的范围
    System.out.printf("%d~%d%n", Byte.MIN_VALUE, Byte.MAX_VALUE);
    System.out.printf("%d~%d%n", Short.MIN_VALUE, Short.MAX_VALUE);
    System.out.printf("%d~%d%n", Integer.MIN_VALUE, Integer.MAX_VALUE);
    System.out.printf("%d~%d%n", Long.MIN_VALUE, Long.MAX_VALUE);

//float double的范围
    System.out.printf("%d~%d%n", Float.MIN_EXPONENT, Float.MAX_EXPONENT);
    System.out.printf("%d~%d%n", Double.MIN_EXPONENT, Double.MAX_EXPONENT);

//char的范围
    System.out.printf("%h~%h%n", Character.MIN_VALUE, Character.MAX_VALUE);

//布尔型
    System.out.printf("%b~%b%n", Boolean.TRUE, Boolean.FALSE);
}
}

变量

  • 变量的作用:用来暂时存储资料。
  • 变量命名时不可以使用数字作为开头,也不可以使用一些特殊字符同时不能与JAVA的关键字与保留字同名。
  • 可以运用驼峰式命名法。

运算符

1.加(+)、减(-)、乘(*)、除(/)以及取余(%)。
2.比较、条件运算,当比较条件成立的时候以boolean类型true表示,反之用该类型的false表示,通过程序来学习这部分内容如下:
代码:

public class Comparison {
    public static void main(String[] args){
        System.out.printf("10>5结果%b%n",10>5);
        System.out.printf("10>=5结果%b%n",10>=5);
        System.out.printf("10<5结果%b%n",10<5);
        System.out.printf("10<=5结果%b%n",10<=5);
        System.out.printf("10==5结果%b%n",10==5);
        System.out.printf("10!=5结果%b%n",10!=5);
    }
}

  • 此处注意与=的区别。用于判断是否相等,=表示赋值。
    3.逻辑运算
    主要有:“且”&&,“或”||,“反相”!。
    4.位运算
    按位做运算,&(and)、|(or)、^(xor)与~(补码)、<<(左移)、>>(右移)。
    进行简单的尝试
public class Bitwise {
    public static void main(String[] args){
        System.out.println("AND 运算:");
        System.out.printf("0 AND 0 %5d%n", 0&0);
        System.out.printf("0 AND 1 %5d%n", 0&1);
        System.out.printf("1 AND 0 %5d%n", 1&0);
        System.out.printf("1 AND 1 %5d%n", 1&1);

        System.out.println("\nOR 运算:");
        System.out.printf("0 OR 0 %6d%n", 0|0);
        System.out.printf("0 OR 1 %6d%n", 0|1);
        System.out.printf("1 OR 0 %6d%n", 1|0);
        System.out.printf("1 OR 1 %6d%n", 1|1);

        System.out.println("\nXOR 运算:");
        System.out.printf("0 XOR 0 %5d%n", 0^0);
        System.out.printf("0 XOR 1 %5d%n", 0^1);
        System.out.printf("1 XOR 0 %5d%n", 1^0);
        System.out.printf("1 XOR 1 %5d%n", 1^1);
}
}

左移运算符将所有位往左移指定位数,左边被挤出去的位会被弄丢,而右边补上0;右移则向右移,最左边补上原来的位。使用左右移来计算简单的2的n次方,代码及运行结果如下:

public class openhome {
    public static void main(String[] args){
        int num=1;  
        System.out.printf("2 的 0 次方: %d%n", num);
        System.out.printf("2 的 1 次方: %d%n", num<<1);
        System.out.printf("2 的 2 次方: %d%n", num<<2);
        System.out.printf("2 的 3 次方: %d%n", num<<3);
    }
}

5.递增递减运算
此处需要注意++、--在运算符前面还是运算符后面,如果写在变量前,表示先将变量值加或减一,然后再返回变量值;将++或--运算符写在变量后,表示先返回变量值再加或减1。

类型转换

在类型转换中要注意如果你确定要是用某一类型是要进行强制类型转换,例如

short a=1;
short b=2;
short c=(short) (a+b);

流程控制语句

这部分内容包括if-else和switch两个条件式,以及for、while两个循环式,以及break、continue.
1.条件式
if-else语句与switch都是条件语句,在一定情况下两者可以相互转化,但是switch语句的变量或表达式的值必须是整数、字符、字符串或Enum,在这些情况下需要判断好是用if-else还是switch,正确的判断好用哪个可以极大的简化程序提高程序的效率,利用一个例子来练习同时比较两者的差别

public class Level {public static void main(String[] args){
    int score=88;
    char level;
    if(score >= 90){
        level='A';
    }
    else if(score >= 80&&score<90){
        level='B';
    }
    else if(score >=70&&score<80){
        level='C';
    }
    else if(score>=60&&score<70){
        level='D';
    }
    else level='E';

System.out.printf("得分等级:%c%n", level);
}
}
public class Level2 {
        public static void main(String[] args){
            int score = 88;
            int q = score / 10;
            char level;
            switch(q){
                case 10:
                case 9:
                    level = 'A';
                    break;
                case 8:
                    level = 'B';
                    break;
                case 7:
                    level = 'C';
                    break;
                case 6:
                    level = 'D';
                    break;
                default:
                    level = 'E';
                
            }
            System.out.printf("得分等级:%c%n", level);

        }
}

2.循环式有for,while,do-while,其中while是第一次就开始判断循环的条件是否成立,do-while是先执行一次再判断是否再次循环。

break和continue

break可以离开当前所处的循环或条件语块,continue与break类似,但在循环语句中只会略过之后描述句,并回到循环区块开头进行下一次循环,并不会离开循环。

教材学习中的问题和解决过程

  • 问题1:对于Enum是什么不清楚
  • 解决:通过上网查询知道了是枚举类型,在使用中有如下规定:
    1.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
  1. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2等等。
  2. 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换。

代码调试中的问题和解决过程

这次都是按着书上一步一步操作的没有遇到什么问题。

代码托管

  • 代码提交过程截图:

  • 代码量截图:

上周考试错题总结

  • 第19题:在src目录中编译图2.23中Main.java代码的命令是(javac –d . Main.java).忘记了要写入-d,-d指定了编译完成的位码存放文件夹。
  • 第21题:教材P49,第4题(d)原因还是不清楚。
  • 第28题: git log 命令来查看(提交历史)
  • 第30题:IDEA教程中有关调试有四种断点:行断点,方法(函数)断点,(条件断点)和临时断点。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/4 20/20
第二周 145/165 1/5 12/32

参考:软件工程软件的估计为什么这么难软件工程 估计方法

参考资料

posted @ 2017-03-04 20:17  20155339平措卓玛  阅读(261)  评论(5编辑  收藏  举报