public class Key {
public Encode() {
StringBuffer passWord = new StringBuffer("bubbles");
System.out.println("Original plain text:" + passWord);
for (int i = 0; i < passWord.length(); i++) {
int temp = 0;
temp=(int)passWord.charAt(i);
temp= temp* 9;
EncodedText = passWord.setCharAt(i , (char)temp);
return EncodedText;
}
//return EncodedText;
}
}
只需编写一个小程序来编码(和解码)一小段文本,但每当我运行它时都会出现相同的错误消息
&#34;错误:方法声明无效;需要返回类型 public Encode(){&#34; ^
答案 0 :(得分:1)
您的方法没有返回类型。它需要这样才能知道它返回的数据类型。
public <type goes here> Encode() {
此
EncodedText = passWord.setCharAt(i , (char)temp);
没有意义。 EncodedText
是一个类,它在分配给它之前需要一个实例。应该是
EncodedText variableName = passWord.setCharAt(i , (char)temp);
但可能更像(我不知道没见过那个班级)
EncodedText variableName = new EncodedText(passWord.setCharAt(i , (char)temp));
这个
return EncodedText;
也没有意义,这是试图返回一个类,也许你的意思是返回类的实例
return variableName;
在这种情况下,在第一个错误中,您可能意味着
public EncodedText Encode() {
除此之外,还有一些其他错误,如果没有看到EncodedText
类,我无法正确诊断。错误就像在一个似乎正在构建EncodedText
对象的循环中返回而缺少所述对象的创建。
答案 1 :(得分:0)
这里有几个错误。
return
在for循环中,它会使循环无用,因为它会在第一次迭代中返回。setCharAt()
作为返回类型无效,您无法将其分配给变量。答案 2 :(得分:0)
你需要在public
和Encode()
之间放置一个返回类型(例如String,int,double等),在这种情况下可能是StringBuffer。尝试public StringBuffer Encode() {...}
答案 3 :(得分:0)
此外,您没有遵循正确的Java命名约定。应该是这样的:
public returnType methodName(dataType parameter1, dataType parameter2){
}
e.g。
public int add(int a, int b){
return a+b;
}
用于命名约定标准,请参阅: http://java.about.com/od/javasyntax/a/nameconventions.htm