如何在没有引用的情况下创建静态类对象?

阿比吉安纳亚克

我试图通过Java解决LinkedList的问题,但我发现了静态内部类的概念,我卡在这里了!

我的代码正在运行,但无法理解静态类对象是如何创建的

public class findNthNodeInLL {
    static class Node {
       int data;
       Node next;

       Node(int data) {
          this.data = data;
          next = null;
       }
    }

int findNthNode(Node head, int count) {
    int pos = 0;
    Node ptr = head;

    while(ptr != null && pos != count) {
        pos++;
        ptr = ptr.next;
    }

    return ptr.data;
}

public static void main(String[] args) {
    findNthNodeInLL ll = new findNthNodeInLL();
    Node head = new Node(1);
    head.next = new Node(2);
    head.next.next = new Node(3);
    head.next.next.next = new Node(4);
    head.next.next.next.next = new Node(5);

    System.out.println(ll.findNthNode(head,3));
}
}

内部类 Object 即 head 是在没有外部类的任何引用的情况下创建的。甚至调用构造函数并在没有任何外部类引用的情况下创建内存。

这里的实际情况是怎样的?怎么了?为什么我们不对内部类构造函数或对象使用任何外部类引用?

也许我错过了一些东西。请帮我理解这里的场景。

摩西王子

您在外部类本身内部使用静态类,因此您不要放置封闭类名称。静态嵌套类在行为上类似于任何静态字段。

但是如果要在外部类之外实例化静态嵌套类,则必须在其定义上放置封闭类名称或使用对外部类的引用。

例如 :

public class Main {
static class NodeInside {
    int data;
    NodeX.Node next;

    NodeInside(int data) {
        this.data = data;
        next = null;
    }
}
public static void main(String[] args) {
    NodeX ll = new NodeX();
    NodeX.Node head = new NodeX.Node(1); // need to put the enclosing class name
    NodeInside nodeInside = new NodeInside(1); // no need to put the enclosing class 
  }
}

class NodeX{
static class Node {
    int data;
    Node next;

    Node(int data) {
        this.data = data;
        next = null;
    }
}
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在没有类名的情况下引用全局静态字典?

来自分类Dev

如何在没有__dict__的情况下创建类对象

来自分类Dev

Thread类的静态睡眠方法如何在没有访问“ this”引用的情况下工作?

来自分类Dev

如何在没有复制构造函数的情况下初始化类的静态实例

来自分类Dev

如何在没有来自其他类的嵌套对象的情况下返回 JSON 对象?

来自分类Dev

如何在没有脚本块的情况下引用整个管道对象

来自分类Dev

如何在没有其他枚举的情况下创建可枚举类?

来自分类Dev

如何在没有“new”方法的情况下创建类?

来自分类Dev

Ruby - 如何在没有 .new 的情况下创建 MatchData 对象?

来自分类Dev

嵌套类的静态对象可以在没有类定义的情况下声明

来自分类Dev

如何在IE11中没有引用的情况下克隆jQuery对象及其子对象

来自分类Dev

如何在只有一个“对象”的情况下从泛型派生类实例检索静态属性?

来自分类Dev

如何在不指定基类名称的情况下从子基类静态方法引用基类的父类

来自分类Dev

如何在没有多个实例变量引用同一对象的情况下实现继承?

来自分类Dev

如何在没有多个实例变量引用同一对象的情况下实现继承?

来自分类Dev

如何在不保存对数组的引用的情况下创建具有某些数组值的对象?

来自分类Dev

如何在不使用静态方法的情况下创建自定义Twig函数类?

来自分类Dev

如何在不创建实例的情况下从C#类调用静态方法

来自分类Dev

如何在没有中断常量的情况下返回可引用的引用类型?

来自分类Dev

如何在没有调用对象的情况下使用在另一个类中定义的方法?

来自分类Dev

如何在没有用户实例的情况下获取 Active Directory 用户对象类的属性名称?

来自分类Dev

在Dart中没有类的情况下从字符串/符号创建对象的实例?

来自分类Dev

在没有封闭对象的情况下,防止根据特征创建匿名类

来自分类Dev

如何在不创建新对象的情况下引用substr?

来自分类Dev

Swift:如何在不增强其他对象的情况下创建对它的引用?

来自分类Dev

如何在C中没有指针的情况下检索超出范围的静态值?

来自分类Dev

如何在没有静态变量的情况下使简单的递归函数正常工作

来自分类Dev

我如何在没有静态的情况下使用Class :: Function(params)

来自分类Dev

如何在没有控制器的情况下呈现静态页面

Related 相关文章

  1. 1

    如何在没有类名的情况下引用全局静态字典?

  2. 2

    如何在没有__dict__的情况下创建类对象

  3. 3

    Thread类的静态睡眠方法如何在没有访问“ this”引用的情况下工作?

  4. 4

    如何在没有复制构造函数的情况下初始化类的静态实例

  5. 5

    如何在没有来自其他类的嵌套对象的情况下返回 JSON 对象?

  6. 6

    如何在没有脚本块的情况下引用整个管道对象

  7. 7

    如何在没有其他枚举的情况下创建可枚举类?

  8. 8

    如何在没有“new”方法的情况下创建类?

  9. 9

    Ruby - 如何在没有 .new 的情况下创建 MatchData 对象?

  10. 10

    嵌套类的静态对象可以在没有类定义的情况下声明

  11. 11

    如何在IE11中没有引用的情况下克隆jQuery对象及其子对象

  12. 12

    如何在只有一个“对象”的情况下从泛型派生类实例检索静态属性?

  13. 13

    如何在不指定基类名称的情况下从子基类静态方法引用基类的父类

  14. 14

    如何在没有多个实例变量引用同一对象的情况下实现继承?

  15. 15

    如何在没有多个实例变量引用同一对象的情况下实现继承?

  16. 16

    如何在不保存对数组的引用的情况下创建具有某些数组值的对象?

  17. 17

    如何在不使用静态方法的情况下创建自定义Twig函数类?

  18. 18

    如何在不创建实例的情况下从C#类调用静态方法

  19. 19

    如何在没有中断常量的情况下返回可引用的引用类型?

  20. 20

    如何在没有调用对象的情况下使用在另一个类中定义的方法?

  21. 21

    如何在没有用户实例的情况下获取 Active Directory 用户对象类的属性名称?

  22. 22

    在Dart中没有类的情况下从字符串/符号创建对象的实例?

  23. 23

    在没有封闭对象的情况下,防止根据特征创建匿名类

  24. 24

    如何在不创建新对象的情况下引用substr?

  25. 25

    Swift:如何在不增强其他对象的情况下创建对它的引用?

  26. 26

    如何在C中没有指针的情况下检索超出范围的静态值?

  27. 27

    如何在没有静态变量的情况下使简单的递归函数正常工作

  28. 28

    我如何在没有静态的情况下使用Class :: Function(params)

  29. 29

    如何在没有控制器的情况下呈现静态页面

热门标签

归档