动手动脑总结

1.以下代码为何无法通过编译,哪儿出错了

 

如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。

 

2.以下代码输出什么结果

 

 

 

 输出结果: 100
       300

 

“public int field=100;”将field初始化为100,直接调用InitializeBlockClass()输出的是100;

“obj=new InitializeBlockClass(300);”是利用构造方法进行初始化,此时输出的值是300。

 

3.请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。

静态初始化块的执行顺序:

1.静态初始化块只执行一次
2.创建子类型的对象时,也会导致父类型的静态初始化块的执行。

 


4.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

public class test
{
    
         int a=0;//类的实例变量,初始化值为1
         public static void method()//静态方法
         {  
           System.out.println("实例变量a="+new test().a);//在静态方法中访问类的实例变量需首先进行类的实例化
         }
         public static void main(String[] args)
         {
                 test.method();
                 test t = new test();
                 System.out.println("a="+t.a);
          }
}

 

 
posted on 2020-10-08 18:10  季昂  阅读(69)  评论(0编辑  收藏  举报