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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© x277402301t 中级黑马   /  2014-12-21 23:43  /  996 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
今天刚预习了,关于面向对象的一些知识,明确了静态代码块,
构造代码块,构造函数执行的顺序!
用小程序总结了一下望大牛们斧正!
*/
class  Test
{
        //静态代码块
        static
        {
                System.out.println("我是Test类前面的静态代码块");
        }
        public static void main(String[] args)
        {
                System.out.println("Hello World!");
                Person p1=new Person("黑马",23);//直接用构造函数进行初始化
                p1.show();
                Person p2=new Person();
                p2.show();
                System.out.println(Person.name);//静态变量可以成员调用
        }
        //静态代码块
        static
        {
                System.out.println("我是Test类后面的静态代码块");
        }
}
class Person
{
        //因为有调用没有参数的构造函数,所以要写下;没写要报错
        Person()
        {}
        //静态代码块
        static
        {
                System.out.println("我是Person的静态代码块");
        }
        //静态的成员变量
        static String name; //静态的成员变量,给所有新建的对象赋初值!
        int age;//成员变量
        // 构造函数
        public Person(String name,int age)
        {
                this.name=name;
                this.age=age;
        }
        //成员方法
        public void show()
        {
                System.out.println("这是静态的成员变量name="+name+"成员变量age="+age);
        }
        //构造代码块
        {
                System.out.println("我是person的构造代码块");
        }
}
/*结果
我是Test类前面的静态代码块
我是Test类后面的静态代码块
Hello World!
我是Person的静态代码块
我是person的构造代码块
这是静态的成员变量name=黑马成员变量age=23
我是person的构造代码块
这是静态的成员变量name=黑马成员变量age=0
黑马
请按任意键继续. . .
总结:
静态代码块、构造代码块和构造函数的区别
静态代码块:用于给类初始化,类加载时就会被加载执行,只加载一次。
构造代码块:用于给对象初始化的。只要建立对象该部分就会被执行,且优先于构造函数。
构造函数:给对应对象初始化的,建立对象时,选择相应的构造函数初始化对象。
创建对象时,三者被加载执行顺序:静态代码块--->构造代码块--->构造函数
*/


4 个回复

正序浏览
很强悍的节奏哈,我还得继续多多联系了。
回复 使用道具 举报
清浅。。 来自手机 中级黑马 2014-12-23 00:15:08
板凳
继续坚持……
回复 使用道具 举报
我觉得面向对象,思想很关键。
回复 使用道具 举报
好厉害。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马