【发布时间】:2015-04-16 21:55:51
【问题描述】:
我的代码如下:
import java.io.*;
import java.util.*;
public class readStudents extends Object
{
private String SName = "";
private String DoB = "";
private String Gender = "";
private String Address = "";
Student [] students = new Student[20];
public void fillStudentArray()
{
// properties
int size; // total number of Students in collection
File file = new File("StudentDetails.txt");
try
{
Scanner in = new Scanner(file);
while(in.hasNextLine())
{
String SName = in.next();
String DoB = in.next();
String Gender = in.next();
String Address = in.next();
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
public String getName()
{
return this.SName;
}
public void printname()
{
System.out.println("hello");
}
public Student search(String name)
{
System.out.print("Enter the name you wish to search: ");
for (int i = 0; i < this.students.length; i++)
{
Student s = this.students[i];
if (s.getName().equalsIgnoreCase(name))
{
return s;
}
}
return null;
}
} //end class students
但是,我正在尝试创建一个完善的程序,我可以从另一个主文件中调用这些方法,并在该文件中使用尽可能少的代码。
底部的搜索方法让我感到困惑,因为我假设我需要在getName() 方法中对数组做一些事情,但我无法弄清楚。
由于我将这个作为另一个主方法的类,通过放置我的数组初始化和声明,它允许其他方法访问它,但它让我无法从主方法创建这个数组,除非我错过了什么?
这是jCreator 抛出的错误:
F:\University\Ass2\readStudents.java:62: error: cannot find symbol
if (s.getName().equalsIgnoreCase(name))
^
symbol: method getName()
location: variable s of type Student
【问题讨论】:
-
显示学生类的代码
-
@Nate_thp,您可能想要坚持 Java 命名约定(它在每本书中都适用于初学者),例如one from Sun 或 one from Google。
class readStudents、private String SName是错误的编码方式
标签: java arrays search jcreator