[Java教程]28.构造函数与代码块
Java教程专栏//blog.csdn.net/qq_41806966/category_9929686.html
hello,I’m shendi
QQ交流: 157862665
本节内容为Java语法部分的构造函数和代码块
目录
构造函数
代码块
静态代码块
构造函数
在之前,我们学过对象,我们可以把类当做一个模板,那么,对象就是使用这个模板所创造出来的物品
我们可以使用很多元素通过模板来创建对应元素的物品
这时候,构造函数就派上用场了
构造函数: 在创建对象的时候被执行,并且可以规定创建对象需要什么
语法
修饰符 类名(可选的参数) {对象被创建时执行}
例如
public Test() {}
如果一个类没有构造函数,那么在编译时会默认创建一个无参的构造函数,所以每一个类都会有至少一个构造函数
如果一个类有构造函数,在编译时,不会生成默认的构造函数
我们之前写的类里都没有写构造函数,于是我们只能通过默认的方式创建对象:
Test t = new Test();
之前,在源文件(.java文件)编译后,会给我们的类(class)自动生成如下构造函数
public class Test() {
// 默认的构造函数
public Test() {}
}
于是我们可以通过 new Test() 这样的方法来创建这个类的对象
所以,我们创建对象都是根据构造函数来创建.
当我们创建了构造函数,则需要通过对应构造函数来创造对象,例如有一构造函数
public Test(String str) {}
则只可以通过 new Test(“”); 这种形式来创建
构造函数也可以重载
接下来我们来尝试一下
构造函数用于初始化对象
需要注意的是,构造函数是在对象被创建时执行,所以
如果在A类构造函数里创建B类对象,并且B类构造函数创建A类对象,这样就会形成一个死循环(递归)
代码块
代码块和构造函数一样,在对象被创建时执行
构造方法优先于代码块
通过 {} 来定义一个代码块
代码块内语法与方法一致
静态代码块
代码块可以是静态的
因为静态修饰的东西都是属于类的东西
所以,静态代码块与之前两种不同的是在类被加载的时候执行,且只执行一次
静态代码块优先于所有方法(包括静态方法)
需要注意的是,因为静态代码块是在类被加载时执行,所以只有执行完静态代码块才等于类已经被加载
测试优先级
下一节学习包装类
还没有评论,来说两句吧...