gpt4 book ai didi

java - 实例变量和构造函数?

转载 作者:行者123 更新时间:2023-12-01 18:09:21 25 4
gpt4 key购买 nike

所以我有我的代码:

import java.util.Scanner;

public class PalindromeDriver
{
public static void main(String[] args)
{
String another = "y";
Scanner scan = new Scanner(System.in);
PalindromeTester section = new PalindromeTester();
while (another.equalsIgnoreCase("y"))
{
System.out.println("Enter a palindrome:");
String str = scan.nextLine();
if (section.palindromeTest(str))
System.out.println(str + " IS a palindrome!");
else
System.out.println(str + " is NOT a palindrome!");
System.out.println("Test another?(y/n)");
another = scan.nextLine();
}
}
}

还有...导入java.util.*;

public class PalindromeTester
{
public boolean palindromeTest(String str)
{
if (str.length() <= 1)
return true;
if (str.charAt(0) == str.charAt(str.length() - 1))
return palindromeTest(str.substring(1, str.length() - 1));
return false;
}
}

我被告知我的代码很好,但是我应该在 PalindromeTester 中添加更多方法,例如构造函数和将潜在回文存储到实例变量中的方法,添加这些方法对我有什么作用程序是否已经正确运行?

最佳答案

目前,您的 PalindromeTester 是一个简单的实用程序类 - 它检查一个字符串是否为回文。因此,有人可能会争论是否值得将其放入一个类中 - 您可以在 PalindromeDriver 中拥有该方法。

让我们再看看这些建议:

有一个构造函数。使用实例变量

public class PalindromeTester {

private String palindrome;

public PalindromeTester(String candidate) {
palindrome = candidate;
}

}

有了这个类,您就可以将实用程序调用 palindromeTest 转换为稍微更具吸引力的形式:

  public boolean isPalindrome() {
//Do check here
}

然后考虑其他方法,例如

  public String getForwards() { 
//
}

public String getBackwards() {
//
}

所有这些都不需要再次传递该字符串。

底线

它会给你带来什么?它会让你的程序更加“面向对象”,而不那么“功能化”。也许更好地阅读。并且 future 更具可扩展性。

关于java - 实例变量和构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34074464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com