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