同一个LinkedList可以被多个类访问吗?
Can the same LinkedList be accessed in multiple classes?
听我说完,我想创建一个单链表,它将根据用户键入的内容接收属性,这是来自一个框架。
但是,我希望能够在另一个框架(或class)中使用相同的链表,以便显示它。存储在链表中的数据是否有可能在其他地方保存和访问?
好吧,变量可以有各种修饰符:
private 和 public 将是两个。如果一个变量,例如 LinkedList,是私有的,那么只有这个变量所在的 class 可以(直接)访问它。
如果你想让一个变量可以从其他对象访问,你必须声明它 public - 或者为它创建一个 public "setter" 方法,例如.. .
private LinkedList myLinkedList;
public LinkedList getMyLinkedList() {
return myLinkedList;
}
这样,每个知道您在其中声明变量的 class 对象的 class 都可以访问它。在您的情况下,您可以在知道 JFrame 的任何地方访问 myJFrame.getmyLinkedList();
。
当然,这不是唯一的方法,你可以反过来做,如果你创建它,将你的 LinkedList 设置为一个对象。例如,当您在 JFrame 中时,您可以调用...
new MyOtherclass( myLinkedList );
...这将使用 LinkedList 作为参数调用您的 "MyOtherclass" 构造函数。当然你必须写这个构造函数,例如...
public MyOtherclass(LinkedList aLinkedList) {
super();
this.myLinkedList = aLinkedList;
}
创建包装器 class,假设 MyList
并使用静态方法更新/检索列表对象。
public final class MyList {
private static final List<String> list = new ArrayList<String>();
private MyList() {
}
public static void add(String thing) {
list.add(thing);
}
}
您可以像 MyList.add("string")
一样在任何地方使用它。您还可以为 delete
、get
、count
等添加静态方法
听我说完,我想创建一个单链表,它将根据用户键入的内容接收属性,这是来自一个框架。
但是,我希望能够在另一个框架(或class)中使用相同的链表,以便显示它。存储在链表中的数据是否有可能在其他地方保存和访问?
好吧,变量可以有各种修饰符:
private 和 public 将是两个。如果一个变量,例如 LinkedList,是私有的,那么只有这个变量所在的 class 可以(直接)访问它。
如果你想让一个变量可以从其他对象访问,你必须声明它 public - 或者为它创建一个 public "setter" 方法,例如.. .
private LinkedList myLinkedList;
public LinkedList getMyLinkedList() {
return myLinkedList;
}
这样,每个知道您在其中声明变量的 class 对象的 class 都可以访问它。在您的情况下,您可以在知道 JFrame 的任何地方访问 myJFrame.getmyLinkedList();
。
当然,这不是唯一的方法,你可以反过来做,如果你创建它,将你的 LinkedList 设置为一个对象。例如,当您在 JFrame 中时,您可以调用...
new MyOtherclass( myLinkedList );
...这将使用 LinkedList 作为参数调用您的 "MyOtherclass" 构造函数。当然你必须写这个构造函数,例如...
public MyOtherclass(LinkedList aLinkedList) {
super();
this.myLinkedList = aLinkedList;
}
创建包装器 class,假设 MyList
并使用静态方法更新/检索列表对象。
public final class MyList {
private static final List<String> list = new ArrayList<String>();
private MyList() {
}
public static void add(String thing) {
list.add(thing);
}
}
您可以像 MyList.add("string")
一样在任何地方使用它。您还可以为 delete
、get
、count
等添加静态方法