{}
也就是说,定义了构造器,原先的无参构造就会消失,除非你将他显示(打)出来package com.practice;
public class keshan {
public static void main(String[] args) {
//当我们 new 一个对象时,直接通过构造器指定名字和年龄
PPerson p1=new PPerson("nihao", 99);
System.out.println("p1的信息如下");
System.out.println("p1对象Name=" + p1.Name);
System.out.println("p1对象Age=" + p1.Age);
//定义了构造器就需要 new一个新对象;如下
//new 一个新对象之后,,系统会自动调用该构造器
PPerson p2 = new PPerson("你好");
}
}
class PPerson{
String Name;
int Age;
//构造器
//解读:
//-------------构造器是初始化是完成对象的初始化,不是在创建对象
//构造器1 定义名字和年龄
public PPerson(String pName,int pAge){
System.out.println("构造器1 被调用 完成对象的初始化");
//pAge和pName传进来,不就是初始化了吗
Name=pName;
Age=pAge;
}
//构造器2 定义名字
public PPerson(String pName){
System.out.println("构造器2 被调用 完成对象的初始化");
//构造器的初始化
Name= pName;
}
}
需要需注意的一些点
package com.practice;
//------------------------------------------构造器练习
public class ConstructorExercise {
public static void main(String[] args) {
//构造器里如果定义了,但是没初始化,那这里的定义就不会生效
Person01 p1 = new Person01("nhao", 88);
System.out.println(p1.name);
System.out.println(p1.age);
//如果定义了无参构造,这里的参数可以不用写
Person01 p2 = new Person01();
System.out.println("--------------------------------------------------------------");
//无参这里可以输出该类的所有定义的数;如果没有赋值则输出默认值
//且,无参构造里可以给这些属性赋值
System.out.println(p2.name);
System.out.println(p2.age);
}
}
class Person01{
String name="我好";
int age;
public Person01() {
age=18;
}
//重载
public Person01(String pname,int page) {
name=pname;
age=page;
}
}



