黑马程序员技术交流社区

标题: Java基础--构造方法及构造代码块 [打印本页]

作者: michael_wlq    时间: 2015-8-27 17:08
标题: Java基础--构造方法及构造代码块
本帖最后由 michael_wlq 于 2015-8-27 17:11 编辑

1、构造方法
构造方法的作用:用于对象的初始化,对象一建立就会调用与之对应的构造方法。
当一个类中没有定义构造方法时,那么系统会默认给该类加入一个参数为空的构造方法,而当在类中自定义了构造方法后,默认的构造方法就没有了,此时会调用自定义的构造方法。

构造方法和一般方法在写法上有不同,构造方法要求和类名相同(包括大小写),无返回值;
在运行上也有不同,构造函数是在对象一建立就运行,给对象初始化;而一般方法是对象调用才执行,给是对象添加对象具备的功能。
一个对象建立,构造函数只运行一次,而一般方法可以被该对象调用多次。
什么时候定义构造函数呢?
当分析事物时,如果该事物存在具备一些特性或者行为,那么可以将这些内容定义在构造函数中。

2、  构造代码块。
        作用:给对象进行初始化。
        对象一建立就运行,而且优先于构造函数执行。
        和构造函数的区别:
        构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。
        构造代码快中定义的是不同对象共性的初始化内容。

  1. class Person
  2. {
  3.         private String name;
  4.         private int age;
  5.         
  6.         //构造代码块
  7.         {
  8.                 cry();
  9.         }

  10.         //构造方法1
  11.         Person()
  12.         {
  13.                 System.out.println("A: name="+name+",,age="+age);
  14.                
  15.         }

  16.         //构造方法2
  17.         Person(String n)
  18.         {
  19.                 name = n;
  20.                 System.out.println("B: name="+name+",,age="+age);

  21.                 //cry();//无需再次定义方法,因为cry()方法是所有构造函数共有方法
  22.                
  23.         }
  24.         
  25.         public void setName(String name)
  26.         {
  27.                 this.name  = name;
  28.         }
  29.         public String getName()
  30.         {
  31.                 return name;
  32.         }
  33.         
  34.         Person(String name,int age)
  35.         {
  36.                 this.name = name;
  37.                 this.age = age;
  38.                 System.out.println("C: name="+name+",,age="+age);
  39.                 //cry();//无需定义
  40.         }

  41.         //通用的方法,可以供对象单独的多次调用
  42.         public void cry()
  43.         {
  44.                 System.out.println("cry......");
  45.         }
  46. }

  47. class  PersonDemo2
  48. {
  49.         public static void main(String[] args)
  50.         {
  51.                 Person p1 = new Person();

  52.                 Person p2 = new Person("lisi");
  53.         
  54.                 //System.out.println(p2.getName());

  55.                 //Person p3 = new Person("wangwu",10);
  56.                
  57.         }
  58. }
复制代码









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2