不能让我的程序在java中编译?

时间:2013-04-16 11:55:24

标签: java

我最近遇到了一些问题...... 我已经在网上下了一些教程并输入了他们告诉我的代码,我修改了一下,但它不起作用..这是用Java编写的。

编译的代码的第一部分

package newjavastoof;

public class NewJavaStoof {
    private String girlName;
    public void setName(String name)
    {
        girlName = name;
    }
    public String getName()
    {
        return girlName;
    }
    public void saying()
    {
        System.out.printf("your first girlfriend was %s", getName());
    }
}

第11行和第12行未编译的代码的第二部分

package newjavastoof;
import java.util.Scanner;

public class Stoof {
    public static void main(String[] args)
    {
        Scanner imput = new Scanner(System.in);
        Stoof stoofObject = new Stoof();
        System.out.println("Enter name of first gf here: ");
        String temp = imput.nextLine();
        stoofObject.setName(temp);
        stoofObject.saying();


    }   
} 

这里有什么不对? 我不明白,为什么没有setName或者说? 我应该申报吗?

6 个答案:

答案 0 :(得分:3)

以下行

Stoof stoofObject = new Stoof();

应该是

NewJavaStoof stoofObject = new NewJavaStoof();

答案 1 :(得分:1)

在第一段代码中,您的类名为NewJavaStoof,但在第二段代码中,您使用的是Stoof类。

答案 2 :(得分:0)

Stoof stoofObject = new Stoof();它应该是

NewJavaStoof stoofObject = new NewJavaStoof ();

答案 3 :(得分:0)

为什么要在主要方法中声明NewJavaStoof但使用Stoof?我想你应该用[{1}}替换所有Stoof或将NewJavaStoof班级重命名为NewJavaStoof

答案 4 :(得分:0)

在Stoof中,您尝试在Stoof类型的stoofObject上调用setName。

Stoof stoofObject = new Stoof();
...
stoofObject.setName(temp);

方法setName未在Stoof上定义,而是在NewJavaStoof对象上定义。将Stoof改为NewJavaStoof,你就完成了。

NewJavaStoof stoofObject = new NewJavaStoof();
...
stoofObject.setName(temp);

答案 5 :(得分:0)

从NewJavaStoof创建实例,而不是从Stoof创建实例。 Stoof没有方法setName()和说()..

使用此NewJavaStoof stoofObject = new NewJavaStoof();