一, 基础概念
1. 什么时候定义构造函数:
当对象创建时, 需要对象必须具备的内容, 通过构造函数完成.
2. 一般函数和构造函数的区别:
定义上: 构造函数只为对象的初始化, 只执行一次. 一般函数定义对象应该具备的功能. 可以被调用多次.
运行上: 构造函数在对象一创建, 就会执行. 一般函数是只有被对象调用才执行.
3. 构造函数的格式要求:
(1). 函数名和类名相同.
(2). 没有返回值类型.
(3). 没有具体的返回值.
4. 构造函数的作用: 就是对对象进行初始化.
5. 揭秘:
(1). class 定义的类中, 如果没有声明任何构造函数, 类中会默认有一个空参数的构造函数.
(2). 如果在 class 类中自定义了构造函数, 默认的构造函数就没有了. 构造函数在类中有多个的情况下, 是以重载的形式存在的.
6. 注意:
(1). 构造函数中也可以有 return 语句, 用于结束初始化动作.
(2). 构造函数的前面加了 void, 编译可以通过, 但是不再是构造函数, 而是一般函数.(建议不要这样写)
二, 实例代码
要求用构造函数的重载来实现, Person 对象一旦建立就可能有一个公共的名字, 或者有一个自己的名字, 或者有一个自己的名字和年龄. 并打印出来.
- class Person
- {
- private String name;
- private int age;
- // 多个构造函数在同一个 Person 类中的重载形式
- // 定义一个构造函数, 用于给 Person 对象初始化.
- //Person 对象初始化就有姓名.
- Person(String s)
- {
- name = s;
- }
- //Person 对象初始化就有姓名和年龄.
- Person (String s,int a)
- {
- name = s;
- age = a;
- }
- //Person 对象初始化什么也没有, 构造一个空参的构造函数.
- Person ()
- {
- name = "bady";
- }
- public void show1()
- {
- System.out.println("name="+name);
- }
- public void show2()
- {
- System.out.println("name="+name+",age="+age);
- }
- }
- class PersonDemo2
- {
- public static void main (String[] args)
- {
- // 对象会自动调用对应的构造函数, 进行初始化.
- Person p1 = new Person("xiaoming");
- p1.show1();
- Person p2 = new Person("xiangming",20);
- p2.show2();
- Person p3 = new Person();
- p3.show1();
- }
- }
三, 代码运行
来源: https://www.cnblogs.com/zhuxr/p/8798828.html