当前位置: 首页 > 面试题库 >

如何从Java中的其他方法访问对象?

陆运乾
2023-03-14
问题内容

我有我在create()方法中创建的对象编号列表,我想访问它,以便可以在question()方法中使用它。

还有可能我可能错过的另一种方法吗?我搞砸了吗?如果没有,我应该如何获得与以下相同的功能?

private static void create() {
    Scanner input = new Scanner(System.in);

    int length,offset;

    System.out.print("Input the size of the numbers : ");
     length = input.nextInt();

     System.out.print("Input the Offset : ");
     offset = input.nextInt();

    NumberList numberlist= new NumberList(length, offset);




}


private static void question(){
    Scanner input = new Scanner(System.in);

    System.out.print("Please enter a command or type ?: ");
    String c = input.nextLine();

    if (c.equals("a")){ 
        create();       
    }else if(c.equals("b")){
         numberlist.flip();   \\ error
    }else if(c.equals("c")){
        numberlist.shuffle(); \\ error
    }else if(c.equals("d")){
        numberlist.printInfo(); \\ error
    }
}

问题答案:

有趣的是,列出的两个答案都忽略了发问者正在使用静态方法的事实。因此,除非类类或成员变量也被声明为静态或静态引用,否则该方法将无法访问任何类或成员变量。这个例子:

public class MyClass {
    public static String xThing;
    private static void makeThing() {
        String thing = "thing";
        xThing = thing;
        System.out.println(thing);
    }
    private static void makeOtherThing() {
        String otherThing = "otherThing";
        System.out.println(otherThing);
        System.out.println(xThing);
    }
    public static void main(String args[]) {
        makeThing();
        makeOtherThing();
    }
}

会起作用的,但是,如果像这样,那就更好了……

public class MyClass {
    private String xThing;
    public void makeThing() {
        String thing = "thing";
        xThing = thing;
        System.out.println(thing);
    }
    public void makeOtherThing() {
        String otherThing = "otherThing";
        System.out.println(otherThing);
        System.out.println(xThing);
    }
    public static void main(String args[]) {
       MyClass myObject = new MyClass();
       myObject.makeThing();
       myObject.makeOtherThing();
    }
}


 类似资料:
  • 问题内容: 我最近拾起Java并遇到了问题。我有几个具有不同类的文件,但是我无法弄清楚如何访问文件中声明了其他类之外的其他类的对象。例如: 我不确定如何从其他文件和类本身有效访问其他类的这些对象?我知道我可以使对象静态化,然后通过它们所在的类将它们作为变量进行访问,但这似乎有点违反直觉?我来自面向对象较少的编程背景,因此我仍在尝试了解Java的编程风格。 问题答案: 您可能只想要这样的东西: 希望

  • 这里我尝试访问我的handleTap()函数,它是我在另一个文件中创建的一个OBJ C函数,我需要它留在那个文件中,那么我如何从第二个ViewController访问这个函数呢? 这就是我在靠近底部的另一个文件中定义handleTap()的方式。它是一个文件名Button.swift,也许可以在SecondViewController上做一个扩展,包括handleTap(),但我不知道如何做。

  • 问题内容: 假设我正在构建一个井字游戏(因为它与结构非常相似),我希望结果在弹出窗口中显示,并带有一个新的游戏按钮,并且希望此弹出窗口允许我访问设置(另一个按钮)并对其进行更改,使其始终位于弹出窗口中,然后离开并最终将其关闭并开始新游戏。 我希望我可以保持秩序,因此有一个单独的弹出窗口类,可以在其中构建自定义弹出窗口。 显而易见,我将newgame方法和reset方法作为我的游戏网格类的方法。另一

  • 问题内容: 我试图在request.user中获取表单的clean方法,但是如何访问请求对象?我可以修改clean方法以允许输入变量吗? 问题答案: Ber的答案-将其存储在中-是一个非常糟糕的主意。绝对没有理由这样做。 更好的方法是重写表单的方法以使用额外的关键字参数。这会将请求存储在表单中,在需要的地方,你可以从此处以干净的方法访问它。 并且在你看来:

  • 问题内容: 我希望我说的是我的话。我有这样的课: 和其他这样的类: 这是从其他类(在该示例代码中)访问和更改其值的正确方法吗,是否有更好或更合适的解决方案?请注意,这是具有方法的类。 问题答案: 从另一个类访问私有变量的正确方法是使用getter和setter方法。否则,您应该将该变量公开。 那是: 但是,直接返回私有数据是一种不好的做法- 允许外部代码修改您的私有状态。通常,您应该返回私有数据的

  • 问题内容: 我的班级有一个名为DataStorage的哈希图: 如何在另一个类中访问此HashMap中的数据? 问题答案: 将HashMap创建为实例变量,并提供一种将其访问类API的方法: