您的位置:首页 > 职场人生

黑马程序员——构造函数

2015-10-21 16:14 260 查看
——- android培训java培训、期待与您交流! ———-

/*
构造函数

特点: 1.函数名与类名相同(固定的)
2.不用定义返回值类型        (与void不同,void是一种返回值类型代表着"没有具体结果"返回的情况。)
(构造函数是根本不需要定义返回值类型)

3.不可以写return语句(没有返回类型)
作用:
给对象初始化 1:对象一建立就会调用与之对应的构造函数
2:当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数
3:当在类中自定义了构造函数后,默认的构造函数就没有了。
注意:
1:默认构造函数特点。
2:多个构造函数是以重载的形式存在的。(重载:函数名相同,参数列表不一样)

构造函数和一般函数在写法上有不同

运行上不同
构造函数 对象已建立就运行,就初始化对象
一般方法 对象调用才执行,是给对象添加对象所具备的功能

一个对象建立,构造函数只运行一次
一般方法可以被对象调用多次(方法必须被对象调用,在学静态之前)

什么时候定义构造函数?
当分析事物时,该事物存在即具备一些特性或者行为,那么将这些内容定义在构造函数中。

如需要未知内容参与运算的 就定义参数

*/
class Person
{
private String name;//私有
private int age;//私有
/*
构造代码块
作用:给对象进行初始化
对象一建立就运行,而且优先于构造函数执行
和构造函数的区别:
构造代码块——给所有的对象进行统一的初始化
构造函数——给对应的对象初始化

构造代码块定义的是不同对象共性的初始化内容
*/

{
System.out.println("person code run");//构造代码快——共性初始化内容,比如下面的 cry 是可以定义在代码块里
}

Person()//类名后面有大括号不要加分号
{
//如无定义 ,系统默认是 加一个”Person()();“为了方便该类初始化,否侧无法建立对象,对象没有办法初始化
System.out.println("A:name="+name+",,age="+age);//初始化方式一(重载)
//System.out.println("cry");共性可以抽取称方法
cry();//简便调用
}
Person(String n)
{
name =n;
System.out.println("B:name="+name+",,age="+age);//初始化方式二(重载)
//System.out.println("cry");共性可以抽取称方法
cry();//简便调用
}
Person(String n,int a)
{
name =n;
age = a;
System.out.println("C:name="+name+",,age="+age);//初始化方式三(重载)
//System.out.println("cry");共性可以抽取称方法
cry();//简便调用
}

public void cry()//建立单独行为方法
{
System.out.println("cry");
}
public void setName(String n)//建立之后设置名字参数的入口方法
{
name = n;
}
public void getName(String n)//建立之后获取名字参数的入口方法
{
retur();
}

}

class PersonDemo2
{
public static void main(String[] args) //注意大小写,主函数后面没有分号
{
Person p1 =new Person();//对应方式一(如对应方式不存在无法建立其对象)
//Person p1 =new Person(); 再new 就是两个对象
p1.cry();
p1.cry();//可以调用行为多次
Person p2 =new Person("LiSi");//对应方式二(如对应方式不存在无法建立其对象)
//Person p2 =new Person("LiSi");多年之后需要修改名字,如果再new一个的话就是另一个对象了,不是原来的对象了
p2.setName("LiBuSi");//一般方法调用设置name的方法,修改同一个对象的name
p2.setName("haishiLiBuSi");//一般方法可以多次调用设置的方法
Person p3 =new Person("WangWu",10);//对应方式三(如对应方式不存在无法建立其对象)

}
}


——- android培训java培训、期待与您交流! ———-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息