【发布时间】:2018-12-04 20:03:34
【问题描述】:
这是我目前的代码:
public class Word{
String text;
public Word(String text){
this.text = text;
}
public static boolean isPalindrome(Word word){
char[] text1 = new char[word.text.length()];
for(int i = 0; i< word.text.length(); i++){
text1[i] = word.text.charAt(i);
}
char[] text2 = new char[word.text.length()];
int j = 0;
for(int i = word.text.length()-1; i >=0; i--){
text2[j] = word.text.charAt(i);
j++;
}
for(int i = 0; i < word.text.length(); i++){
if(text2[i]!=text1[i]){
return false;
}
}
return true;
}
public static void main(String[] args){
Word word = new Word("racecar");
System.out.println(isPalindrome(word));
}
}
目标
它可以工作,但我正在尝试重写我的代码以某种方式传入对象并让方法对其进行操作。所以该方法应该不接受任何输入,我应该能够编写object.isPalindrome() 并让它输出boolean。
这不是为了家庭作业或任何事情。只是想进一步挑战自己,因为我对物体很虚弱。
【问题讨论】:
-
好吧,如果其他人为你做这件事,这并不是真正挑战你自己。也许你可能想从这里开始 --> Lesson: Classes and Objects
-
查找
this关键字 -
我相信 OP 想让
isPalindrome()方法非静态。 -
(1) 删除
static(2)System.out.println(word.isPalindrome()); -
@PM77-1 是的。我知道使它成为非静态允许它专门作用于一个对象,但这样做也意味着修改方法以不接受任何参数。在这种情况下,如果没有输入用于识别单词是否为回文,我将如何正确执行该方法?如果我将其设为非静态并将其保留为 System.out.println(word.isPalindrome(word)) 它确实有效,但这对我来说似乎效率低下。
标签: java oop object constructor