黑马程序员技术交流社区

标题: 用new 创建对象时进行了哪些操作 [打印本页]

作者: fmi110    时间: 2015-6-30 11:20
标题: 用new 创建对象时进行了哪些操作
本帖最后由 fmi110 于 2015-6-30 11:24 编辑

new创建对象的操作
  1. class Person
  2. {
  3.         private String name;
  4.         private int age;
  5.         private static String country = "CN";
  6.         
  7.                 /**构造函数*/
  8.         Person(String name,int age)
  9.         {
  10.                 this.name = name;
  11.                 this.age = age;
  12.         }

  13.         public void setName(String name)
  14.         {
  15.                 this.name = name;
  16.         }

  17.         public void speak()
  18.         {
  19.                 System.out.println("name:"+name+"...."+"age:"+age);
  20.         }

  21.         public static void showCountry()
  22.         {
  23.                 System.out.println("country = "+country);
  24.         }
  25. }

  26. class PersonDemo
  27. {
  28.         public static void main(String[] args)
  29.         {
  30.                 Person p1 = new Person("lili",20);
  31.         }
  32. }

  33. /**
  34. Person p1 = new Person("lili",20);

  35. 该语句执行了那些事情?
  36. 1、因为new用到了Person.class,所以会先找到Person.class文件并加载到内存
  37. 2、执行该类中的static代码块(存于方法区),如果有的化,给Person.class类进行初始化
  38. 3、在堆内存中开辟空间,分配内存地址
  39. 4、在堆内存中建立对象的特有属性,并进行默认初始化
  40. 5、对属性进行显示初始化
  41. 6、对对象进行构造代码块初始化
  42. 7、对对象进行对应的构造函数初始化("lili",20)
  43. 8、将内存地址赋给栈内存中的P变量

  44. */
复制代码




作者: fmi110    时间: 2015-6-30 11:21
自己顶一下 留着以后复习
作者: dillinger    时间: 2015-6-30 17:15
好东西~
谢谢分享




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