类变量与类名java相同

时间:2016-10-27 02:41:36

标签: java

我对Java&因为我很好奇,我决定用我的类名来声明一个变量,看看是否会发生什么。我没有错!为什么会这样?对于用于声明变量的类名,您可以做些什么?我尝试过一些东西,但似乎都没有用。

在我的代码中,任何人都可以给我一个简短的解释或可能的例子吗?

如果这是一个不引人注目的问题,感谢和抱歉:)

import java.util.*;

public class hello {
public hello n;

public static void main(String[] args) {



}

}

4 个答案:

答案 0 :(得分:1)

自我引用类的一个非常常见的例子是Node的{​​{1}}:

LinkedList

每个public class Node<E> { E value; Node<E> previous; Node<E> next; } 引用另外两个节点,这些节点构成Node的列表结构。当引用的节点为LinkedList时,列表结束。

这种结构非常强大,可以用于各种各样的情况,例如树或图形等数据结构,或显示对象之间的关系,就像null可以有一个Person代表该人的朋友。

答案 1 :(得分:1)

您声明任何类,然后您可以在同一个类中创建其实例,或者在其他类中创建其实例(受类访问修饰符限制)。您声明类n的变量Hello的原因是因为您可以利用类Hello的功能。

有些例子你必须在同一个类本身创建类实例,比如实现数据结构链接列表,队列等。

例如:链接列表实现

private class Node {
        // reference to the next node in the chain, or null if there isn't one.
        Node next;

        // data carried by this node. could be of any type you need.
        Object data;

        // Node constructor
        public Node(Object dataValue) {
            next = null;
            data = dataValue;
        }
}

答案 2 :(得分:0)

使用类名创建变量称为对象。

hello n = new hello();

它可以用来调用方法,类的成员。

n.someMethod();

答案 3 :(得分:0)

java中的变量可以有名称和类型。类型可以是基本类型或用户定义类型。你宣布的那个

public hello n;

是用户定义类型hello的变量。在java中,你可以通过创建一个类来创建自己的类型(有一些像adt这样的高级东西),但基本方法是使用类。现在,创建用户定义类型的变量称为创建类的对象。一旦你创建了一个对象,你可以通过在类中列出它们来为它提供所需的所有功能。 通过在一个类中创建同一个类的对象,你说我是&#34;你好&#34;的实例。输入hello本身。在创建像linkedlist这样的数据结构时,这个东西更有用。例如, 在链表中,您可以将链表的节点定义为

public class LinkedNode<E> {
    <E> data;
    LinkedNode next;
}

请参阅,我刚刚创建了与hello n相同的内容。在这里,您说的是LinkedNode类型的对象应该有两个东西 - 数据和对下一个节点的引用。 与你的代码一样,创建一个hello类型的字段,你要说hello类型的任何实例都应该有一个hello对象。 您也可以向该类添加方法和其他功能。