5、初始化与清理

5.1 用构造器确保初始化

  1、构造器与类名相同,构造器没有返回值,这与返回值为"void"明显不同。

  2、构造器有助于减少错误,并使代码更易于阅读,Java中的"初始化"和"创建"是捆绑在一起的,两者不可分离 

  练习一创建一个类,它包含一个未初始化的String引用,验证该引用被Java初始化成了null

 1 package cn.gyg.test;
 2 /*
 3 练习1:创建一个类,它包含一个未初始化的String引用,验证该引用被Java初始化成了null
 4 */
 5 public class Test01 {
 6     public static String str1;
 7     public static void main(String[] args) {
 8         System.out.println(str1);
 9     }
10 }
11 
12 out:null
练习一
 练习二:创建一个类,它包含一个在定义时就被初始化了的String域,以及另一个通过构造器
      初始化的String域。这两种方式有和差异
 1 package cn.gyg.test;
 2 
 3 /*
 4 练习二:创建一个类,它包含一个在定义时就被初始化了的String域,以及另一个通过构造器
 5 初始化的String域。这两种方式有和差异
 6 */
 7 public class Test02 {
 8 
 9     public static String str1 = "aaa";
10     public static String str2;
11 
12     public static void main(String[] args) {
13         System.out.println("----------创建对象前---------");
14 
15         System.out.println("str1:" + str1);
16         System.out.println("str2:" + str2);
17         System.out.println("----------创建对象后---------");
18         new Test02("bbb");
19         System.out.println("str1:" + str1);
20         System.out.println("str2:" + str2);
21     }
22 
23     /*区别:str1在类加载的时候被初始化为"aaa"
24             str2在类加载的时候被初始化为null
25             str2在创建对象的时候被初始化为"str2"
26     */
27     public Test02(String s) {//通过构造器初始化str2
28         this.str2 = s;
29     }
30 
31     public Test02() {
32     }
33 }
34 
35 out:
36 ----------创建对象前---------
37 str1:aaa
38 str2:null
39 ----------创建对象后---------
40 str1:aaa
41 str2:bbb
练习二

5.2 方法重载

猜你喜欢

转载自www.cnblogs.com/guyuangang/p/11781071.html