我正在做一些作业,在一个练习中,我们必须复制粘贴:
class Example
{
LinkedList<String> queue;
//Some simple methods to add or remove from queue.
public static void main(String[]args)
{
Example obj = new Example();
obj.queue = new LinkedList<String>();
//Basic instructions to add items to the queue
}
}
但这让我感到困惑,我们正在制作和填写这样的列表:
LinkedList<String> queue = new LinkedList<String>();
queue.add("abc");
queue.add("bca");
现在我们必须像
一样创建它Example obj = new Example();
obj.queue = new LinkedList<String>();
我想知道是否有任何区别:
obj.queue.add("aab");
和 queue.add(“AAB);
我知道这是非常基本的,但我缺乏一些基本概念,而且我很遗憾。
谢谢。
答案 0 :(得分:2)
下面,
LinkedList<String> queue = new LinkedList<String>();
queue.add("abc");
queue.add("bca");
您正在创建一个新的LinkedList
对象,其参考将分配给变量queue
。然后取消引用queue
,以便您可以调用其方法add
。
下面
Example obj = new Example();
obj.queue = new LinkedList<String>();
obj.queue.add("bca");
您正在创建Example
类型的新对象,并将其引用分配给变量obj
。然后取消引用obj
以访问其分配了新创建的queue
对象的引用的字段LinkedList
。然后再次取消引用obj
以访问其取消引用其值的字段queue
,以便您可以在引用的add
对象上调用LinkedList
。
考虑阅读Classes and Objects上的Java教程。
答案 1 :(得分:1)
假设您直接在方法中对名为“queue”的LinkedList进行了描述,例如:主要(), 变量队列将被视为局部变量。
另一方面,如果变量是类的一部分,例如“班级实例”, 它被认为是类的成员,假设队列的可见性是公共的或在包级别,您可以通过类引用访问该变量。
如果我的解释不够明确, 我相信以下链接可以解决您的问题。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
答案 2 :(得分:1)
LinkedList<String> queue = new LinkedList<String>();
queue.add("abc");
queue.add("bca");
您创建一个名为queue的LinkedList
实例,并将“abc”,“bca”添加到此列表队列中;
Example obj = new Example();
obj.queue = new LinkedList<String>();
obj.queue.add("bca");
你的班级Example
现在有LinkedList
被叫队列的引用,例如,房子有门,现在你可以在这扇门上画画,但门属于房子,当房子被毁坏了,门也会被毁坏。
但在你的第一个案例中,你有一扇门,但这扇门不属于任何房屋。它是独立的。
对于你的情况下的良好练习,你应该用一种方法(比如施工人员)建造你的门,尽量不要直接把你的门送到你的邻居家,除非你需要在你的房子的控制之外。 :)
public class Example {
private LinkedList<String> queue;// private, and no outside class can get access to it
public Example(){
this.queue= new LinkedList<String>();//construct the queue when you Example is constructed
}
public void add(String s){// add element in the control of Example
queue.add(s);
}
//Some simple methods to add or remove from queue.
public static void main(String[]args)
{
Example obj = new Example();
obj.add("abc");
obj.add("cba");
}
}