黑马程序员技术交流社区

标题: 哈哈,预习了面向对象总结了一小下 [打印本页]

作者: x277402301t    时间: 2014-12-21 23:43
标题: 哈哈,预习了面向对象总结了一小下
/*
今天刚预习了,关于面向对象的一些知识,明确了静态代码块,
构造代码块,构造函数执行的顺序!
用小程序总结了一下望大牛们斧正!
*/
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
黑马
请按任意键继续. . .
总结:
静态代码块、构造代码块和构造函数的区别
静态代码块:用于给类初始化,类加载时就会被加载执行,只加载一次。
构造代码块:用于给对象初始化的。只要建立对象该部分就会被执行,且优先于构造函数。
构造函数:给对应对象初始化的,建立对象时,选择相应的构造函数初始化对象。
创建对象时,三者被加载执行顺序:静态代码块--->构造代码块--->构造函数
*/



作者: 找寻小龙猫    时间: 2014-12-22 12:47
好厉害。。
作者: Jason996    时间: 2014-12-22 23:58
我觉得面向对象,思想很关键。
作者: 清浅。。    时间: 2014-12-23 00:15
继续坚持……

作者: 疯狂的学渣    时间: 2014-12-23 01:00
很强悍的节奏哈,我还得继续多多联系了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2