zl程序教程

您现在的位置是:首页 >  其他

当前栏目

构造器及重载

2023-02-19 12:20:45 时间

1 问题

在新建一个类的对象之后,想要初始化对象的值,必须添加构造器(也叫构造方法),分为无参构造器和有参构造器,如果没有手动定义有参构造器,编译器会自动定义一个无参构造器,用于对象的初始化。而构造器的重载用于创建不同的对象。

2 方法

2.1定义构造器

普通方法的特性依旧全部适用于构造器,需要注意构造器的方法名必须和类名保存一致,构造器在被定义之后,创建一个类的对象时就会默认执行构造方法。构造器通过new关键字调用.

package test03;

public class MenuItem {

// (1.1)菜单序号

int no;

//(1.2)菜单内容

String content;

public static void main(String[] args) {

// 通过new关键字调用构造方法

MenuItem item01 = new MenuItem();

MenuItem item02 = new MenuItem(30,"陈相君");

}

MenuItem(){ // 无参构造器

}

MenuItem(int no,String content){ // 有参构造器

// 构造器有返回值,但是不能定义返回值的类型,返回值是本类,无需定义.

// return new item;

// this 在构造方法中代表当前对象 this的本质就是创建好的对象的地址.

this.no = no;

this.content = content;

}

}

2.2构造器的重载

构造器的重载跟方法的重载一模一样,构造器经常需要重载,用于创建不同的用户对象,构造器重载就是构造器的方法名一样,形参列表不同.

package test03;

// 测试构造器重载

public class Student {

int no; // 学号

int passwd; // 密码

String name; // 姓名

public static void main(String[] args) {

Student stu1 = new Student();

Student stu2 = new Student(30,"陈相君");

Student stu3 = new Student("陈相君",30,123456);

}

Student(){ // 无参构造器

}

Student(int no, String name){ // 带参构造器

this.no = no; // this 表示创建好的对象

this.name = name; // 构造方法中形参与属性名相同时,用this区分属性与形参.

}

Student(String name,int no,int passwd ){

this.name = name;

// this.no 表示属性no, this 用于区分成员变量和局部变量.

this.no = no;

this.passwd = passwd;

}

3 结语

本文简单介绍了如何定义构造器和怎样被调用,以及构造器的重载,在面向对象编程基础上增加了一定的基础知识,还有很多的细节和扩展知识值得了解,未来在实际开发中还需不断继续学习。