- class Person
- {
- public static String nationality;//国籍 静态成员
- public String name;//姓名 非静态成员
- public int age;
- //静态代码块,用于初始化静态成员,或者要在类生成字节码时加载一些数据
- //当把这个类加载到内存中时,调用,第一次用需要加载,第二次就不用了,所以只运行一次
- static{
- //-------------1------
- nationality="china";//初始化静态成员
- }
- //静态构造函数,用于给所有Person的实例进行初始化,就是说当我们常见某个对象的实例时,如果没有指定姓名年龄,它就是张三,18
- {
- //-------------2------
- name="张三";
- age=18;
- }
- //显示构造函数,如果没写构造函数,默认隐式的为:public Person(){} 如果写了,隐式的就被覆盖了
- public Person(String name,int age){
- //------------3--------------
- this.name=name;
- this.age=age;
- }
- //如果没有写构造的话,默认的就是它,如果写了它就会被覆盖,所以如果Person p=new Person()这样就找不到无参构造,一般都会加上
- public Person(){
- --------------4--------------
- }
-
- }
- class Test
- {
- //第一次创建对象时,需要将这个类加载到内存
- Person p1=new Person();//因为是第一次用到Person,需要加载,说以会是 1,2,4
- Person p2=new Person("王五",34);//因为不是第一次用到Persn,无需加载 ,1不在执行 顺序:2,3
- }
-
复制代码 |