Java 基础 构造器

什么是构造器?

构造器是一个特殊的方法,其没有返回值,无法被abstract, final, native, static, 或者 synchronized修饰,构造器命名必须与类名相同。

构造器作用:

学习Java之初老师就教过,创建一个实体类一定要写他的空参构造,当时没有解释,现在想来答案在这里了(猜测)

创建类的实例,或者创建一个实例对象。

"this"的用法
构造器和方法使用关键字this有很大的区别。方法引用this指向正在执行方法的类的实例。静态方法不能使用this关键字,因为静态方法不属于类的实例,所以this也就没有什么东西去指向。构造器的this指向同一个类中,不同参数列表的另外一个构造器,我们看看下面的代码: 

public class Platypus { 

String name; 

Platypus(String input) { 
name = input; 


Platypus() { 
this("John/Mary Doe"); 


public static void main(String args[]) { 
Platypus p1 = new Platypus("digger"); 
Platypus p2 = new Platypus(); 

打印结果:

p1=digger

p2=John/Mary Doe

p1是创建对象时添加name名称

p2是使用this调用构造器初始化一个John/Mary Doe

super使用

class Mammal { 
void getBirthInfo() { 
System.out.println("born alive."); 



class Platypus extends Mammal { 
void getBirthInfo() { 
System.out.println("hatch from eggs"); 
System.out.print("a mammal normally is "); 
super.getBirthInfo(); 



在上面的例子中,使用super.getBirthInfo()去调用超类Mammal中被重载的方法。 

构造器使用super去调用超类中的构造器。而且这行代码必须放在第一行,否则编译将出错。看下面的例子: 

public class SuperClassDemo { 
SuperClassDemo() {} 


class Child extends SuperClassDemo { 
Child() { 
super(); 



在上面这个没有什么实际意义的例子中,构造器 Child()包含了 super,它的作用就是将超类中的构造器SuperClassDemo实例化,并加到 Child类中。

发布了14 篇原创文章 · 获赞 2 · 访问量 2644

猜你喜欢

转载自blog.csdn.net/qq_33965352/article/details/80006218