当前位置: 首页 > 知识库问答 >
问题:

这是什么。当有多个对象时在java中引用[重复]

楚骞尧
2023-03-14
    package cn.sycoder.LinkedList;

public class Node {

    private Node next;

    private Object ele;



    public void delete(Object ele) {
        if (ele.equals(this.getEle())) {
            this.setEle(null);
            return;
        }
        Node prv = this;
        Node next = this.next;
        while (prv.getNext() != null) {
            if(!ele.equals(next.getEle())){
                prv = next;
                next = next.getNext();
            }else{
                prv.setNext(next.getNext());
                return;
            }

        }

    }

    public void add(Object ele) {
        Node node = new Node();
        node.setEle(ele);
        if (this.next == null) {
            this.next = node;
        } else {

            Node next = this.next;
            while (next.getNext() != null) {
                next = next.getNext();
            }
            next.setNext(node);

        }

    }

    public Node getNext() {
        return next;
    }

    public void setNext(Node next) {
        this.next = next;
    }

    public Object getEle() {
        return ele;
    }

    public void setEle(Object ele) {
        this.ele = ele;
    }
}

上面的代码命名为“节点”,下面的代码命名为“测试”

package cn.sycoder.LinkedList;

public class Test {

    public static void main(String[] args) {
        Node node = new Node();
        node.setEle("A");
        node.add("b");
        node.add("C");
        node.add("d");
        node.add("e");
        node.add("f");
        node.add("g");


        node.delete("d");

        System.out.println("----");


    }
}

我们都知道这一点。在java中,引用实例字段,在测试代码中,我们首先创建一个新的对象节点,在节点代码中,我们还创建了许多带有“new”的对象,我的问题是,在这种情况下,“this.and this”指的是什么?

共有2个答案

仲孙兴旺
2023-03-14

在类中,当您使用this时,这意味着您从该类创建的对象以及当您使用时。在此之后,您只需访问您有权访问的类的属性或方法。

谈阎宝
2023-03-14

你似乎不明白this是什么。

您可以在类的非静态方法中使用此(注意,您不能从静态方法引用实例成员),例如:

class A {

    private int number;

    public int getNumber() {
        return this.number;
    }

}

如果之后,您将有:

A a = new A();

创建了A的特定实例,并将其存储在堆内存中的某个位置(假设它是在x123地址创建的)。

现在,您有了一个由a引用的对象,该对象有一个方法getNumber(),该方法反过来在其主体中有这个。

每当(除非a引用的对象被垃圾收集/释放)调用特定方法(a引用的对象)时,如:

a.getNumber();

这个在当前执行的getNumber()中,将引用当前/特定的实例,我们当前正在其上调用getNumber()(例如,存储在地址x123的对象,为了更好的可读性,Java允许我们通过标识符来寻址(a,在这种情况下))。

 类似资料:
  • 问题内容: 我从事Java编程已有2年了,显然我遇到了一个问题,无法再次理解和区分类,引用和对象(我不明白为什么我忘记了这些概念)。 让我们来解决这个问题,尽管我已经知道对象是什么,但是我不确定类或引用是否相同。 有人可以很好地理解并且完整地区分什么是类,引用和对象吗? 我所知道的是,该类更像是对象的模板(房屋的蓝图,其中类是蓝图,而房屋是一个对象)。 问题答案: 如果你喜欢隐喻: 一堂课就像一所

  • 问题内容: 在阅读有关Java线程的文章时,我经常注意到这样的表达:“当前线程是该对象的监视器的所有者”。我的意思是:线程有权在对象上进行操作。但是我很困惑,为什么我们使用“对象的监视器”而不是“对象的锁”? 简而言之,我不知道“监视”一词的含义。这个问题可能很奇怪而且很简单。但我希望任何人都能帮助解决它。3ks 问题答案: 但是我感到困惑的是为什么要在“对象的锁”中使用“对象的监视器”一词呢?

  • 问题内容: 我有类GUI,因此可以创建如下对象: 和像这样的参考变量: 现在,据我所知,g2是引用GUI类的引用变量,而g1是GUI类的对象。g1和g2有什么区别?我可以将GUI类的属性与对象一起使用,但是g2的可能用法是什么? 问题答案: 参考是名称。对象就是东西。您可以为事物使用不同的名称,即使对于实际上不存在的事物也可以使用不同的名称。 您可以声明名称,而无需实际给它们任何“真实的”含义,例

  • 问题内容: 作为程序员,我认为它们看起来像“地址为1a234552的java.lang.Object”或类似sin 它是否正确?因此,所有参考均固定大小吗? 问题答案: 尽管在许多VM上,引用的大小是本机指针大小(即32位JVM为32位,而64位JVM为64位),但不能保证-特别是HotSpot现在或不久将支持“ “压缩的糟糕”是在64位JVM中的32位引用。(这并不意味着每个参考都经过压缩-请阅

  • 问题内容: 什么是Java中的对象引用变量? 参考变量是否保存对象的内存地址? 我很困惑。请说明一下。 问题答案: 我不确定我是否有能力正确回答这个问题,但是… 对象是类的实例,它存储在内存中的某些位置 引用是用来描述指向对象所在的内存位置的指针的。 变量是一种可以访问应用程序中该内存位置的方法(其值为“变量”)。尽管变量只能指向单个内存地址(如果不为空),则在应用程序的整个生命周期中,它可能会更

  • 这三个方法包含相同的参数,所以不应该重载。它们都有执行不同功能的代码。这怎么可能?java如何知道调用哪个方法?在命令行中通过java jar命令执行此代码时,我没有得到任何错误。