构造器及重载

简介: 构造器及重载

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 结语

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



目录
相关文章
|
6月前
|
Java
方法的重载
方法的重载
52 1
|
24天前
|
Java 程序员 C#
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
9 0
|
26天前
重载双目运算符
重载双目运算符
10 0
|
6月前
|
编译器 C#
C#重载详解
C#重载详解
52 0
|
6月前
|
C++
44重载双目运算符
44重载双目运算符
42 0
|
12月前
|
C++
39 C++ - 为什么不能重载&&、||
39 C++ - 为什么不能重载&&、||
36 0
|
编译器
匿名对象与构造器
匿名对象与构造器
69 0
|
Java
什么是构造器?
什么是构造器?
98 0
为什么子类会调用父类无参的构造函数
为什么子类会调用父类无参的构造函数