gpt4 book ai didi

java - 根据 API/UML,我的代码的结构/顺序是否正确?

转载 作者:行者123 更新时间:2023-11-30 01:44:07 25 4
gpt4 key购买 nike

这是我必须遵循的 API/UML。

enter image description here

这是我的代码。

public class NLP 
{
private String[] data;

public NLP() //or "public NLP(String[] data)"???
{
// IF public NLP(String[] data), then
//this.data = data; ???
...
}
public int countOccurrences(String word)
{
...
return count;
}
public String[] getStems(int len)
{
...return data; //???
}
//For testing
//public static void main(String[] args)
//{
//}
}

我不确定我的构造函数是否应该是public NLP(String[] data)public NLP()。如果 public NLP(String[] data) 应该是我的构造函数,有人可以向我解释为什么有两个 (String[] data) 吗?

<小时/>

这是我完成的代码。请随时检查并提供反馈。谢谢。

public class NLP 
{
private String[] data;


public NLP(String[] data)
{
this.data = data;
}

public int countOccurrences(String word)
{
int count = 0;
for (int i = 0; i < data.length; i++)
{
if (word.equals(data[i]))
{
count = count + 1;
}
}
StdOut.println(word + ": " + count);
return count;
}

public String[] getStems(int len)
{
for (int i = 0; i < data.length; i++)
{
String s = data[i];
if (len >= data[i].length())
{
data[i] = s;
StdOut.println(data[i]);
}
if (len < data[i].length())
{
data[i] = s.substring(0, len);
StdOut.println(data[i]);
}
}return data;
}
}

最佳答案

构造函数应该包含参数(即 public NLP(String[] data)),如 API 描述中所示,因此我认为您的实现(如以下部分所示)问题)就可以了。

但是,我认为您的一般问题是关于类的构造函数和内部数据如何相关:

类的数据(或状态)保存在一个或多个变量中(有时也称为成员字段或< em>属性) - 在你的情况下String[] data。面向对象编程中的一个一般概念是保持成员私有(private)并仅通过公共(public)接口(interface)方法(例如 getter 和 setter)访问它们。这称为 encapsulation

定义一个不带参数的构造函数当然也是可以的,但它只能用一些固定值来初始化类。在您的例子中,目的是使用传递给构造函数的参数(恰好也被命名为data)来初始化内部成员data

最后,许多编程语言(包括 Java)允许重载构造函数,因此您可以使用一个带参数的构造函数,而另一个不带参数的构造函数。 Here is一个有用的介绍。

关于java - 根据 API/UML,我的代码的结构/顺序是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58795912/

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