0

我正在尝试创建一个包含菜单并将执行用户选择的任何选项的程序。我完成了这些方法并让它们编译,但不知道如何调用这些类。这是屏幕截图中的代码,因此更易于阅读:

极客类:(包含所有方法)

    public class Geek{
    private String name;
    private int numberofQuestions=0;

    public Geek (String name){
        this.name = name;
        numberofQuestions = 0;

    }
    public String getName(){
        return name;

    }
    public int getnumberofQuestions(){
        return numberofQuestions;
    }
    public boolean allTheSame(int num1, int num2, int num3){

        numberofQuestions++;
        if(num1 == num2 && num2 == num3 && num1 == num3){
            return true;}
            else return false;
        }
    public int sum (int num1, int num2){
        numberofQuestions++;
        int largest = Math.max(num1, num2);
        int smallest = Math.min(num1, num2);
        int result =0;
        for (int i=smallest; i <= largest;i++){
        result = result + i;}
        return result;

    }
    public String repeat(String str, int n){
        numberofQuestions++;
        String repetition = "";
        for (int j=0; j < n; j++){
        repetition = repetition + str;}
        return repetition;

        }


    public boolean isPalindrome(String str){
        numberofQuestions++;
        int n = str.length();
        for( int i = 0; i < n/2; i++ )
        if (str.charAt(i) != str.charAt(n-i-1)) return false;
    return true;
    }

}

主要的:

http://i.imgur.com/DvJ0LU5.png

编辑:我在这部分代码中遇到找不到符号错误:

case "d":
        myGeek.sum(num1, num2, num3);
        System.out.println("Enter the first number");
        int num1 = scan.nextInt();
        System.out.println("Enter the second number");
        int num2 = scan.nextInt();
        System.out.println("Enter the third number");
        int num3 = scan.nextInt();
        break;
4

5 回答 5

2

类不被调用,它们是创建对象的蓝图。

您需要一个程序入口点,在这种情况下,在您的类中,就像这样

public static void main(String[] args)
{
  Geek myGeekObject = new Geek("Your name");
}

然后你可以调用你创建的对象的方法

public static void main(String[] args)
{
  Geek myGeekObject = new Geek("Your name");
  String geekName = myGeekObject.getName();
}
于 2013-11-01T16:10:34.417 回答
1

在 Java(以及我知道的任何其他语言)中,您只能调用方法/函数,但不能调用类(除了您 count <clinit>)。所以你可以写:

Geek geek = new Geek("Me");
int i = geek.sum(1, 2);
System.out.println(String.valueOf(i));

假设文件 Geek.java,然后您可以使用以下方法调用/运行该类:

javac Geek.java
java Geek

从命令行。

请注意,这只有在 Geek.java 包含 main 方法时才会成功。在这里阅读它们。

于 2013-11-01T16:10:33.983 回答
1

您需要创建对象实例,然后才能使用它

例如:

Geek g = new Geek("Geek");
g.getName();
于 2013-11-01T16:11:22.893 回答
0

你不能像那样使用非静态类。

想象一下 Geek 是 Geek 的定义。你想创建几个极客,每个都是独立的实例。

Geek g1 = new Geek("Andrew");
Geek g2 = new Geek("John");

这些行创建了两个实例g1g2类型Geek为 nameAndrewJohn

然后你像这样访问它们:

g1.repeat("myString", 10)
于 2013-11-01T16:11:14.360 回答
0

您需要实例化该类的实例才能使用它。

例如,在您的 main 方法中,您可能希望像这样定义对象的实例:

Geek myGeek = new Geek("user2943817");

您可以使用变量名称访问对象上的所有实例方法,如下所示:

myGeek.getName();

我希望这有帮助!

编辑 :

至于您的新问题,只需在从用户那里获取值后调用该方法即可。像这样:

case "d":
    System.out.println("Enter the first number");
    int num1 = scan.nextInt();
    System.out.println("Enter the second number");
    int num2 = scan.nextInt();
    System.out.println("Enter the third number");
    int num3 = scan.nextInt();
    myGeek.sum(num1, num2, num3);
    break;
于 2013-11-01T16:12:21.913 回答