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

Java中的构造代码块

2018-01-24 14:17 162 查看

一.Java中的构造代码块

构造代码块的规则如下:

1)在构造函数之前被调用

2)在新建对象时被调用

3)执行顺序按照构造代码块的书写顺序执行

代码如下:

package liu.shen.test;

public class test{
test(){//构造函数
System.out.println("构造函数执行了");
}
int a;
void test(int b){
}
void test2(){
}
public static void main(String[] args) {
//test t = new test();
System.out.println("hello");
}

{       System.out.println("构造代码块执行");}
{       System.out.println("构造代码块2");  }
{       System.out.println("构造代码块3");   }
{       System.out.println("构造代码块4");   }
}


例如这里有一个test类, Java中类的加载顺序如下

1) 将 test.class 这个字节码文件,装载(ClassLoader)到内存中。

2) 将static 修饰的属性在静态区中分配内存空间,完成初始化,并执行static 代码块

3) 在堆内存中分配对象的内存空间:对成员属性 完成默认的初始化操作

4) 执行构造代码块

5) 执行构造函数

6) 对象创建完成将te这个引用执行堆内存中的地址

具体代码如下:

package liu.shen.test;

public class test{
int studentNum;//学生人数
int heightScore,minScore;//最高分  最低分

static {System.out.println("static code is executed");};//static静态代码块
test(int studentNum ,int heightScore ,int minScore){
this.heightScore = heightScore;
this.minScore = minScore;
this.studentNum = studentNum;
System.out.println("the constructor id executed");
}
public static void main(String args[]) {
test te = new test(99,100,29);//新建test()对象
System.out.println("this class have "+te.heightScore+" students");

}
{System.out.println("this is attached informtion of this class!");}//构造代码块
}


二.Java中的构造函数

构造函数精析

1)构造函数主要是用来初始化成员变量的—>构造函数用来传递参数

2)如果类中没有人为书写构造函数,则系统会调用默认的构造函数

3)构造函数可以重

4)构造函数也是函数,里面也可以写return; 不可以返回任何内容。

5)构造函数和类同名

6)构造函数不可以手动调用

7)构造函数在类的对象被创建时调用,而且只执行一次。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐