java对象引用对象赋值

生活 2019-02-20 13:44:09 3879

本文收集整理关于java对象引用对象赋值的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:java子类对象赋值给父类对象的问题
  • Q2:Java中请问将一个对象赋值给另一个同类对象,这两个对象是否指向同一堆内存?
  • Q3:java中,类的对象,对象的实例,对象的引用,三者如何进行区分,有何区别呢?
  • Q4:Java中请问将一个对象赋值给另一个同类对象,这两个对象是否指向同一堆内存?
  • Q5:java中对一个对象进行赋值之后返回,返回对象与原对象是不是同一个呢?
  • Q6:Java在一个对象中,声明另一个对象,再使用这个对象的变量,这种方式是引用不?
  • Q7:Java子类对象赋值给父类对象的问题
  • Q1:java子类对象赋值给父类对象的问题

    兄弟,完全正确,……你是牛人,不过还是帮我加分吧先,这是一种常见的手法,

    Q2:Java中请问将一个对象赋值给另一个同类对象,这两个对象是否指向同一堆内存?

    对象是引用类型的,所以如果你把一个对象赋值给另一个变量,它实际上只是把内存地址赋值了,
    这就比如 你知道xxx家的地址,然后你告诉了另一个人,这个人也知道了这个地址,但是xxx的家你并没有直接拿给另一个人,所以显而易见,你去xxx家拿东西,另一个人去了会发现少了,
    如果像你说的改成直接复制一份给另一个人的话,那么你需要把xxx的家重新盖一套,东西都一样,然后搬过去交给另一个人,显然这不可能
    那么java是面向对象的,它是完全符合面向对象的观点的,正因为你不可能重新盖一套房给人家一样,java也是这样做的

    Q3:java中,类的对象,对象的实例,对象的引用,三者如何进行区分,有何区别呢?

    首先,没有“对象的实例”这一说法,只有类的实例,而类的实例,只的就是类的对象,简称 对象。
    而类的引用,你可以通俗一点来理解,就是类对象的变量名,因为一个类的对象的变量名,其实是只的一段内存位置。
    故而,类的对象,就是类的实例,也就是我们通常说的对象。
    而类的引用,则是指该类实例化之后,在内存的地址(用变量名表示)
    例如:Object obj=new Object();
    其中,类名固然就是Object,对象的引用就是obj(代表的内存地址)了

    Q4:Java中请问将一个对象赋值给另一个同类对象,这两个对象是否指向同一堆内存?

    = =,赋值就是把一个引用的地址指向了另外一个地址~然后它的值就是这个地址的值。
    也就是说,如果你的对象都是同一地址,那么改变该地址的值,另外一个同地址的对象也会改变。
    比如
    List a = new ArrayList(); a.add("a");List b=a;b.add("b");System.out.println(a);//output:[a,b]
    这里边的a、b就是同一地址;
    但是有赋值的则不会如此:
    String a="a";
    String b=a;
    b="b";
    System.out.println(a);//output:a
    这里边b的引用虽然指向了a但是后来的赋值让它指向了新的地址,改变的不是原来地址的值;所以a没有改变。
    你的哥哥弟弟必须是两个地址不同的对象
    Person brotherA = new Person();
    Person brotherB = new Person();
    这样的;
    如果你一定要弟弟继承哥哥的属性,你可以在Person中实现implements Cloneable接口,并且重写clone方法。然后 brotherB =(Person)brotherA.clone();
    这样brotherA和brotherB都一样且改变brotherB/A都不会影响另外一个。

    www.yiJ!iTAO.Com

    Q5:java中对一个对象进行赋值之后返回,返回对象与原对象是不是同一个呢?

    我们在编码过程经常会碰到将一个对象传递给另一个对象,java中对于基本型变量 采用的是值传递,而对于对象比如bean传递时采用的是应用传递也就是地址传递,而很多时候对于对象传递我们也希望能够象值传递一样,使得传递之前和之后有 不同的内存地址。

    Q6:Java在一个对象中,声明另一个对象,再使用这个对象的变量,这种方式是引用不?

    你是说
    public class A {
    private int age=10;
    public B b ;
    }
    class B {
    }
    a为A类对象实例,b为B类对象实例。当a.b对b赋值的情况吗?你要知道a.b是从a的首地址开始计算出a对象存储的B类引用变量的b的地址,b的内容是在堆内存中存储的。a.b = xx;这里的xx必定也是B类对象的引用变量的值(即B类在堆内存中的首地址)。这里是值传递的形式。Java中的赋值,例如A a = new A();都是值传递的形式。

    Q7:Java子类对象赋值给父类对象的问题

    UseCase是基类
    UseCase2 u=new UseCase();只能用UseCase的方法
    而UseCase2 u=new sub(); 定义sub类对象的同时也初始化了UseCase2,这是可以同时用子类和父类的方法!
    Sub extends UseCase2的意思是Sub是子类,从UseCase2中继承的
    希望你能明白~hehe,有问题给我message

    Www.YIjItAo.C#OM

    相关文章
    面向对象和面向过程2019-01-14
    面向对象 面向过程区别2019-01-14
    如何理解面向对象思想2019-01-17
    找对象找什么样的男人2019-01-26
    面向对象程序设计语言是一种2019-02-08
    当前页面的脚本发生错误对象不支持2019-02-28
    想跟对象分手该怎么说2019-03-15
    入党发展对象和积极分子的区别2019-03-21
    autocad对象捕捉在哪里2019-03-22
    监察对象对监察机关决定不服2019-04-03