Java 当实例化一个返回变量的方法时。。。?

Java 当实例化一个返回变量的方法时。。。?,java,variables,methods,instantiation,Java,Variables,Methods,Instantiation,基本上,我想确保我做得对。我在另一个类中调用这些方法。这些方法指定返回一个变量,所以在实例化它们时,我是否应该在括号中放置null?我只是想确定我做得对 public class IntSLList { protected static IntSLLNode head, tail; public void createInst(){ new IntSLList().isEmpty(); new IntSLList().addToHead(null); new IntSL

基本上,我想确保我做得对。我在另一个类中调用这些方法。这些方法指定返回一个变量,所以在实例化它们时,我是否应该在括号中放置null?我只是想确定我做得对

public class IntSLList {
protected static IntSLLNode head, tail;
public  void createInst(){
    new IntSLList().isEmpty();
    new IntSLList().addToHead(null);
    new IntSLList().addToTail(null,null);
    new IntSLList().deleteFromTail();
    new IntSLList().printAll();
    new IntSLList().isInList(null);
    new IntSLList().delete(null);

}



public IntSLList() {
    //code
}
public static boolean isEmpty() {
    //code    }
public static void addToHead(String AN) {
    //code
}
public static void addToTail(String AN, Double AB) {
    //code
}
public static String deleteFromHead() { // delete the head and return its info; 
    //code
}
public static String deleteFromTail() { // delete the tail and return its info;
    //code

}
public static void printAll() {
    //code    
}
public static boolean isInList(String AN) {
   //code
}
public static void delete(String AN){ 
//code
}}

提前谢谢大家

您根本不需要实例化方法,当您的列表被实例化时,它们已经“准备好使用”

您要做的是从方法中删除
static
关键字:这意味着这些方法是为整个类定义的“全局”方法,而不仅仅是为一个特定列表定义的

更新:这是我想象中的list类

import java.util.ArrayList;

public class IntSLList {
  protected int head,tail;
  //I'll use this as examplelist, so I can omit the list implementation
  private ArrayList<Integer> dataList;

  public IntSLList(){
    //Do initalization
    dataList = new ArrayList<>();
  }

  public void addToHead(int node){
    dataList.add(0, node);
  }

  public void addToTail(int node){
    dataList.add(node);
  }

  public boolean isEmpty(){
    return dataList.isEmpty();
  }

  // ... snip other list methods here ...

}

createInst()
应该做什么?您确定希望字段和方法是静态的吗?另外,head和tail的默认值将为null。我不明白您想要实现什么。这里只有一个构造函数。其余的都是方法。它们是静态方法,因此应该在类上调用它们:
IntSLList.isEmpty()
。作为参数传递的内容就是要作为参数传递的内容。如果要传递null,则传递null。如果你想传递其他东西,你就传递其他东西。你不“实例化”方法,你就调用它们。为什么要将null作为参数传递,除非它以对象(任何类型)作为参数,而您没有任何东西可以传递?@UberPwnd:这不是方法是静态的一个好理由。Java程序总是从运行main方法开始,该方法是静态的。根据您的推理,每个类的每个方法都是静态的,因为它是从main调用的,main是静态的。你真的需要阅读一本关于对象、方法和构造函数的Java教程。但是,当它们是从我的另一个类中非静态的时候,我不能调用它们,因为它是静态的。。。如果我试图从publicstaticvoidmain(String[]args)中删除static,它将不会运行。否则,我会使我的第一个类成为非静态的,这会在开始时为我省去很多麻烦……当然,
head
tail
这两个字段也需要是非静态的。您的static main()可以保持这种状态,如果您在main中使用上面的代码,那么它应该像expected@tannereil我知道你是从哪里来的,但是我在我单独的主类中遇到了问题,在我调用这些方法的方法中,这些方法是非静态的,我必须使用变通方法。调用这些时,我必须将它们设置为静态,以便访问它们:/我更新了我的答案,为您制作了一个更复杂的示例,以便您将其复制/改编到您的代码中。我找到了答案!!!:D愚蠢的我在我的银行类中没有这样做:IntSLList=newintsllist();然后用list.method()调用我的函数;
public class ListMain {

public static void main(String[] args){
  IntSLList myList = new IntSLList();

  myList.addToHead(1);
  myList.addToTail(2);
  System.out.println("myList.isEmpty() = " + myList.isEmpty());
}

}