java 初始化块
来源:互联网 发布:centos mirror 163 编辑:程序博客网 时间:2024/05/18 03:20
初始化数据域的方法:
1、在构造器中设置只进行初始化
2、在声明中直接赋值进行初始化
3、初始化块(包括静态域初始化块 和 初始化块)
在一个类的声明中可以包含多个代码块,只要构造类的对象,这些快就会被执行。
package 第3章;import java.util.*;public class 第3章a{ public static void main (String[] args) { Employee hello=new Employee(); System.out.println(hello.getName()+" and "+hello.getSalary()); Employee well=new Employee("what?",11); System.out.println(well.getName()+" aaa "+well.getSalary()); }}class Employee{ private static int nextId; private int id; private String name; private double salary; { id=nextId; ++nextId; } public Employee(String a_name,double a_salary) { name=a_name; salary=a_salary; } public Employee() { } public String getName() { return name; } public double getSalary() { return salary; }}
静态初始化块+nextId随机
package 第3章;import java.util.*;public class 第3章a{ public static void main (String[] args) { Employee hello=new Employee(); System.out.println(hello.getId()+" "+hello.getNextId()); Employee well=new Employee("what?",11); System.out.println(well.getId()+" "+well.getNextId()); Employee well2=new Employee("what?",11); System.out.println(well2.getId()+" "+well.getNextId()); }}class Employee{ private static int nextId; private int id; private String name; static { Random yoyo=new Random(); nextId=yoyo.nextInt(10); //nextId 已经被定义过了,所以如果在此定义,就会隐藏nextId字段 }// System.out.println(nextId); private double salary; { id=nextId; ++nextId; } public Employee(String a_name,double a_salary) { name=a_name; salary=a_salary; } public Employee() { } public String getName() { return name; } public double getSalary() { return salary; } public int getId() { return id; } public int getNextId() { return nextId; }}run:7 88 99 10成功构建 (总时间: 0 秒)
在这个机制中,无论使用哪个构造器构造对象,nextId都在初始化块中被初始化,然后才能运行构造器的主体部分。
这种机制不是必须的,也不常见,通常会将初始化代码直接放在构造器中
阅读全文
0 0
- java静态初始化块、实例初始化块
- Java中的初始化块
- Java中的初始化块
- Java中的初始化块
- Java:初始化块
- Java中的初始化块
- Java的初始化块
- java中初始化块
- java 初始化块笔记
- Java静态初始化块
- java初始化块
- Java 静态初始化块
- java 初始化块
- Java中的初始化块
- java 静态初始化块
- java 静态初始化块
- java初始化块
- 【Java】初始化块
- 常见面试编程题
- [iOS] 使用WebViewJavascriptBridge实现OC与JS交互
- Intellij idea 错误提示信息不能复制的问题
- phpcms 近期项目总结
- 期刊卷号期号什么意思
- java 初始化块
- MATLAB知识小结
- Java NIO系列教程(八) SocketChannel
- C++——USACO Section 1.4 题解
- 走进微信公众号实现关注之后推送一条服务器自定义的消息给用户
- Android开发知识(六)消息处理机制Handler+Looper+MessageQueue的原理分析(下)
- Linux进程间通信之信号量(semaphore)、消息队列(Message Queue)和共享内存(Share Memory) System V 进程通信方式:信号量(semaphore)、消息队列
- 数据库锁的基本原理
- Java NIO系列教程(九) ServerSocketChannel