A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙铭泽 中级黑马   /  2012-8-20 22:28  /  1310 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

构造代码块,局部代码块,构造方法,这里面的东西我有点混淆了,不知道是怎样体现执行的 ,
求用小程序来体现,并讲解一下。

4 个回复

倒序浏览
package com.itheima.test;

public class HelloWorld extends Hello{
           {  
                // 普通代码块2  
                System.out.println("普通代码块2执行");  
            }
     Hello hello=new Hello();
    static{  
        // 静态代码块  
        System.out.println("静态代码块执行");  
    }  

   HelloWorld(){
            System.out.println("构造方法执行");
    }
   
        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
               
                HelloWorld  df=new HelloWorld();
                    }  
       
}
class Hello{
         Hello(){
                 System.out.println("我是父类,我先执行");
         }
}
结果为静态代码块执行
我是父类,我先执行
普通代码块2执行
我是父类,我先执行
构造方法执行

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1

查看全部评分

回复 使用道具 举报
  1. public class Hello extends Person{
  2.         static{
  3.                  System.out.println("子类静态代码块");
  4.          }
  5.          {
  6.                  System.out.println("子类构造代码块");
  7.          }
  8.          public Hello(){
  9.                  System.out.println("子类构造方法");
  10.          }
  11.         public static void main(String[]args){
  12.                 Hello h=new Hello();
  13.         }
  14. }
  15. class Person{
  16.          static{
  17.                  System.out.println("父类静态代码块");
  18.          }
  19.          {
  20.                  System.out.println("父类构造代码块");
  21.          }
  22.          public Person(){
  23.                  System.out.println("父类构造方法");
  24.          }
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1

查看全部评分

回复 使用道具 举报
  1. class ClassDemo extends MyClass
  2. {
  3.         static
  4.         {
  5.                 System.out.println("ClassDemo,静态代码块");
  6.         }
  7.         {
  8.                 System.out.println("ClassDemo,代码块");
  9.         }
  10.         ClassDemo(){System.out.println("ClassDemo,构造方法");}
  11.         public static void main(String[] args)
  12.         {
  13.                 ClassDemo cd = new ClassDemo();
  14.         }
  15. }

  16. class MyClass extends Person
  17. {
  18.         static
  19.         {
  20.                 System.out.println("MyClass,静态代码块");
  21.         }
  22.         {
  23.                 System.out.println("MyClass,代码块");
  24.         }
  25.         MyClass(){System.out.println("MyClass,构造方法");}
  26. }
  27. class Person
  28. {
  29.         static
  30.         {
  31.                 System.out.println("Person,静态代码块");
  32.         }
  33.         {
  34.                 System.out.println("Person,代码块");
  35.         }
  36.         Person(){System.out.println("Person,构造方法");}
  37. }
复制代码
运行结果
Person,静态代码块
MyClass,静态代码块
ClassDemo,静态代码块
Person,代码块
Person,构造方法
MyClass,代码块
MyClass,构造方法
ClassDemo,代码块
ClassDemo,构造方法

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

回复 使用道具 举报
解释的真清楚.

评分

参与人数 1黑马币 +30 收起 理由
张_涛 + 30 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马