您的位置:首页 > 编程语言 > Java开发

JAVA 对象的初始化

2015-08-30 23:45 597 查看
//Person p声明一个变量,在栈里面分配空间.
//Person p = new Person("zhangquan", 20)
//1.new 用到了Person.class,先在硬盘上找到Person.class加载到内存.jvm做的事情.
//2.执行Person 类里面的stati {}静态块.
//3.分配堆空间,在内存里面建立对象属性.默认初始化.
//4.构造块{}执行.
//5.构造函数执行
//6.将堆空间地址给栈内存变量p.
//静态成员只能被静态方法调用,不能被飞静态成员调用.
//静态成员.方法可以通过类名字来调用.




class Test2 {
public static void main(String [] args) {
Demon.show(8);	//b c     //不一定要实例化才加载类到内存里面去. 调用静态方法时,static {}也被调用了.</span>
//new Demon();	//b d a
}
}

class Demon {
int num = 4;
//构造函数私有后就不能被实例化了.防止别人实例化
//private Demon(){
Demon(){
System.out.println("a");		//实例化后才被调用构造函数.
}

static {
System.out.println("b");
//System.out.println("satic {}"+num);  //只能访问静态的变量.所以错误.
}

static void show(int x) {
System.out.println("c");
//System.out.println("show"+num);//静态方法,只能访问静态的变量.所以错误

}

//这个只有实例化才被调用.构造快.
{
System.out.println("d");
System.out.println("{}"+num);//可以访问成员变量.不能访问静态成员.

}
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: