动手动脑03
1.
使用上页幻灯片中定义的类,以下代码输出结果是什么?
请依据代码的输出结果,自行总结Java字段初始化的规律。
运行结果
如果在主函数中创建对象时没有形参时,如果在类中定义了公共的变量并给与了赋值,那么就会把值赋给主函数中的变量,再调用类中的默认构造函数,如果在主函数中创建对象时有形参,则调用类中对应的构造函数。
2.
请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。
- 所有的静态初始化块都优先执行,其次才是非静态的初始化块和构造函数,它们的执行顺序是:
- 父类的静态初始化块
- 子类的静态初始化块
- 父类的初始化块
- 父类的构造函数
- 子类的初始化块
- 子类的构造函数
3.
以下代码为何无法通过编译?哪儿出错了?
如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。
4.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?
package test;
public class news {
private String name;
public news(String name)
{
this.name=name;
}
public static void main(String args[])
{
news s=new news("xiao ");
news s2=new news("li");
s.ask(s);
s.ask(s2);
}
public static void ask(news s)
{
s.say();
}
public void say()
{
System.out.println(name);
}
}
5
文学使思想充满血与肉,他比科学和哲学更能给予思想以巨大的明确性和说明性。