资讯专栏INFORMATION COLUMN

Java之构造器

马龙驹 / 2790人阅读

摘要:一构造器构造器的作用是构造并初始化实例对象。在的每个类中,至少要有一个构造器,没有定义的话,编译器将自动插入缺省的构造器。一般把构造器设置为访问权限,设置为是为了阻止其他类创建该类的实例。

一. 构造器

构造器的作用是构造并初始化实例对象。当创建一个对象时,系统为这个对象的属性进行初始化。

二. 语法
class 类名
{
    变量声明;
    类的名称(参数列表)
    {
         方法体
    }
}

构造器和类要有相同的名字,同时避免在构造器中定义与实例域重名的局部变量。例如

class student
{
    private String name;
    private int studentID;
    //构造器
    public student(String n,int m){
        name=n;
        studentID=m;
    /*定义与实例域重名的局部变量
    *这种错误很难被发现
        String name=n;
        int studentID=m;
       */
    }
}
三. 特点

构造器和类具有相同的名字

一个类可以有多个构造器

构造器可以有0、1或多个参数

构造器没有返回值和返回类型

构造器不能被显示调用,总是与new运算符仪器被调用,在创建一个类的新队形的同时,系统会自动调用该类的构造器为新对象初始化。

在java的每个类中,至少要有一个构造器,没有定义的话,编译器将自动插入缺省的构造器。
这种默认初始化被所有数值类型设为0,布尔值为false,所有引用类型的属性设置为null

无参数构造器

如果类中提供了至少一个构造器,但是没有提供无参数的构造器,构造对象没有提供参数就会被视为不合法。

class student
{
    private String name;
    private int studentID;
    //构造器
    public student(String name,int studentID){
        this.name=name;
        this.studentID=studentID;
    }
}
student=new student(); //产生错误

解决方法:可以为java类保留无参数的构造器,为一个类编写了有参数的构造器,同时建议为该类编写一个无参数的构造器。一般把构造器设置为public访问权限,设置为private是为了阻止其他类创建该类的实例。

四.构造器重载和调用 1.方法签名

一个方法的签名包括方法名、参数类型和个数,但不包括返回值。
类的定义中存在两个或两个以上的同名成员方法,为了使编译器能区分同名的成员方法,使同名方法的参数个数或参数的数据类型不同,从而使编译器能够挑选具体执行某个方法。

class student
{
    private String name;
    private String major;
    private String school;
    private int studentID;
    //构造器1
    public student(String name,int studentID){
        this.name=name;
        this.studentID=studentID;
    }
    //构造器2
     public student(String school){
        this.school=school;
    }
    //构造器3
     public student(String major,int studentID){
        this.major=name;
        this.studentID=studentID;
    }
}
2.调用另一个构造器
class student
{
    private String name;
    private String major;
    private String school;
    private int studentID;
    //构造器1
    public student(String name,int studentID){
        this("大山高中") //调用另一个构造器
        this.name=name;
        this.studentID=studentID;
    }
    //构造器2
     public student(String school){
        this.school=school;
    }
3.显式调用父类构造器

当我们想调用超类的的某个方法,但是当前类也有相同的方法,这时可以使用super关键字(只是一个指示编译器调用超类方法的特殊关键字)。

class A{
    public A(){
        System.out.print("A");
    }
}
class B extends A{
    public B(){
        super();//调用父类构造方法,打印A
        System.out.print("B");
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65051.html

相关文章

  • Java面向对象

    摘要:类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体的存在,程序使用类的构造器来创建该类的对象。也支持面向对象的三大特征封装继承和多态。构造器用于对类实例进行初始化操作,构造器支持重载。 Java是面向对象的程序设计语言,Java语言提供了定义类、成员变量、方法等最基本的功能。类可被认为是一种自定义的数据类型,可以使用类来定义变量。类用于描述客观世界里某一类对象的共同特征,而对...

    kid143 评论0 收藏0
  • Java造器

    摘要:多个构造器的名字相同,但形参列表不同。但一旦使用关键字来调用构造器,将会导致系统重新创建一个对象。此时可以通过关键字调用相应的构造器。 构造器是创建对象的重要途径(即使使用工厂模式、反射等方式创建对象,其实质依然是依赖于构造器),因此,Java类必须包含一个或一个以上的构造器。 使用构造器执行初始化 构造器最大的用处就是在创建对象时执行初始化。当创建一个对象时,系统为这个对象的实例变量...

    Simon_Zhou 评论0 收藏0
  • 乐字节-Java8新特性方法引用

    摘要:上一篇小乐介绍了新特性函数式接口,大家可以点击回顾。中引入方法引用新特性用于简化应用对象方法的调用,方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用是一种更简洁易懂的表达式。 上一篇小乐介绍了《Java8新特性-函数式接口》,大家可以点击回顾。这篇文章将接着介绍Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于简化应用对象方法的调用, 方法引用是...

    Codeing_ls 评论0 收藏0
  • Java编程思想学习录(连载:初始化与清理)

    摘要:注本文首发于公众号,可长按或扫描下面的小心心来订阅关于构造器与初始化无参构造器默认构造器自己未写编译器帮忙自动创建的若自行定义了构造器无论参数有否,编译器便停止默认创建动作类里的对象引用默认初始化为,基本类型初始化为构造器也是类的静态方法四 showImg(https://segmentfault.com/img/remote/1460000015723687); 注: 本文首发于 ...

    betacat 评论0 收藏0
  • Java动态性(2) - 反射机制(Reflection)

    摘要:的动态性反射机制动态编译动态执行代码动态字节码操作动态语言程序运行时可以改变程序得结构或变量类型典型语言等如下代码不是动态语言但有一定的动态性我们可以利用反射机制字节码操作获得类似动态语言的特性的动态性让编程的时候更加灵活反射机制反射机制指 1.Java的动态性 反射机制 动态编译 动态执行JavaScript代码 动态字节码操作 2.动态语言 程序运行时,可以改变程序得结构或变量...

    妤锋シ 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<