黑马程序员技术交流社区
标题:
Java基础--构造方法及构造代码块
[打印本页]
作者:
michael_wlq
时间:
2015-8-27 17:08
标题:
Java基础--构造方法及构造代码块
本帖最后由 michael_wlq 于 2015-8-27 17:11 编辑
1、构造方法
构造方法的作用:用于对象的初始化,对象一建立就会调用与之对应的构造方法。
当一个类中没有定义构造方法时,那么系统会默认给该类加入一个参数为空的构造方法,而当在类中自定义了构造方法后,默认的构造方法就没有了,此时会调用自定义的构造方法。
构造方法和一般方法在写法上有不同,构造方法要求和类名相同(包括大小写),无返回值;
在运行上也有不同,构造函数是在对象一建立就运行,给对象初始化;而一般方法是对象调用才执行,给是对象添加对象具备的功能。
一个对象建立,构造函数只运行一次,而一般方法可以被该对象调用多次。
什么时候定义构造函数呢?
当分析事物时,如果该事物存在具备一些特性或者行为,那么可以将这些内容定义在构造函数中。
2、 构造代码块。
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。
构造代码快中定义的是不同对象共性的初始化内容。
class Person
{
private String name;
private int age;
//构造代码块
{
cry();
}
//构造方法1
Person()
{
System.out.println("A: name="+name+",,age="+age);
}
//构造方法2
Person(String n)
{
name = n;
System.out.println("B: name="+name+",,age="+age);
//cry();//无需再次定义方法,因为cry()方法是所有构造函数共有方法
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
Person(String name,int age)
{
this.name = name;
this.age = age;
System.out.println("C: name="+name+",,age="+age);
//cry();//无需定义
}
//通用的方法,可以供对象单独的多次调用
public void cry()
{
System.out.println("cry......");
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p1 = new Person();
Person p2 = new Person("lisi");
//System.out.println(p2.getName());
//Person p3 = new Person("wangwu",10);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2