【转】类初始化中实例变量的执行顺序
2016-02-18 16:18
375 查看
原文链接
结果
package com.hfview.extend; /** * 从程序语法的角度而言,程序会在三个地方为实例变量进行初始化的工作: *1.定义实例变量的时候进行初始化 *2.非静态初始化块中对实例变量进行初始化 *3.在构造器中对实例变量进行初始化 * 以上的3种方式中,第一和第二种方式的初始化工作比第3种方式更早执行, * 而且第一和第二种方式的初始化优先性是一样的, * 他们谁优先取决于在类(源程序)中的先后顺序 */ class Cat { String name; int age; // 使用构造器初始化name,age两个实例变量 public Cat(String name, int age) { System.out.println("执行构造器"); this.name = name; this.age = age; weight = 3.0; } { System.out.println("执行非静态初始化块"); weight = 2.0; } // 定义时指定初始值 double weight = 2.3; public String toString() { return "Cat[name=" + name + ",age=" + age + ",weigth=" + weight + "]"; } } public class InitTest { public static void main(String[] args) { Cat cat = new Cat("kitty", 2); System.out.println(cat); } }
结果
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树