免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1491 | 回复: 0
打印 上一主题 下一主题

Java中的局部代码块、构造代码块、静态代码块 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-02 10:22 |只看该作者 |倒序浏览
局部代码块:

作用:控制变量的生命周期;

在程序中,当我们已经使用完 x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用 局部代码块,将x及其所设计到的区域封装为局部代码块,他们在程序执行中顺序不变,只是在执行完成后消失。

表现形式,以代码体现如下:
  1. class TestDemo  
  2.     {  
  3.         public static void main(String[] args)  
  4.         {  
  5.             {  
  6.                 int x = 9;  
  7.                 System.out.println(x);  
  8.             }  
  9.       
  10.             System.out.println("Hello World !");  
  11.         }  
  12.     }  
复制代码
构造代码块:

作用:它可以给所有对象进行初始化

存在于:类中。

当类中的构造方法以重载的形式存在时,并且有共同成员变量或共同的方法时,可以通过构造代码块对其进行初始化;这样可以减少代码的重复!
  1. class Person
  2. {
  3.     private String name;
  4.     private int age;

  5.     {
  6.         System.out.println("cons code run !");
  7.         
  8.     }

  9.     Person() // 给对应的对象进行初始化
  10.     {
  11.         System.out.println("Person Now:RUN !");
  12.         System.out.println("eat————");
  13.     }

  14.     Person (String name , int age)
  15.     {
  16.         this.name = name ;
  17.         this.age= age;
  18.         System.out.println(this.name + "————" + this.age);
  19.         System.out.println("eat————");
  20.     }
  21.    
  22. }
  23. class ConsCodeDemo
  24. {
  25.     public static void main(String[] args)
  26.     {
  27.         Person p = new Person();
  28.         Person p1 = new Person("LiSi" , 23);
  29.     }
  30. }
复制代码
我们可以看到类Person中 重载的构造方法中有共同的代码System.out.println("eat————");我们可以将他封装进构造代码块,用来给各种进行初始化。

优化后,代码体现为:
  1. class Person
  2. {
  3.     private String name;
  4.     private int age;

  5.     {
  6.         System.out.println("cons code run !");
  7.         eat();
  8.         
  9.     }

  10.     Person() // 给对应的对象进行初始化
  11.     {
  12.         System.out.println("Person Now:RUN !");
  13.     }

  14.     Person (String name , int age)
  15.     {
  16.         this.name = name ;
  17.         this.age= age;
  18.         System.out.println(this.name + "————" + this.age);
  19.     }
  20.     public void eat()
  21.     {
  22.         System.out.println("eat————");
  23.     }
  24.    
  25. }
  26. class ConsCodeDemo
  27. {
  28.     public static void main(String[] args)
  29.     {
  30.         Person p = new Person();
  31.         Person p1 = new Person("LiSi" , 23);
  32.     }
  33. }
复制代码
静态代码块:

特点:

1. 随着类的加载而执行,而且只一次。

2. 优先于主函数执行。
作用:给类进行初始化。

当类中的方法都被静态了化,并且构造方法被private了,这是我们不能,在将这个类实例化,然而又想让类增加一些属性,就可以使用静态代码块:

表现形式,以代码体现如下:
  1. class StaticCode
  2. {
  3.     static
  4.     {
  5.         System.out.println("A");
  6.     }
  7.     public void show()
  8.     {
  9.         System.out.println("Hello World !");
  10.     }
  11. }
  12. class StaticCodeDemo
  13. {
  14.     static
  15.     {
  16.         System.out.println("B");
  17.     }
  18.     public static void main(String[] args)
  19.     {
  20.         new StaticCode().show();
  21.     }
  22.     static
  23.     {
  24.         System.out.println("C");
  25.     }
  26. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP