java构造函数

/**
构造函数:
1.函数名与类名相同  2.不用定义返回值类型   3.不用写return语句
构造函数特点:
1.当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。
   自己定义了构造函数,系统就不默认创建了
2.对象一建立就会调用与之对应的构造函数,可以用于给对象初始化。
3.构造函数和一般函数在写法上有所不同。
在运行上也有所不同,构造函数是对象一建立就开始运行,给对象初始化。一般函数是调用才执行,是给对象添加行为。
一个对象建立构造函数只能运行一次,一般方法可以多次调用。
什么时候定义构造函数:
当分析事物时,该事物存在一些初始的特性或者行为,那么将该内容定义在构造函数中。
*/










/**
class Person
{
//定义一个构造函数
Person()
{
System.out.println("person run");
}
//如果不定义,系统会默人加入空的构造函数Person();
}




class  PersonDemo2
{
public static void main(String[] args) 
{
Person p=new Person();//对象一建立就会调用与之对应的构造函数
//这里的Person()就是上边定义的构造函数Person(),及时不写p.Person().仍然会输出person run
new Person();//再调用一次,就会再输出一次构造函数的内容(person run)
}
}
*/








//构造函数重载,实现对不同对象初始化


//需求:输出一个人的姓名和年龄(有的人什么都没有,有的人只有姓名,有的人只有名字,有的人既有名字又有年龄)
class Person
{
private String name;
private int age;
Person()//构造函数,功能是输出没有名字和年龄的人
{
System.out.println("A:name="+name+",,age="+age) ;
}
Person(String n)//构造函数重载,功能是输出只有名字的人
{
name=n;
System.out.println("B:name="+name+",,age="+age) ;
}
Person(String n,int a)//构造函数重载,功能是输出既有名字又有年龄的人
{
name=n;
age=a;
System.out.println("B:name="+name+",,age="+age);
}
public  void setName(String n)
{
name=n;
}
public  String  getName()
{
return name;
}
}
class PersonDemo2
{
public static void main(String[] args)
{
//Person p1=new Person();//调用Person() 输出A:name=null,,age=0;
Person p2=new Person("李四");//调用Person(String n) 输出B:name=李四,,age=0;
//Person p3=new Person("王五",20);//调用Person(String n,int a) 输出C:name=王五,,age=20;
p2.setName("李不四");
System.out.println(p2.getName());
//p2.setName("还是李四");
//System.out.println(getName);


}
}
/**
如果注销了Person()这个构造函数,那么低74行p1对象就会报错
因为找不到对应的函数,所以p1这个对象,根本就不能建立。也就是说,新建一个人必须有年龄或者姓名,没有的话建立不了
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值