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);//可以访问成员变量.不能访问静态成员. } }
相关文章推荐
- eclipse设置checkstyle
- java中static关键字用法
- java web 一些基础
- java线程学习(四)—Java 多线程间的通讯
- java算法系列之一:快速排序算法
- DRP之javaweb开发模型Model1&Model2
- Java多线程之可见性与原子性——synchronized VS volatile
- Struts2 框架的意义
- jdk7之java.lang.invoke.MethodHandle
- java线程
- spring4.0用不了注解,没有注解包
- Java Socket服务器端与客户端的编程步骤总结
- Java操作文件简谈
- Install Eclipse UML tool GreenOpen
- Java创建多线程的两种方式
- Java-课程表
- java界面设计(swing)
- 【J2SE视频】-JDK安装
- java中的单例模式
- 06---Java基础、面向对象