标签:类的设计 指定 传递 amp 阅读 初始化 必须 this关键字 ref
在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化。创建对象时,如果其类具有构造器,Java就会在用户有能力操作对象之前自动调用相应的构造器。从而保证了初始化的进行。
Java构造器采用与类相同的名称
class Example{
public String var1;
public String var2;
// 默认构造器(无参构造器)
public Example(){}
}
不接受任何参数的构造器叫做默认构造器。但是和其他方法一样,Java构造器也能够带有形参,以便指定如何创建对象。
class Example{
public String var1;
public String var2;
// 默认构造器(无参构造器)
public Example(){}
//自定义构造器(带有形参)
public Example(String var1,String vart2){
this.var1 = var1;
this.var2 = var2;
}
public static void main(String[] args){
Example example = new Example("参数1","参数2");
}
}
在上面的代码中,存在两个构造器(默认构造器和自定义构造器),因此我们可以使用new Example()
的方式来创建不带参数的Example对象,同时也可以使用new Example(var1,var2)
的方式来创建对象。
构造器有助于减少错误,并使得代码更容易阅读。从概念上来讲,“初始化”和“创建”是彼此独立的,但是在Java中,“初始化”和“创建”是捆绑在一起,二者不能分离。
构造器没有返回值,不会返回任何东西(new表达式确实返回了对新建对象的引用,但构造器本身并没有任何返回值)
this关键字只能够在方法内部使用,表示对“调用方法的哪个对象”的引用。下面给出this关键字的6个用法:
详细内容可参考链接3
构造器是不能够被继承的,如果子类要调用父类中的构造器,那么就必须要用到super关键字了。
package chapter7;
class Example {
public String name;
//无参构造器
public Example(){
System.out.println("Example()");
}
//有参构造器
public Example(String name){
this.name = name;
System.out.println(name);
}
}
public class People extends Example{
public People(){
super();
}
public People(String name){
super(name);
}
public static void main(String[] args){
People people1 = new People();
People people2 = new People("yoloyanng");
}
}
/*
* Output:
* Example()
* yoloyanng
*/
在People类中的两个构造器中包含了super关键字,它们的作用是实例化父类中的构造器,加入到People中。并且super关键字只能够放在首行,而如果没有加上super关键字,编译器会自动加上。
更多用法:
详细内容参考链接4
《Java编程思想》(第四版)
链接1:https://www.cnblogs.com/grl214/p/5895854.html
链接2:https://blog.csdn.net/f381226200/article/details/88368446
链接3:https://www.javatpoint.com/this-keyword
链接4:https://www.javatpoint.com/super-keyword
标签:类的设计 指定 传递 amp 阅读 初始化 必须 this关键字 ref
原文地址:https://www.cnblogs.com/CH42e/p/12354493.html