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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

评分

参与人数 1黑马币 +30 收起 理由
包晗 + 30

查看全部评分

8 个回复

正序浏览
好贴!....
回复 使用道具 举报
本帖最后由 黑马-李勇 于 2012-8-26 23:06 编辑

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

课程        名称                   格式                             什么时候执行                  给谁初始化
0508        构造函数            函数名()                   对象一建立就会调用与         给对应对象初始化
                                                                       之对应的构造函数
0509        构造代码块        {执行语句}                对象一建立就运行,而         给对象初始化
                                                                       且优先于构造函数执行。
0606        静态代码块         static{执行语句}        随着类的加载而执行,         给类初始化
                                                                       只执行一次。
***********************************************
*******执行构造代码块和成员变量显示初始化时****
**********(代码中谁在前面谁就先执行)*********
***********************************************
回复 使用道具 举报
这个帖子对我很有用处
回复 使用道具 举报
{:soso_e100:}
回复 使用道具 举报
唐见 发表于 2012-8-26 17:20
在给你说个,这三个(构造函数,构造代码块,静态代码块)在子父类中的执行顺序:
class Parent
{

嗯 受教了
回复 使用道具 举报
全海波 发表于 2012-8-26 15:37
要区分成员变量与成员函数的中的“成员”两字,我看上面没写好,特意补充!
希望我写的对你不是废话!!! ...

3ks,谢谢指正。
回复 使用道具 举报
在给你说个,这三个(构造函数,构造代码块,静态代码块)在子父类中的执行顺序:
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();
        }
}
执行结果为:
父类静态代码块
子类静态代码块
父类代码块
父类构造函数
子类代码块
子类构造函数

评分

参与人数 1黑马币 +30 收起 理由
包晗 + 30

查看全部评分

回复 使用道具 举报
本帖最后由 全海波 于 2012-8-26 15:40 编辑


要区分成员变量与成员函数的中的“成员”两字,我看上面没写好,特意补充!
希望我写的对你不是废话!!!别误解哈,这句话!!

评分

参与人数 1黑马币 +30 收起 理由
包晗 + 30

查看全部评分

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