本帖最后由 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);
-
- }
- }
复制代码
|
|