构造方法,初始化块和静态初始化块

来源:互联网 发布:百度地图api php开发 编辑:程序博客网 时间:2024/05/22 11:44

开始学习java,对于构造方法,初始化块和静态初始化块感觉比较迷茫,所以做出一些简单的总结


初始化块构造器的补充,初始化块不能接受任何参数,定义一些所有对象共有属性方法时可以使用初始化块进行初始化。

                 “里面的代码在创建Java对象时执行,而且在构造器之前执行!”,每个对象生成时都会被执行一次

                 例如:

                           

  1. {
  2. System.out.println("通过初始化块初始化sex");
  3. sex="男";
  4. }

静态初始化块: 使用static定义,当类装载到系统时执行一次,若在静态出是坏块中想初始化变量,只能初始化静态变量 

                        例如:


  1. static{
  2. System.out.println("通过静态初始化块初始化age");
  3. age=20;//age是静态变量,请看后面的全部代码
  4. }

构造函数:不做更多讲解

  1. publicHelloWorld(){
  2. System.out.println("通过构造方法初始化name");
  3. name="tom";
  4. }

那你知道这三种方式的运放顺序吗??


代码:

  1. publicclassHelloWorld{
  2. String name;// 声明变量name
  3. String sex;// 声明变量sex
  4. staticint age;// 声明静态变量age
  5. // 构造方法
  6. publicHelloWorld(){
  7. System.out.println("通过构造方法初始化name");
  8. name="tom";
  9. }
  10. // 初始化块
  11. {
  12. System.out.println("通过初始化块初始化sex");
  13. sex="男";
  14. }
  15. // 静态初始化块
  16. static{
  17. System.out.println("通过静态初始化块初始化age");
  18. age=20;
  19. }
  20. publicvoid show(){
  21. System.out.println("姓名:"+ name+",性别:"+ sex+",年龄:"+ age);
  22. }
  23. publicstaticvoid main(String[] args){
  24. // 创建对象
  25. HelloWorld hello =newHelloWorld();
  26. // 调用对象的show方法
  27. hello.show();
  28. }
  29. }





从图我们可以看出:

                       

                      

                                            优先级顺序,静态初始化块>初始化块>构造方法









1 0
原创粉丝点击