java面向对象之构造代码块

代码块:

  1.构造代码块

    构造代码块:在开发过程中如果需要创建多个对象,但是这些对象都要调用同样的行为属性,就可以使用构造代码块来简化书写(避免重复代码出现)

    作用:给对象进行统一的初始化(注意构造函数是给指定的对象进行初始化)

  2.局部代码块

    作用:使局部变量具有一定的生命周期,可以节约一丁点内存(个人认为没啥用)

  3.静态代码块(后续补充)

构造代码块:

  定义格式:  ----------------就是在成员变量定义完之后由一个大括号包起来的内容

    {

      构造代码块内容;

    }

  注意:1.构造代码块的大括号必须位于成员变量位置上

     2.jvm编译一个Java源文件的时候,会把成员变量的声明语句提前到一个类的最前端

     3.成员变量的初始化都是在构造函数中执行的

     4.成员变量二点显式初始化和构造代码块时按照顺序执行的,但是构造函数中的代码在最后执行;  

实例

//////定义一个员工,员工都具有工作的属性

 1 public class Employee {
 2     int  id;
 3     String  name;
 4     int age;
 5     {
 6         System.out.println("构造代码块执行了。。。。");
 7         Work();
 8     }
 9 
10     //定义一个构造函数,实现初始化
11     public Employee(int id,String name,int age){
12         this.name = name;
13         this.age = age;
14         this.id = id;
15         //Work();          //重复代码,在代码块中执行
16     }
17     //定义一个空参数的构造函数
18     public Employee(){
19         System.out.println("直接上班!!!");
20         //Work();          //重复代码,在代码块中执行
21     }
22 
23     //定义一个公共行为,员工具备工作的属性
24     public void Work(){
25         System.out.println("编号:"+id+"___"+name+"小伙子快快工作,写代码"+age+"年了!!");
26     }
28 }

调用

1 public static  void  main(String[] args){
2         Employee ey = new Employee(1001001,"李四",26);
3         ey.Work();
4         Employee ey1 = new Employee();//调用空参数的构造函数
5 }    

结果如下:

"C:\Program Files\Java\jdk1.8.0_181\bin\java.exe" "-
构造代码块执行了。。。。
编号:0___null小伙子快快工作,写代码0年了!!   
编号:1001001___李四小伙子快快工作,写代码26年了!! 
构造代码块执行了。。。。
编号:0___null小伙子快快工作,写代码0年了!!
直接上班!!!

Process finished with exit code 0

   

猜你喜欢

转载自www.cnblogs.com/qkblogs/p/12638059.html
今日推荐