有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在main方法中使用getter和setter

public class Testing {

    public static void main(String[] args) {
        String test=("test");
        Scanner type = new Scanner(System.in);
        String theTest = type.next();
        switch(theTest) {
            case "test":
                int input = type.nextInt();
                System.out.println("OK");
        }
    }
}
public class TestingB {
    private int finalInput;
    finalInput=input; // I want to give finalInput the value of input
}

好的,这段代码保存了用户在变量input中的“test”之后放入的int

我的问题是如何获取包含int值的这个变量input,并在不同的类中更新另一个int

我试着使用setter和getter,但我不能在主方法中使用它,或者我误解了什么


共 (1) 个答案

  1. # 1 楼答案

    所以除了在静态上下文中运行的主方法之外。Java中的所有类都需要实例化,这意味着要从Java中的类(https://www.javatpoint.com/instantiation-in-java)创建一个新对象,这是使用new关键字完成的。就像这样:

    TestingB testingB = new TestingB();
    
    

    现在,当对象被实例化时,我们不仅有一个类。我们有一个由这个类构成的对象。类定义了对象,但是我们可以从同一个类中创建多个对象。把这门课想象成一个食谱,它塑造了一道菜的形状

    并不是说我们已经讨论了类和对象之间的区别,我们需要讨论您提到的getter和setter。在类中,值可以有getter和setter,它们允许其他对象设置或获取它们的值

    int的getter可能如下所示:

    public int getInput() {
       return this.input;
    }
    
    

    设置值的setter如下所示:

    public void setInput(int input) {
       this.input = input
    }
    
    

    在这种情况下,输入被称为字段,setter和getter可以设置或获取该字段。使用的“this”关键字指向对象。所以这个。输入是类顶部的字段,而输入只是方法签名中传递的参数

    有几种方法可以将一个值解析为一个对象,您也可以将其作为构造函数中的一个参数来解析(比如:https://beginnersbook.com/2013/03/constructors-in-java/)。但这可能是另一个问题的主题

    将getter和setter与您提供的代码结合在一起,我们最终得出以下结论:

    public class Main {
     
        public static void main(String[] args) {
            String test = "test"; // I removed the parenthesis they have no function
            Scanner scanner = new Scanner(System.in); //I named the scanner as scanner
            String theTest = scanner.next();
            switch (theTest) {
                case "test":
                    System.out.println("Please provide a number also");
                    int intput = scanner.nextInt();
                    TestingB testing = new TestingB();
                    testing.setFinalInput(intput);
                    System.out.println("OK: The number from testing is: " + testing.getFinalInput()) ;
                    break;
            }
        }
    }
     
    
    
    public class TestingB {
        private int finalInput;
     
        public int getFinalInput() {
            return finalInput;
        }
     
        public void setFinalInput(int finalInput) {
            this.finalInput = finalInput;
         }
    }
    
    
    

    我看得出你的语法有几个错误。switch语句没有正确关闭,并且在类中输入的方式也不起作用。我不知道你使用哪个编辑器或IDE,但我认为选择一个好的编辑器或IDE可以帮助你提高。如果你在学习,你可以考虑java或GRiBew。但即使是像IntelliJ这样更复杂的IDE也能帮到你。尽管习惯于看到彩色代码和一些基本的自动完成似乎很复杂,但这有助于保持反馈循环,避免你尝试新的东西,以了解它是否正确,并最终帮助减少学习曲线的陡峭度