面向对象-----------构造方法(九)

1.构造方法概述和作用
    * 给对象的数据(属性)进行初始化
 2.构造方法格式特点
    * a:方法名与类名相同(大小也要与类名一致)
    * b:没有返回值类型,连void都没有
    * c:没有具体的返回值return;

class Demo1_Constructor {					
	public static void main(String[] args) {
		Person p = new Person();  //在一创建对象的时候,系统就帮我调用了构造方法
		//p.Person();		  //构造方法不能用对象调用
		p.show();

		Person p2 = new Person(); //再次创建对象
	
		p2.show();
	}
}


class Person {
	private String name;
	private int age;

	//构造方法
	public Person() {
		//System.out.println("Hello World!");
		//return;		//构造方法也是有return语句的,格式是return;
		name = "张三";
		age = 23;
	}

	public void show() {
		System.out.println(name + "..." + age);
	}
}

3.构造方法的重载
    * 重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表
4.构造方法注意事项
    * a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
    * b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
        * 注意:这个时候,如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法

class Demo2_Person {
	public static void main(String[] args) {

	//对象名.方法名();
	//构造方法 不能单独调用 ,只能在创建对象的时候调用
	//怎么区分我调用的是有参的构造方法,还是无参的构造方法?
	//传了对应的参数,就调用了对应的构造方法,如果你不传任何参数,那会无参的构造方法!!
		//Person();

		Person p1 = new Person();
		p1.show();

		System.out.println("---------------------");

		Person p2 = new Person("张三",23);
		p2.show();

		System.out.println("---------------------");

		Person p3 = new Person("李四",24);
		p3.show();
	}
}

class Person {
	private String name;			//姓名
	private int age;			//年龄

	public Person() {			//空参构造
		System.out.println("空参的构造");
	}

	public Person(String name,int age) {    //有参构造
		this.name = name;
		this.age = age;
		System.out.println("有参的构造");
	}
	
	public void show() {
		System.out.println(name + "..." + age);
	}
}

猜你喜欢

转载自blog.csdn.net/mqingo/article/details/81938571
今日推荐