所以我的作业只问我类方法,但它要求我输入.java和.class文件。好吧,我有理论上应该工作的代码,但无论我尝试什么,它都不会编译。例如,这是一个:
public class findFourLetterWord(String[] strings) {
public static void main(String[] args) {
for (int i = 0; i < strings.length; i++)
if (strings[i].length()==4)
return strings[i];
return null;
}
}
这是我得到的错误:
8 errors found:
File: D:\School\CSC 2310\hw5_elemmons1\FindFourLetterWord.java [line: 9]
Error: The public type findFourLetterWord must be defined in its own file
File: D:\School\CSC 2310\hw5_elemmons1\FindFourLetterWord.java [line: 9]
Error: Syntax error on token "(", { expected
File: D:\School\CSC 2310\hw5_elemmons1\FindFourLetterWord.java [line: 9]
Error: Syntax error on token ")", ; expected
File: D:\School\CSC 2310\hw5_elemmons1\FindFourLetterWord.java [line: 9]
Error: Syntax error, insert "}" to complete Block
File: D:\School\CSC 2310\hw5_elemmons1\FindFourLetterWord.java [line: 11]
Error: Cannot make a static reference to the non-static field strings
File: D:\School\CSC 2310\hw5_elemmons1\FindFourLetterWord.java [line: 12]
Error: Cannot make a static reference to the non-static field strings
File: D:\School\CSC 2310\hw5_elemmons1\FindFourLetterWord.java [line: 13]
Error: Cannot make a static reference to the non-static field strings
File: D:\School\CSC 2310\hw5_elemmons1\FindFourLetterWord.java [line: 14]
Error: Void methods cannot return a value
有什么建议吗?
答案 0 :(得分:0)
FindFourLetterWords
,并附上上限。(String[] strings)
(它已经在main方法上)答案 1 :(得分:0)
我想也许你需要做
public class FindFourLetterWord {
public static void main(String[] args) {
for (int i = 0; i < strings.length; i++){
if (strings[i].length()==4)
System.out.println(strings[i]);
}
}
}
这将打印出您输入的四个字母单词。
有关详细信息,请查看方法和类的java tutorial。
答案 2 :(得分:0)
假设您正在运行Eclipse作为IDE,如果您将代码重新安排为以下内容:
public class FindFourLetterWord {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
if (args[i].length() == 4) {
System.out.println(args[i]);
break;
}
}
}
}
然后保存更改(自动触发编译),您可以从命令行运行已编译的程序(.class
文件),并带有一些参数(即args
中包含的),是单词搜索列表:
$> cd /path/to/your/FindFourLetterWord.class/file
$> java FindFourLetterWord aba abba ab a
你会在指定的单词(abba)中得到第一个4个字母的单词
这样,您基本上可以调用类的main
方法(为它提供一些String
参数),这是每个Java程序的入口点。
正如其他人已经说过的那样,首先尝试了解基础知识。
答案 3 :(得分:0)
您的来源中存在许多问题。你真的应该找到一本不错的介绍书,因为你所犯的错误是基本的错误。
第一条错误消息表明类public class findFourLetterWord
需要位于其自己的文件中,该文件的名称为findFourLetterWord.java,但是需要大写,并且您的文件名以大写字母f而不是小写字母开头字母f作为您的班级名称开始。所以要把你班上的第一个字母大写。
您不以您的方式为类提供参数。你正在对这个类进行处理,就像它是一种方法。类中的方法接受参数或参数,但类本身不接受。
接下来,类中的静态方法无法访问非静态的类方法。您需要了解静态方法和始终存在的变量之间的区别,以及从类创建对象时创建的动态方法和变量。
类是用于创建对象的描述或模板。在创建实际对象之前,非静态的方法和变量不可用。但是,可以访问静态方法和变量,而无需从类中实际创建对象。
所以你需要类似下面的东西,我没有测试过,甚至没有编译过,所以可能会有错误,但它会让你开始。但是有几种方法可以做到这一点,这只是一种使用对象和新方法的粗略草案,用于演示静态和非静态变量和方法之间的区别。
public class FindFourLetterWord {
String [] myArgs;
// constructor for the class
public FindFourLetterWord (String [] args) {
myArgs = args;
}
public String FindWord () {
for (int i = 0; i < myArgs.length; i++)
if (myArgs[i].length() == 4)
return myArgs[i];
}
return null;
}
// the main where processing starts
public static void main(String[] args) {
FindFourLetterWord myObj = new FindFourLetterWord(args);
String foundWord = findWord();
if (foundWord == null) {
System.out.println ("no word found");
} else {
System.out.println ("Found word " + foundWord);
}
}
}