标签:
对象与内存的分析:
1、new关键字深入
1、new关键字表示创建一个对象
2、new关键字表示实例化对象
3、new关键字表示申请内存空间
注意:如果使用一个没有申请内存空间的对象,会报空指针异常:java.lang.NullPoingerException
2、对象内存分析
1 public class sixtyThree { 2 public static void main(String[] args) { 3 Dog d = new Dog();//声明一个对象并且实例化对象 4 5 //给对象的属性赋值 6 d.name = "小白"; 7 d.age = 4; 8 //执行对象的方法 9 d.say(); 10 } 11 12 } 13 class Dog{ 14 String name; 15 int age; 16 void say(){ 17 System.out.println("我的名字是:"+name+",我的年龄是:"+age); 18 } 19 }
在内存中创建多个对象
1 public class sixtyThree { 2 public static void main(String[] args) { 3 Dog d1 = new Dog();//声明一个对象并且实例化对象 4 5 //给对象的属性赋值 6 d1.name = "小白"; 7 d1.age = 4; 8 //执行对象的方法 9 d1.say(); 10 11 12 //-------------------------------- 13 Dog d2 = new Dog(); 14 d2.name = "小黑"; 15 d2.age = 5; 16 d2.say(); 17 } 18 19 } 20 class Dog{ 21 String name; 22 int age; 23 void say(){ 24 System.out.println("我的名字是:"+name+",我的年龄是:"+age); 25 } 26 }
对象之间的赋值(类型相同的对象才可以)
1 public class Object_Memory { 2 public static void main(String[] args) { 3 Car c=new Car(); 4 c.color="blue"; 5 c.run(); 6 7 8 //两个对象直接的赋值(地址值)的关系 9 Car c1=new Car(); 10 c1.num=5; 11 Car c2=c1;//把c1赋给c2 c2就和c1指向了同一个对象 就想两个人用同一台电脑,这叫多个引用指向了同一个对象 12 c2.color="green"; 13 c1.run();//结果是 5和green 14 } 15 16 } 17 class Car{ 18 String color="red"; 19 int num=4; 20 21 void run(){ 22 System.out.println(color+"...."+num); 23 } 24 }
第四种情况
1 public class sixtyThree3 { 2 public static void main(String[] args) { 3 Doggg d1 = new Doggg();//声明一个对象并且实例化对象 4 5 d1.name = "小白"; 6 d1.age = 4; 7 d1.say(); 8 9 Doggg d2 = new Doggg(); 10 d2.name = "小黑"; 11 d2.age = 6; 12 d2.say(); 13 14 d2 = d1;//把d1赋值给d2(赋值的是堆内存地址值) 15 d2.name = "嘿嘿"; 16 d2.say(); 17 d1.say(); 18 19 } 20 21 } 22 class Doggg{ 23 String name; 24 int age; 25 void say(){ 26 System.out.println("我的名字是:"+name+",我的年龄是:"+age); 27 } 28 }
标签:
原文地址:http://www.cnblogs.com/LO-ME/p/3549892.html