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

问题描述:

我最近有一些问题... 我一直在网上一些教程,并输入他们告诉我的代码,我修改它一点,它不工作..这是在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或说? 我应该申报吗?

+2

你Stoof类没有按”包含一个setName方法。你应该创建一个NewJavaStoof的实例并在你的主要方法中使用它吗? – tomasmcguinness

行之后

Stoof stoofObject = new Stoof(); 

应该

NewJavaStoof stoofObject = new NewJavaStoof(); 
+0

谢谢;)没有注意到... ... – user2237848

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

+0

+1为第一个回答这个问题。 – CloudyMarble

Stoof stoofObject = new Stoof();应该

NewJavaStoof stoofObject = new NewJavaStoof();

你为什么声明NewJavaStoof但在你的主要方法使用Stoof?我猜你应该NewJavaStoof取代所有Stoof或您NewJavaStoof类重命名为Stoof

在Stoof您要呼吁stoofObject的setName是类型Stoof的。

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

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

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

创建从NewJavaStoof一个实例,而不是从Stoof .. Stoof没有方法的setName(),并说()..

使用本NewJavaStoof stoofObject = new NewJavaStoof();