五分钟让你搞懂什么是“构造方法”

构造方法的形式:类名([参数列表]){}
特点:
	- 构造方法没有返回值,就算void也不能有,这点与Java方法(或叫函数)不一样;
	- 一个类中默认无参构造方法,但是当定义了一个有参构造方法时,则默认无参构造方法隐藏,即会报错;
	- 构造方法不允许final和static修饰;
	- 一个类中根据需要可以定义多个构造方法,这是重载的体现。
	- 为了简化代码,类中构造方法可以互相调用,this(实参列表),但必须置于有效代码的第一行   
public class UserInfo{
	int age;
	String name;
	String tel;
	String adderss;
	//以上四行定义成员变量
	UserInfo(int a, String n, String t,String add){//有参构造方法
	age = a;
	name = n;
	tel = t;
	address = add;	
	//上面四行代码就是给成员变量赋值的过程
	}

	UserInfo(int a, String n){//这也是“重载”的体现
		/*
		age = a;//此时若再对age和name赋值,则显得重复和冗余
		name = n;//因此可以用this来调用其它已给age和name赋过值的有参构造方法,但必须置于有效代码第一行
		*/ 
		this(a,n,null,null);//参数少的可以调用参数多的,不过要在相应的位置赋予默认值

	}
	public static void main(String[] args){
		/*
		 UserInfo userInfo = new UserInfo();//因为上面为有参构造方法,则这样写会报错
		 userInfo.age = 17;
		 */
		UserInfo zhang = new UserInfo(20,"张三","123456789","郑州市");
			System.out.println(zhang.name);
		UserInfo li = new UserInfo(21,"李四","987654321","北京市");
			System.out.println(li.age);
	
		//若只想给其中几个(而不是全部)成员变量赋值,则须在创建一个构造方法,请看上面第二个有参构造方法
		UserInfo wang = new UserInfo(28,"王五");
		System.out.println(wang.name);
	}

}
//输出结果:
张三
21
王五

要想更好的理解什么是构造方法,需要知道什么是成员变量一分钟让你了解成员变量

发布了34 篇原创文章 · 获赞 8 · 访问量 716

猜你喜欢

转载自blog.csdn.net/weixin_45720626/article/details/104582925