码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象_对象的内存体现

时间:2015-03-04 00:58:24      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

 对象与内存的分析:

  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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!