黑马程序员技术交流社区

标题: 求助 [打印本页]

作者: 马超    时间: 2012-4-8 19:37
标题: 求助
:)class Person
{
        String name;
        int age;

        {
                cry();
        }
        Person(String name)
        {
                this.name = name;  //成员变量 = 局部变量;
        }

        Person(String name,int age)
        {
                this.name = name;
                this.age = age;
        }

        void show()
        {
                System.out.println("name = "+name+"..."+"age = "+age);
        }

        void cry()
        {
                System.out.println("cry...");
        }
}


public class Demo
{
        public static void main(String[] args)
        {
                Person p = new Person("lisi"); //类  对象 = new 类();
                Person p1 = new Person("wangwu",18);
                p.show();
                p1.show();
        }
}
class Person
{
        String name;
        int age;

        {
                cry();
        }

        Person(String name)
        {
                this.name = name;  //成员变量 = 局部变量;
        }

        Person(String name,int age)
        {
                this.name = name;
                this.age = age;
        }

        void show()
        {
                System.out.println("name = "+name+"..."+"age = "+age);
        }

        void cry()
        {
                System.out.println("cry...");
        }
}


public class Demo
{
        public static void main(String[] args)
        {
                Person p = new Person("lisi"); //类  对象 = new 类();
                Person p1 = new Person("wangwu",18);
                p.show();
                p1.show();
        }
}
红色标示的代表什么意思啊?为什么在程序能够先执行呢?谢谢啦!!
作者: 刘保峰    时间: 2012-4-8 20:39
你好,{ cry(); } 是构造代码块,是给所有对象统一初始化,优先于构造函数执行的。
作者: 龚振 龚振 龚振    时间: 2012-4-8 21:02
{
       cry();
}
构造代码块,是给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,
而构造函数是给对应的对象初始化。
构造代码快中定义的是不同对象共性的初始化内容。

作者: pray    时间: 2014-4-26 06:22
我也来顶一下..




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