java中初始化块
来源:互联网 发布:linux删除文件恢复 编辑:程序博客网 时间:2024/06/06 09:44
package learn_20150504;import java.util.Random;public class Employee2 {private static int nextId;private int id;private String name="";private double salary;static{Random generator =new Random();nextId = generator.nextInt(1000);}{id = nextId;nextId++;}public Employee2(String n,double s){name = n;salary = s;}public Employee2(double s){this("Employee # "+nextId,s);}public Employee2(){}public String getName(){return name;}public double getSalary(){return salary;}public int getId(){return id;}}
package learn_20150504;public class ConstructorTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubEmployee2[] staff = new Employee2[3];staff[0] = new Employee2("harry", 4000);staff[1] = new Employee2(6000);staff[2] = new Employee2();for (Employee2 e : staff) {System.out.println("name = " + e.getName() + ",id= " + e.getId()+ ",salary= " + e.getSalary());}}}运行结果:
name = harry,id= 975,salary= 4000.0
name = Employee # 976,id= 976,salary= 6000.0
name = ,id= 977,salary= 0.0
1 初始快是Java类里可出现的第四种成员(前面依次有:属性,方法,和构造器),一个类里可以有多个初始化块
相同类型的初始化块之间有顺序:前面定义的初始化块先执行,后面定义的初始化块后执行,初始化块的语法格式:
[修饰符]{
//初始化块的可执行代码
}
初始化块的修饰符只能是static,使用static修饰的初始化块被称为静态初始化块,初始化块里的代码可以包含任何可执行性语句
,包括定义局部变量,调用其他对象的方法,使用分支,循环语句等。
package learn_20150504;public class Person {//定义一个初始化块{ int a = 6; if(a>4) { System.out.println("Person 初始化块,局部变量a的值大于4"); } System.out.println("Person 的初始化块");}//定义第二个初始化块{System.out.println("Person的第二个初始化块");}public Person(){System.out.println("Person类的无参数构造器");}public static void main(String[] args) {Person p = new Person();}}
运行结果:
Person 初始化块,局部变量a的值大于4
Person 的初始化块
Person的第二个初始化块
Person类的无参数构造器代码块的执行顺序:
静态代码块 ----》 普通代码块-----》属性------》构造器
0 0
- java中初始化块
- java中初始化块
- 浅谈Java中静态初始化块跟非初始化块
- Java中初始化块和静态初始化块的区别
- Java中初始化块的真实作用
- Java中类的静态初始化块
- java静态初始化块、实例初始化块
- Java中的初始化块
- Java中的初始化块
- Java中的初始化块
- Java:初始化块
- Java中的初始化块
- Java的初始化块
- java 初始化块笔记
- Java静态初始化块
- java初始化块
- Java 静态初始化块
- java 初始化块
- 说好的30天直播生死呢?--第一章 我的小伙伴们(二)
- 线程的学习笔记
- P123.38(sum)
- 《算法导论》学习笔记——最长公共子序列(动态规划)
- AndroidManifest.xml 文件里面的内容介绍
- java中初始化块
- 三层架构(我的理解及详细分析)
- FZU 检查站点
- SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”. in a Maven Project
- codejamround1 B的两道题
- Spark典型案例
- java-web 之 第一讲 xml 文件
- 2015年代理保健食品经营许可证
- BUAAoj 上面一道排序再单调栈