美文网首页
Java编程思想阅读笔记-第5章初始化与清理-练习

Java编程思想阅读笔记-第5章初始化与清理-练习

作者: gdchent | 来源:发表于2019-01-16 11:01 被阅读0次

    练习1:创建一个类,它包含一个未初始化的String引用,验证该引用被Java初始化成null(代码如下)

    public class StringTest {
        String string;
        public StringTest(){
            System.out.println("string"+string);
        }
    
    }
    

    main函数代码如下:

    public class RxJavaTest {
    
        public static void main(String ...args){
            StringTest stringTest=new StringTest();
        }
    

    创建一个类,它包含一个在定义时就被初始化了的String域,以及另一个通过构造器初始化的String域。这两种方式有何差异?代码如下:

    public class StringTest {
        String string;
        String str1=null;
        String str2="str2";
        String str3=str1;
        public StringTest(){
            System.out.println("string"+string);
        }
    
        public StringTest(String string){
            this.str1=string;
        }
    
    }
    
    public class RxJavaTest {
        public static void main(String ...args){
            byte a = 127;
            byte b = 127;
            //a = a + b;   //报
            // 错
            int c=(a+=b);
    
            /**
             * 分析:
             * 成员变量string 定义并未被初始化
             * 成员变量str1定义并初始化为null
             * 成员变量str2定义并初始化为"str2"
             *成员变量str3为null
             */
            StringTest stringTest1=new StringTest();
    
            StringTest stringTest2=new StringTest("测试String构造器");
            System.out.println("str1:"+stringTest2.str1);
            System.out.println("str2:"+stringTest2.str2);
            System.out.println("str3:"+stringTest2.str3);
        }
    }
    
    

    得出结论:声明成员变量未赋值 默认初始化为null,声明成员变量通过构造函数初始化默认会调用2次

    相关文章

      网友评论

          本文标题:Java编程思想阅读笔记-第5章初始化与清理-练习

          本文链接:https://www.haomeiwen.com/subject/fmwpdqtx.html