我需要在前面加上我不允许在课堂上使用IDE,我必须使用TextPad进行编译和运行。任何帮助将不胜感激。
有三个文件,一个驱动程序文件和另外两个类文件。 Lab4文件是驱动程序文件,类文件是“ITEM”和“NAME”。
编译驱动程序“Lab4”文件时出现以下错误。
F:\Java\Lab 4A\Lab4.java:86: error: cannot find symbol
System.out.println ("Manufacturer's Name: " + item.manName());
^
symbol: method manName()
location: variable item of type Item
“Lab4”文件的代码位于:
import java.util.Scanner;
public class Lab4
{
public static void main (String[] args)
{
String firstName = "";
String lastName = "";
String manName = "";
float cost = 0.00f;
int itemNum = 0;
// Instantiate class files
// Variables are declared because variables are expected in name.java file
Name name = new Name("Bob", "Jones");
Item item = new Item(985534, 9.99f, "Lewis Mfg");
// Create a scanner
Scanner input = new Scanner(System.in);
// Recieve user input for variables
System.out.println ("Please enter the customer's first name: ");
firstName = input.next();
while (firstName.length() < 1)
{
System.out.println ("Enter a valid first name");
firstName = input.next();
}
name.setfirstName(firstName);
firstName = "";
System.out.println ("Please enter the customer's last name: ");
lastName = input.next();
while (lastName.length() < 1)
{
System.out.println ("Enter a valid last name: ");
lastName = input.next();
}
name.setlastName(lastName);
lastName = "";
System.out.println ("Please enter the item number: ");
itemNum = input.nextInt();
while (itemNum < 1)
{
System.out.println ("Enter a valid item number: ");
itemNum = input.nextInt();
}
item.setitemNum(itemNum);
itemNum = 0;
System.out.println ("Please enter the item's cost (including decimal): ");
cost = input.nextFloat();
while (cost < 1)
{
System.out.println ("Enter a valid cost amount: ");
cost = input.nextFloat();
}
item.setcost(cost);
cost = 0;
System.out.println ("Please enter the manufacturer's name: ");
manName = input.next();
while (manName.length() < 1)
{
System.out.println ("Enter a valid manufacturer's name");
manName = input.next();
}
item.setmanName(manName);
manName = "";
// Outputs the data entered by the user and stored in the other classes, Name and Item
System.out.println ("First Name: " + name.getfirstName() + "\n");
System.out.println ("Last Name: " + name.getlastName() + "\n");
System.out.println ("Item Number: " + item.getitemNum() + "\n");
System.out.println ("Item Cost: " + item.getcost() + "\n");
System.out.println ("Manufacturer's Name: " + item.manName());
System.out.println ("\n\nThe customer and item information have been entered.\n");
}
}
错误中引用的“ITEM”文件的代码位于:
public class Item
{
// Create private variables that cannot be accessed directly
private int itemNum;
private float cost;
private String manName;
// Create instances of the private variables that can be set by the methods
public Item (int itemNum, float cost, String manName)
{
this.itemNum = itemNum;
this.cost = cost;
this.manName = manName;
}
// Gets the variable values from the user via the driver class
public int getitemNum()
{
return itemNum;
}
public float getcost()
{
return cost;
}
public String getmanName()
{
return manName;
}
// Sets the variable amounts into the private variables after validating the input form
public boolean setitemNum(int itemNum)
{
if (itemNum < 0)
return false;
else
this.itemNum = itemNum;
return true;
}
public boolean setcost(float cost)
{
if (cost < 0)
return false;
else
this.cost = cost;
return true;
}
public boolean setmanName(String manName)
{
if (manName.length() < 0)
return false;
else
this.manName = manName;
return true;
}
}
任何帮助都会很棒!
答案 0 :(得分:8)
您为方法getmanName()
命名,但在错误行上调用manName()
。
答案 1 :(得分:2)
你有一个简单的拼写错误:
您需要item.getmanName()
而不是manName()
答案 2 :(得分:2)
manName
是一个属性,您将其引用为方法manName()
由于manName
为private
,您必须使用名为getmanName()
的访问者
根据您的代码{@ 1}}
给出正确的参考根据Java的正确item.getmanName()
命名约定,该方法的更好的惯用名称是getManName()
。
答案 3 :(得分:1)
您正在调用manName(),但您的方法是getmanName()
答案 4 :(得分:0)
据我所知,manName
类中没有Item
方法。 Getter方法称为getmanName
。通常有一条规则告诉getter方法应该以 get 字开头,然后你应该放置你想要获得的类属性名。
将编译错误更改为:
System.out.println ("Manufacturer's Name: " + item.getmanName());
现在应该可以了。