黑马程序员技术交流社区

标题: 小结-构造函数,构造代码块,静态代码块,静态成员,主... [打印本页]

作者: 王自强    时间: 2012-8-26 15:20
标题: 小结-构造函数,构造代码块,静态代码块,静态成员,主...
自己总结了下这几个概念,拿来分享下, 望大牛们不吝赐教。
(类的加载-->指的是new新的对象时,如果new的对象为空,则不加载类)
构造函数(被动):随着对象的创建而执行。
作用:给特定的类进行初始化。
构造代码块(被动):对象一建立就执行,无论放在构造函数前或后,都优先于构造函数执行!
作用:给类的所有对象进行统一初始化。
静态代码块(被动):随着类的加载而执行,只执行一次。并优先于主函数执行!
所用:给类进行统一初始化。
主函数(被动):程序入口。
静态成员(主动):随着类的加载而加载,然后存在于方法区中,随着类的消失而消失。生命周期最长。静态函数被调用才执行。
作者: 全海波    时间: 2012-8-26 15:37
本帖最后由 全海波 于 2012-8-26 15:40 编辑


要区分成员变量与成员函数的中的“成员”两字,我看上面没写好,特意补充!
希望我写的对你不是废话!!!别误解哈,这句话!!
作者: 唐见    时间: 2012-8-26 17:20
在给你说个,这三个(构造函数,构造代码块,静态代码块)在子父类中的执行顺序:
class Parent
{
        Parent()
        {
                System.out.println("父类构造函数");       
        }               
        {
                System.out.println("父类代码块");       
        }
        static
        {
                System.out.println("父类静态代码块");               
        }
}
class Child extends Parent
{
        Child()
        {
                System.out.println("子类构造函数");       
        }               
        {
                System.out.println("子类代码块");       
        }
        static
        {
                System.out.println("子类静态代码块");               
        }
        public static void main(String[] args)
        {
                new Child();
        }
}
执行结果为:
父类静态代码块
子类静态代码块
父类代码块
父类构造函数
子类代码块
子类构造函数


作者: 王自强    时间: 2012-8-26 17:48
全海波 发表于 2012-8-26 15:37
要区分成员变量与成员函数的中的“成员”两字,我看上面没写好,特意补充!
希望我写的对你不是废话!!! ...

3ks,谢谢指正。
作者: 王自强    时间: 2012-8-26 17:49
唐见 发表于 2012-8-26 17:20
在给你说个,这三个(构造函数,构造代码块,静态代码块)在子父类中的执行顺序:
class Parent
{

嗯 受教了
作者: 高廷平    时间: 2012-8-26 19:10
{:soso_e100:}
作者: 安纪彪    时间: 2012-8-26 20:46
这个帖子对我很有用处
作者: 黑马-李勇    时间: 2012-8-26 23:03
本帖最后由 黑马-李勇 于 2012-8-26 23:06 编辑

*静态里面不能用this
*构造代码块能用this

课程        名称                   格式                             什么时候执行                  给谁初始化
0508        构造函数            函数名()                   对象一建立就会调用与         给对应对象初始化
                                                                       之对应的构造函数
0509        构造代码块        {执行语句}                对象一建立就运行,而         给对象初始化
                                                                       且优先于构造函数执行。
0606        静态代码块         static{执行语句}        随着类的加载而执行,         给类初始化
                                                                       只执行一次。
***********************************************
*******执行构造代码块和成员变量显示初始化时****
**********(代码中谁在前面谁就先执行)*********
***********************************************
作者: 朱烈葵    时间: 2012-8-26 23:21
好贴!....




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