类与对象(十一)----构造器

构造器

什么是构造器

构造器又叫构造方法,是类的一种特殊方法,他的主要作用是完成对新对象的初始化。
例如:一台新手机被工厂制造好,此时这个手机什么都没有,系统没有,连壁纸都没有。这时厂商会对他进行初始化,装系统,设置出厂设置。
同理,构造器就是对已经创建好的对象进行一个初始化

构造器的特点

  • 构造方法的结构
    修饰符 方法名(形参列表){方法体}
  • 方法名和类名相同
  • 没有返回值
  • 在创建对象时,系统会自动调用该类的构造器完成对象初始化
  • 当程序员没有定义构造器时,系统会自动给类生成一个默认无参构造方法,这也是为什么之前创建对象都要加();的原因
  • 一旦定义了自己的构造器,那么默认的构造方法就会被覆盖。如果还想调用默认无参构造器,就必须自己再写出来。

构造器入门

问题:要求在创建人类时,就直接指定这个对象的年龄和姓名,而不是创建对象后再赋值
在前面的对象创建中语句是这样的 T t = new T();这里的();就是调用构造方法

完成这个问题有两种方法:
第一种 - 直接在构造方法中调用属性(全局变量),进行赋值

public Person(){
 name = "jack";
 age = 16;
}

但是这样的话就固定死了这个类的初始化,后续要创建多个同类对象不方便。所以我们用第二种方法,由于构造方法也是一个特殊的方法,所以可以利用传参机制来进行灵活初始化

class Person{
	String name;
	int age;
	public 	Person(String pname,int page){
		name = pname;
		age = age;
	}
}

这样就可以在创建对象时自定义每个对象的初始化了
演示

public class constructor{
	public static void main(String[] args) {
		Person p1 = new Person("张三",45);
		Person p2 = new Person("赵四",35);
		System.out.println(p1.name);
		System.out.println(p2.name);
	}
}
class Person{
	String name;
	int age;
	public 	Person(String pname,int page){
		name = pname;
		age = age;
	}
}

输出结果:
张三
赵四

  • 假设要只定义一个年龄,也可以重载构造器,将形参列表修改即可

构造器练习

在Person类中定义两个构造器
第一个无参构造器:设置所有人的age属性初始值为18
第二个有参构造器,使得每次创建此类对象时,可以自定义设置name和age属性
分别使用不同的构造器,创建对象
思路: 重载构造方法,一个无参构造,直接调用属性初始化。一个有参构造,调用属性将形参赋值给属性

public class constructor{
	public static void main(String[] args) {
		Person p1 = new Person();
		Person p2 = new Person("赵四",35);
		System.out.println(p1.name+p1.age);
		System.out.println(p2.name+p2.age);
	}
}
class Person{
	String name;
	int age;
	public Person(){//第一个无参构造
		age = 18;
	}
	public 	Person(String pname,int page){//第二个重载构造 
		name = pname;
		age = age;
	}
}

输出结果
null 18
赵四 35

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值