Java类的第四个成员:代码块(或称初始化块)
来源:互联网 发布:动力学仿真软件ls 编辑:程序博客网 时间:2024/06/07 09:49
/** * 类的第四个成员:代码块(或称初始化块) * *代码块如果有修饰的话,只能是static */public class TestOrder {public static void main(String[] args) {Order o = new Order();System.out.println(o);System.out.println();Order o0 = new Order();System.out.println(o0);}}class Order {private String orderName = "小明";/** * 非静态代码块 * * 1.可以对类(静态 & 非静态)的属性进行初始化操作,同时也可以调用本类声明的方法(静态的 & 非静态的) * 2.里面可以有输出语句 * 3.一个类中可以有多个非静态的代码块,多个代码块之间按照顺序结构执行 * 4.没创建一个类的对象,非静态代码块就加载一次 * 5.非静态代码块的执行要早于构造器 * * 关于属性赋值的操作的顺序: * ①默认的初始化;②显式的初始化或代码块初始化(此处的两个结构按照顺序执行); * ③构造器;④通过方法的对对象的属性赋值 */{orderId = 1001;orderName = "阿呆";System.out.println("---非静态代码块---");}/** * 静态代码块 * * 1.里面可以有输出语句 * 2.随着类的加载而加载,而且只被加载一次 * 3.多个静态代码块之间按照顺序结构执行 * 4.静态代码块的执行要早于非静态代码块 * 5.静态的代码块中只能执行静态的结构(类属性、类方法) */static {System.out.println("---静态代码块---");}private int orderId = 111;public Order() {super();}public Order(int orderId, String orderName) {super();this.orderId = orderId;this.orderName = orderName;}public int getOrderId() {return orderId;}public void setOrderId(int orderId) {this.orderId = orderId;}public String getOrderName() {return orderName;}public void setOrderName(String orderName) {this.orderName = orderName;}@Overridepublic String toString() {return "Order [orderId=" + orderId + ", orderName=" + orderName + "]";}}
结果:
---静态代码块------非静态代码块---Order [orderId=111, orderName=阿呆]---非静态代码块---Order [orderId=111, orderName=阿呆]
练习:
class Root{static{System.out.println("Root的静态初始化块");}{System.out.println("Root的普通初始化块");}public Root(){System.out.println("Root的无参数的构造器");}}class Mid extends Root{static{System.out.println("Mid的静态初始化块");}{System.out.println("Mid的普通初始化块");}public Mid(){System.out.println("Mid的无参数的构造器");}public Mid(String msg){//通过this调用同一类中重载的构造器this();System.out.println("Mid的带参数构造器,其参数值:"+ msg);}}class Leaf extends Mid{static{System.out.println("Leaf的静态初始化块");}{System.out.println("Leaf的普通初始化块");}public Leaf(){//通过super调用父类中有一个字符串参数的构造器super("阿呆");System.out.println("执行Leaf的构造器");}}public class TestLeaf{public static void main(String[] args){new Leaf();System.out.println();new Leaf();}}结果:
Root的静态初始化块Mid的静态初始化块Leaf的静态初始化块Root的普通初始化块Root的无参数的构造器Mid的普通初始化块Mid的无参数的构造器Mid的带参数构造器,其参数值:阿呆Leaf的普通初始化块执行Leaf的构造器Root的普通初始化块Root的无参数的构造器Mid的普通初始化块Mid的无参数的构造器Mid的带参数构造器,其参数值:阿呆Leaf的普通初始化块执行Leaf的构造器
0 0
- Java类的第四个成员:代码块(或称初始化块)
- 类的第四个成员--初始化代码块
- 类的第四个成员:初始化块的使用
- java代码块(初始化块)
- java中类的静态代码块、构造代码块、构造方法、静态成员的初始化顺序详解
- java中类的静态代码块、构造代码块、构造方法、静态成员的初始化顺序详解
- java类成员初始化顺序以及四种代码块
- java类的成员初始化顺序和初始化块知识
- java类的成员初始化顺序和初始化块知识
- java类的成员初始化顺序和初始化块知识
- java类的成员初始化顺序和初始化块知识
- java类的成员初始化顺序和初始化块知识
- java类的成员初始化顺序和初始化块顺序
- java类的成员初始化顺序和初始化块知识
- Java类的初始化 静态代码块
- Java 代码块、成员变量初始化、构造函数初始化顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
- 1039. 到底买不买 (20) || 1092. To Buy or Not to Buy (20):map巧用
- thrift连接池问题
- 单例设计模式
- 29-HTML-03-HTML(常用工具)
- sizeof用法
- Java类的第四个成员:代码块(或称初始化块)
- Android下获取各种存储目录
- 个人对Android Touch事件机制的理解
- 基于消息机制的异步架构之消息队列
- java面向对象
- tcp3次握手和4次挥手全过程
- 2015.08.08总结
- hdu 5375 Gray code (简单DP)
- 面试复习重点——基础篇:操作系统、计算机网络、设计模式【山科大牛陈磊整理】