初始化顺序
来源:互联网 发布:辐射4捏脸数据怎么用 编辑:程序博客网 时间:2024/04/26 07:13
class Parent{
private static int s=getS("父类静态成员");
private int num=getNum();
public Parent(){
System.out.println("父类构造函数");
}
private static int getS(String string) {
System.out.println(string);
return 47;
}
public int getNum() {
System.out.println("父类私有成员");
return num;
}
public static void setS(int s) {
Parent.s = s;
}
}
class Child extends Parent{
private int num=prt("子类私有成员");
private static int s=getS("子类静态成员");
public static void setS(int s) {
Child.s = s;
}
public Child(){
System.out.println("子类构造函数");
}
public void setNum(int num) {
this.num = num;
}
private int prt(String string) {
System.out.println(string);
return 5;
}
public static int getS(String string) {
System.out.println(string);
return s;
}
}
public class Test {
public static void main(String args[]) throws ClassNotFoundException{
//这句话可以看出一个类的初始化顺序
//总的原则:先静态后动态,先定义初始化,后构造函数初始化
/**
* 实例化Child对象时
* 先子类静态成员初始化,后父类静态成员初始化
* 然后是父类成员,父类构造函数,最后是子类
* 成员,子类构造函数
*
* 这是浙大翁恺的远程教育视频课程里讲的
* ftp://ftp.zjuyc.com
* 帐号: ftpuser
* 密码: xt38kma7
*/
Child c=new Child();
c.setNum(100);
//为什么输出的是0
System.out.print(c.getNum());
/*Child cStatic=new Child();
cStatic.setS(100);
System.out.println(cStatic.getS("s")); */
}
}
输出
父类静态成员
子类静态成员
父类私有成员
父类构造函数
子类私有成员
子类构造函数
父类私有成员
0
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化顺序
- 初始化列表的初始化顺序
- Java初始化顺序
- JAVA 初始化顺序
- 初始化的顺序
- JAVA初始化顺序
- Java程序初始化顺序
- Java初始化顺序
- 什么是Ajax?
- XBM image
- ASP 动态包含文件的改进
- OctaGate SiteTimer-做页面加载时间测试的工具
- 用C#实现在线升级
- 初始化顺序
- 在数据库应用系统中数据库的开发
- 初次使用virtual pc
- 批处理应用:恢复Mcafee重命名的可疑病毒文件扩展名
- Ajax应用场景
- 杀人中的技术
- 局域网QQ(C#版)
- 程序员每天该做的事
- baidu试题