美文网首页Hello Java
Java中类的构造方法

Java中类的构造方法

作者: Aldeo | 来源:发表于2018-08-15 22:44 被阅读10次
constructor;构造函数。

在创建对象的时候,对象成员可以由构造函数方法进行初始化。

new对象时,都是用构造方法进行实例化的;
例如;Test test = new Test("a");
 //Test("a");其中这个就是构造函数,“a”为构造方法的形参;
构造方法的方法名必须与类名一样。
构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
构造方法不能作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域。
构造方法不能由编程人员调用,而要系统调用。
构造方法可以重载,以参数的个数,类型,或排序顺序区分。

具体用法,代码实现。

1;单个构造函数方法;’
[图片上传失败...(image-6ed674-1534344201771)]

[图片上传失败...(image-9cea4f-1534344201771)]

[图片上传失败...(image-9330fa-1534344201771)]

2;多个构造函数方法

(例子为;带参数与不带参数)
[图片上传失败...(image-5fbc29-1534344104864)]

[图片上传失败...(image-824d49-1534344104864)]

[图片上传失败...(image-7042c6-1534344104864)]

3;关于继承类的构造方法的调用;
先看事例;
[图片上传失败...(image-1c3dd7-1534344104864)]

[图片上传失败...(image-fda29a-1534344104864)]

[图片上传失败...(image-45df79-1534344104864)]

[图片上传失败...(image-30aea0-1534344104864)]

[图片上传失败...(image-5f42e4-1534344104864)]

我第一次看到结果的时候好惊讶的,怎么都调用了哈。看了知识点才知道。
在Subtine的主方法中只调用子类构造方法,实例化子类对象并且在子类构造方法中,没有调用父类的构造方法的任何语句。但是在实例化对象时,它相应的调用了父类构造方法,在结果中还可以看到调用构造方法的顺序,首先是顶级,再继续往下直达本身类。也就是说实例化子类的时候,要首先实例化父类对象,然后在实例化子类对象,所以在子类构造方法调用父类构造方法前,父类已经实例化了。
拓展一下。

package text_4_1;

public class Parent {
    Parent(int a){//就是将无参数构造方法改成有参数的。
        System.out.println("调用父类Parent构造方法" + a);
    }
}

package text_4_1;

public class Subparent extends Parent{
    Subparent(){
        System.out.println("调用子类Subparent的构造方法");
    }
}

package text_4_1;

public class Subtine extends Subparent{
    Subtine(){
        System.out.println("调用子类Subtine构造方法");
    }
}

package text_4_1;

public class Main {
    public static void main(String[] args){
        Subtine subtine = new Subtine();
    }
}

这样的代码将会报错;//就是将父类Parent类无参数构造方法改成有参数的。

Implicit super constructor Parent() is undefined. Must explicitly invoke another constructor
//隐式的超级构造函数()是未定义的。必须显式地调用另一个构造函数 

意思就是在子类调用构造函数时,必须先调用父类构造函数,因为无参数的构造函数,编译器会自动调用,也就是第一种情况不会报错。但是有参数的,就必须要利用Super的方法来调用。如果不进行调用那么将会报错。

将Subparent类改成。
package text_4_1;

public class Subparent extends Parent{
    Subparent(){
        super(5);//调用了其父类就不会报错了。
        System.out.println("调用子类Subparent的构造方法");
    }
}
//备注一下,调用父类构造方法就是;super();//就ok了。

还补充一点,关于构造方法的可扩展性;
查看过源码的应该都发现过jdk的编码人员会在一个类中建立多个构造方法;然而他的作用就是提高可扩展性;
[图片上传失败...(image-1ef87e-1534344104863)]

这么多构造方法,他们之间并且还有联系;通过this()来调用自己类的其他构造方法,来减少代码的复制,增大程序的可读性;
[图片上传失败...(image-9b9e2f-1534344104863)]

至于怎么来进行封装;举个例子;
[图片上传失败...(image-a66788-1534344104863)]

[图片上传失败...(image-4feace-1534344104863)]

构造方法的可扩展性就表示在这里;
可以多多个构造方法;根据不同的参数决定调用哪个;带来很大的可扩展性

转自:https://blog.csdn.net/zw1996/article/details/52878270

相关文章

  • java的构造方法

    java的构造方法 构造方法作用: 是定义在java类中的一个用来初始化对象的方法,用new+构造方法,创建一个新...

  • Java基础精粹

    类 类和对象 构造方法:1. 使用new+构造方法,创建一个新的对象。2. 构造方法是定义在java类中的一个用来...

  • Java中父子类的那些事

    Java中父子类的那些事 构造方法 1、子类构造方法执行时,都会先执行父类的构造方法,若没有显式地调用父类的构造方...

  • Java I/O二.File常用方法

    本文简单罗列 File类构造方法 File类常用方法 在Java语言的java.io包中,由File类提供了描述文...

  • Java类中不做事且没有参数的构造方法的作用

    Java在执行子类的构造方法时,假如没有用super()来调用父类特定的构造方法,则会默认调用父类中没有参数的构造...

  • 构造方法

    构造方法 使用new + 构造方法 创建一个新的对象 构造方法是定义在Java类中的一个用来初始化对象的方法 构造...

  • Java类和对象

    原文链接 Java类和对象 你将学到: 类和对象的概念是什么 Java中创建类和对象的方法 构造方法重载 类和对象...

  • Java中类的构造方法

    在创建对象的时候,对象成员可以由构造函数方法进行初始化。 具体用法,代码实现。 1;单个构造函数方法;’[图片上传...

  • Android 通过 JNI 调用 Java 类的构造方法和父类

    Android 还可以通过 JNI 来调用 Java 一个类的构造方法,从而创建一个 Java 类。 调用构造方法...

  • 构造方法

    java里的构造方法其实就是一个类被实例化时最先执行的就是构造方法在java里如果一个类没有构造方法,那么JVM就...

网友评论

    本文标题:Java中类的构造方法

    本文链接:https://www.haomeiwen.com/subject/taugbftx.html