我对Java&因为我很好奇,我决定用我的类名来声明一个变量,看看是否会发生什么。我没有错!为什么会这样?对于用于声明变量的类名,您可以做些什么?我尝试过一些东西,但似乎都没有用。
在我的代码中,任何人都可以给我一个简短的解释或可能的例子吗?
如果这是一个不引人注目的问题,感谢和抱歉:)
import java.util.*;
public class hello {
public hello n;
public static void main(String[] args) {
}
}
答案 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对象。 您也可以向该类添加方法和其他功能。