构造方法

特点

  函数名和类名相同【开头字母大写】

  不用定义返回值类型   注意:和void不一样  void根本不用写

  不可以写return语句

  当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数构造函数,方便于该类进行初始化【例二】

  当类中定义了构造函数,那么这个空构造函数就没有了

作用

  给对象进行初始化

运行机制

构造方法和普通方法区别【例三】【例四】

  构造方法:对象一建立,就会调用对应的构造函数【一出现Dog dog = new Dog();就会自动运行】,给对象初始化

       一个对象建立,构造函数之运行一次

  普通方法:对象调用才执行,给对象添加对象具备的功能

         可以被该对象调用多次

什么时候使用构造函数

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

代码示例

例一

 1 public class Exam {
 2     public static void main(String[] args) {
 3         Dog dog = new Dog();
 4     }
 5 }
 6 
 7 class Dog {
 8     Dog() {
 9         System.out.println("123"); // 123
10     }
11 }

例二

1 public class Exam {
2     public static void main(String[] args) {
3         Dog dog = new Dog();
4     }
5 }
6 
7 class Dog {
8     //Dog(){}; //默认给一个空的构造器
9 }

例三

 1 public class Exam {
 2     public static void main(String[] args) {
 3         Dog dog = new Dog(); // 我没有参数
 4         dog.cry(); // cry
 5         dog.cry(); // cry
 6         dog.cry(); // cry
 7 
 8     }
 9 }
10 
11 class Dog {
12     private String name;
13     private int age;
14 
15     Dog() {
16         System.out.println("我没有参数");
17     }
18 
19     public void cry() {
20         System.out.println("cry");
21     }
22 
23 }

例四

 1 public class Exam {
 2     public static void main(String[] args) {
 3         Dog dog = new Dog(); // 我没有参数
 4 
 5         dog.setName("阿拉拉");
 6         System.out.println(dog.getName()); // 阿拉拉
 7     }
 8 }
 9 
10 class Dog {
11     private String name;
12     private int age;
13 
14     Dog() {
15         System.out.println("我没有参数");
16     
17     }
18 
19     public String getName() {
20         return name;
21     }
22 
23     public void setName(String name) {
24         this.name = name;
25     }
26 
27     public int getAge() {
28         return age;
29     }
30 
31     public void setAge(int age) {
32         this.age = age;
33     }
34 
35 }

构造代码块

作用

  给对象进行初始化,对象一建立就运行,而且优先于构造函数执行【易考运行顺序】

构造代码块和构造函数区别 

  构造代码块是给所有对象进行统一初始化

      构造函数是给对应的对象初始化

什么时候用构造代码块

  定义的是不同对象共性的初始化内容     

示例代码

 1 public class Exam {
 2     public static void main(String[] args) {
 3         Dog dog = new Dog("ABC", 15); // 我是构造代码块 我没有参数 ABC15
 4         Dog dog1 = new Dog(); // 我是构造代码块
 5     }
 6 }
 7 
 8 class Dog {
 9     private String name;
10     private int age;
11 
12     public Dog() {
13 
14     }
15 
16     Dog(String name, int age) {
17         System.out.println("我没有参数");
18         System.out.println(name + age);
19     }
20 
21     {
22         System.out.println("我是构造代码块");
23     }
24 
25 }

 

posted @ 2016-08-07 10:47  IT蓄水池  阅读(128)  评论(0)    收藏  举报