- public class Hello{
- static {
- System.out.println(“静态块”);
- }
- {
- System.out.println(“实例块”);
- }
- public Hello(){
- System.out.println(” 构造方法 “);
- }
- public static void main(String []args){
- }
- }
运行后是这样的:
静态块
在main方法里面 实例化 一下,即代码是这样的:
- public class Hello{
- static {
- System.out.println(“静态块”);
- }
- {
- System.out.println(“实例块”);
- }
- public Hello(){
- System.out.println(“构造方法”);
- }
- public static void main(String []args){
- Hello hello = new Hello();
- }
- }
运行后是这样的:
静态块
实例块
构造方法
通过上面的这两个例子可以看出来,当一个类加载的时候,调用静态块,当实例化一个对象的时候,实例块和构造方法被调用。
然后下面我这样写了写:
先写了一个父类:
- public class Personal{
- static{
- System.out.println(“父类的static块”);
- }
- {
- System.out.println(“父类的实例块..”);
- }
- public Personal(){
- System.out.println(“父类的构造方法..”);
- }
- }
然后写了一个子类:
- public class Child extends Personal{
- static{
- System.out.println(“子类的static块”);
- }
- public Child(){
- System.out.println(“子类的构造方法。”);
- }
- {
- System.out.println(“子类实例块..”);
- }
- }
在另外的一个类里面测试:
- public class Test{
- public static void main(String []args){
- Child child = new Child();
- }
- }
运行后得到的结果是:
父类的static块
子类的static块
父类的实例块..
父类的构造方法..
子类实例块..
子类的构造方法..
由此可以得到的结论是:
类的初始化过程是:
1.父类静态块
2.子类静态块
3.父类实例块
4.父类 构造器
5.子类实例块
6.子类构造器
西安尚学堂
Java 零基础就业班
上课地址:陕西省西安市高新区科技二路西安软件园天泽大厦五楼
咨询电话:029-62258374 QQ 2145598324
招生对象:
1. 零计算机编程基础学
2. 对行业不满意人士
3. 跨专业编程爱好者
4. 在校大学生实训
Java零基础班,10年 Java 以上开发经验技术讲师、架构师、行业大牛,亲自纯面授课程,手把手教你写编程。
10月新班免费试听课程已就绪,7天免费听课,体验Java乐趣。