黑马程序员技术交流社区

标题: 该句话都做了什么事情? [打印本页]

作者: xiong910627    时间: 2014-8-22 21:23
标题: 该句话都做了什么事情?
本帖最后由 xiong910627 于 2014-8-26 13:49 编辑

class Person
{
        private Person(){}
        private String name = "hah";
        private int age;
        private static  String country = "cn";
        Person(String name,int age)
        {
                this.name = name;
                this.age = age;
        }
        
        {
                System.out.println(name+".."+age);
        }
        public void setName(String name)
        {
                this.name = name;
        }

        public void speak()
        {
                System.out.println(this.name+"..."+this.age);
        }

        public static void  showCountry()
        {
                System.out.println("country="+Person.country);
                Person.method();
        }
        public static void method()
        {
                System.out.println("method run");
        }

}

class  PersonDemo
{
        public static void main(String[] args)
        {
                Person p = new Person("zhangsan",20);
                p.setName("lisi");
                new Person();
        }
}

Person p = new Person("zhangsan",20);
该句话都做了什么事情?
作者: dhgcy    时间: 2014-8-23 12:32
你可以看一下毕老师讲静态代码块的视频,里面讲的很详细
作者: ☆枫の云    时间: 2014-8-23 13:11
这句话都做了什么事情?
1.因为new用到了Person.class,所以先会找到Person.class文件加载到内存中。
2.执行该类中的static代码块,如果有的话,给person.class类进行初始化。
3.在堆内存中开辟空间,分配内存地址。
4.在堆内存中建立对象的特有属性。并进行默认初始化。
5.对属性进行显示初始化。
6.对对象进行构造代码块初始化。
7.对对象进行对应的构造函数初始化。
8.将内存地址付给栈内存中的p变量。
作者: 丨懒蟲灬Nigh    时间: 2014-8-23 13:45
☆枫の云 发表于 2014-8-23 13:11
这句话都做了什么事情?
1.因为new用到了Person.class,所以先会找到Person.class文件加载到内存中。
2.执 ...

膜拜~~太详细了 粗略来说就是在Person 里面创建了一个新的对象并初始化名字zhangsan 和年龄20 对吗?
作者: 我行我SHOW‰    时间: 2014-8-24 11:26
老毕的视频中,讲得很详细呢,自己可以去看下~~
作者: ___瘦不了    时间: 2014-8-24 12:03
定义一个P变量指向存放在堆内存中的实体,实体值就是括号里的内容
作者: viliv715    时间: 2014-8-24 12:53
结合着老师话的内存图 就好理解了
作者: zhangxun    时间: 2014-8-24 12:56
毕老师在视屏中讲的很详细哦
作者: abc83983682    时间: 2014-8-24 12:58
同意楼上的各位的意见
作者: 碎流    时间: 2014-8-24 20:51
嗯,,,,支持一个,,,,,,,,,
作者: sunny~    时间: 2014-8-24 23:34
自己动手丰衣足食!!!!百百度吧:victory:
作者: 郑飞    时间: 2014-8-25 05:53
☆枫の云 发表于 2014-8-23 13:11
这句话都做了什么事情?
1.因为new用到了Person.class,所以先会找到Person.class文件加载到内存中。
2.执 ...

好厉害 超详细
作者: 思如涌泉    时间: 2014-8-25 06:48
水得一手好帖




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