Java_面向对象之构造函数
构造函数:
特点:
1,函数名与类名相同
2,不用定义返回值类型
3,没有具体的返回值
作用:
给对象进行初始化
注意:
1,默认构造函数的特点
2,多个构造函数是以重载的形式存在的
class Person
{
/*
构造函数。
特点:任何用class定义的类中,都有一个默认的空参数的构造函数
用于给该类对象进行初始化
如果该类中制定了具体的构造函数,那么默认的构造函数就没有了
构造函数和一般函数的不同。
1,在书写格式上不同
2,运行上的不同
构造函数是在对象一创建就被调用了
一般函数是对象创建完成后,所需时才被调用
*/
Person()
{
System.out.println("Person run");
}
}
class ConsDemo
{
public static void main(String[] args)
{
/*
创建的每个对象都是一个实体,每个实体都必须要进行初始化后才可以使用。
实体的初始化是需要通过动作完成的,而这个动作就是构造函数
构造函数作用:
给对象进行初始化
*/
Person p=new Person();
System.out.println("Hello World!");
}
}
class Person
{
private String name;
private int age;
/*
当一个类中存在着多个构造函数时,
他们的存在形态是重载
构造函数什么时候用?
当描述事物时,该事物一存在就具备着一些属性和行为。
那么就将这些内容定义在构造函数中
只在对象初始化的过程中执行一次
*/
Person()
{
System.out.println("person run");
}
Person(String s)//人对象一建立就具备姓名
{
name = s;
}
Person(String s,int a)
{
name =s ;
age =a;
}
public void setName(String n)
{
name = n;
}
public String getName()
{
return name;
}
public void speak()
{
System.out.println(name+":"+age);
}
}
class ConsDemo2
{
public static void main(String[] args)
{
Person p= new Person("lisi");
/*
new Person("lisi");
new:用在堆内存中开辟空间的关键字,用于创建对象
Person:明确要创建的Person类的对象
("lisi"):创建Person类的对象,需要通过哪个构造函数进行初始化,这里需要用到一个字符串参数的构造函数
*/
p.setName="lisan";
p.setName="liwangcai";
p.speak();
Person p1 = new Person("wangwu",29);
p1.speak();
}
}