20145313张雪纯 《Java程序设计》第3周学习总结 20145313张雪纯 《Java程序设计》第3周学习总结

教材学习内容总结

4.1.1 定义类

package four;

class Clothes{
String color;
char size;
}
public class ClassObject {
public static void main(String[] args){
Clothes sun=new Clothes();
Clothes spring=new Clothes();

sun.color="red";
sun.size='S';
spring.color="green";
spring.size='M';
System.out.printf("sun(%s,%c)%n", sun.color,sun.size);
System.out.printf("spring(%s,%c)%n", spring.color,spring.size);
	}
}

由实例理解定义类。注意:

  • 一个原始码中可以有多个类定义,但只有一个是公开类,并且文档中的主文档名必须和公开类名称相同。

  • 程序中建立了两个类,一个是公开类,一个是非公开的Clothes;建立了两个Clothes实例,并分别声明了sun与spring两个名称来参考。

      package four;
    
      class Clothes2{
      String color;
      char size;
      Clothes2(String color,char size){    //构造函数
      this.color=color;  
      this.size=size;        //由于color参数与数据成员color同名,所以要使用this表示
      }
      }
      public class ClassObject1 {
      public static void main(String[] args){
      	Clothes2 sun=new Clothes2("red",'s');
      	Clothes2 spring=new Clothes2("queen",'m');
      	System.out.printf("sun(%s,%c)%n", sun.color,sun.size);
      	System.out.printf("spring(%s,%c)%n", spring.color,spring.size);
      }
      }
    

也可使用构造函数的方法建立对象,可以直接传入数据成员值。

4.1.2使用标准类

  • java.util.Scanner会帮你扫描标准输入。
  • java.math.BigDecimal会以默认精度进行计算,防止浮点数运算错误的情况。

4.1.3对象指定与相等性

'='用于绑定对象,'=='用于比较二者参考对象是否相同,'a.equals(b)'表示二者所绑对象的内含值是否相同。

4.2.1打包基本类型

Long、Integer、double、float、boolean等类是所谓打包器,主要目的是提供对象实例作为“壳”,价格基本类型打包在对象中,可以将基本类型答案做对象操作。

4.2.2自动装箱、拆箱

自动装箱拆箱可以使程序更简洁,如'Integer data1=10'、'int i=10;Integer wrapper=i;''Number number=3.14f'。在运算时编译程序会自动拆箱。

4.2.3自动装箱拆箱的内幕

如果数值超出类的范围,就会建立新的实例,用'=='做比较易出错,若想比较数值应用equals()。

4.3.1数组基础

java中的数组和C语言有一些不同之处。一般声明数组是在类型关键词后如'int[] score',定义的时候不必规定数组长度,指出单个数值时需要在'[]'里标明序号,若想知道数组长度则需要用length属性,若是二维数组则需要用'cords.length'得知列数,再由'cords[x].length'得知行数。

4.3.2操作数组对象

使用'new'建立数组后每个索引元素会有初始值,可以用'java.util.Arrays'的'fill()'方法更改默认值。

4.3.3数组复制

'int[] scores2=scores1'并不是数组复制,只是把'scores1'的参考对象也给'scores2'做参考对象。所以要复制数组需要用到for循环新建数组,或者直接使用'System.arraycopy()'方法/'Arrays.copyOf()'方法。

4.4.1字符串基础

字符串在Java中是对象,可以用'+'连接字符串。

4.4.2字符串特性

在Java中为了效率,相同的字符串无论出现多少次都只建立一个实例,但是用'new'一定是建立新对象。

4.4.3字符串编码

4.5查询Java API文件

5.1何谓封装

封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作。用户使用程序却不知道细节,要调用数据必须通过提供的方法。

5.2类语法细节

如果想在其他包的类程序代码中存取某包的类或对象成员,则必须是公开成员,要用public加以声明。'this()'代表了调用另一个构造函数,调用哪个函数视自变量类型与数量而定。声明'static',表示属于类,不会被个别对象拥有。在'static'区块中不能出现'this',在其方法中不能使用非static数据或方法成员。

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

'Integer[][] cords=new Integer[3][2]'里为什么建立了0个Integer实例?

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

课后10.

public class Main {
public intsome(int... numbers) {       
  int sum = 0;        
   for(int number : numbers) {    
         sum += number;          }      
    return sum;      }
	public static void main(String[] args) {
		System.out.println(sum(1, 2, 3));
	}
}  

为什么会编译失败?

其他

'='的用法和C语言很不同。函数等等也有较大差异。在编写程序的时候一定要区分两种语言的差别,不要混淆。Java API文件和C语言里的库很像,想调用库里的函数必须先声明库,同样,想调用API里的方法要先声明API。

代码托管

20145313张雪纯 《Java程序设计》第3周学习总结
20145313张雪纯 《Java程序设计》第3周学习总结

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/1 20/20 编写简单程序
第二周 350/550 1/2 30/30 用IDE调试修改程序
第三周 500/1050 1/3 35/35
第四周

参考资料