我已经删除了缩短页面的代码,但是我问如何将personInterests更改为自己的类。对模糊问题道歉,但基本上我想将Person类中的personInterests更改为personInterests有多个变量的类。
import java.util.ArrayList;
import java.util.*;
public class Person{
private String personName;
private String[] personInterests = new String[3];
public Person(String personName, String[] personInterests){
this.personName = personName;
this.personInterests = personInterests;
}
public void setInterests(String[] personInterests){
this.personInterests = personInterests;
}
public String[] getInterests(){
return personInterests;
}
public String getName(){
return personName;
}
public String toString(){
String result = getName() + " ";
for (String interests : personInterests) {
result += interests + " ";
}
return result;
}
}
这是我的想法,它是如何工作的,不知道我将如何使用这个类并稍后调用它。
import java.util.ArrayList;
import java.util.*;
public class Interests {
private int interestDangerRating;
private String interestName;
private ArrayList<Interests> interestsList = new ArrayList<>();
public Interests (int interestDangerRating ,String interestName){
this.interestDangerRating = interestDangerRating;
this.interestName = interestName;
}
public void addInterests(Interests p){
interestsList.add(p);
}
Interests getInterests(int i){
return interestsList.get(i);
}
}
任何帮助都表示赞赏,因为我说这个代码大部分被取出,这是一个已经完成的旧项目,只是想看看我是否可以改变一些功能。
答案 0 :(得分:0)
首先,制作一个Interest
课程:
public class Interest {
private int interestDangerRating;
private String interestName;
// .. getters and setters
}
然后在Person
课程中摆脱private String[] personInterests = new String[3];
并将其替换为:
private ArrayList<Interest> interestsList = new ArrayList<>();
答案 1 :(得分:0)
您将使用您的兴趣类的逻辑来实现这一目标,但需要进行一些更改
import java.util.ArrayList;
import java.util.*;
public class Interests {
private int interestDangerRating;
// Is this a unique name for the entire class? If yes then no worries, but if not
// then its not needed, you've already got a list of interest names below
private String interestName;
// Change the array list to hold Strings, it's a list of words
private ArrayList<String> interestsList = new ArrayList<>();
public Interests (int interestDangerRating ,String interestName){
this.interestDangerRating = interestDangerRating;
this.interestName = interestName;
}
public void addInterest(String p){ // Again, change this to String
interestsList.add(p);
}
String getInterest(int i){ // Change this to return a String, since we changed the ArrayList above
return interestsList.get(i);
}
}
你也需要考虑这门课程。如果有长度变量,你怎么知道列表中有多少兴趣?或者返回整个兴趣列表而不仅仅是1的方法呢?
此外,此类中只设置了一个interestDangerRating;如果每个利益都有不同的危险等级,你不应该为每个利益添加一个危险等级吗?
在访问新课程方面,您需要在代码中创建一个类:
Interests variableName = new Interests(1, "football");
我已经随机选择了上面的“1”和“足球”,因为它们属于您兴趣类的构造函数。构建类的方式,在创建对象时不提供int和String就不能使用它
最后,要调用类上的方法,可以使用上面创建的变量来调用它的方法:
variableName.addInterest("basketball");
String interest = variableName.getInterest(1);
如果您正在努力,我建议您在线查看简单的java教程。实现java类并调用它们的方法是Java中的基本概念:)
答案 2 :(得分:0)
好的,这就是我要做的就是为你清理它并让它发挥作用。首先,想想你想要做什么。你想创建一个拥有多个兴趣的人,对吧?因此,上面的示例中的Interest类可以更改为典型的Java对象类,如下所示:
public class Interest {
private int dangerRating;
private String name;
public Interest (int dangerRating, String name) {
this.dangerRating = dangerRating;
this.name = name;
}
public int getDangerRating() {
return dangerRating;
}
public String getName() {
return name;
}
}
现在我们设置了Interest
课程,您可以在其中设置您感兴趣的名称和危险等级。我们现在需要做的是修改您的Person
课程,以便为您创建的每个Person
存储兴趣列表。
import java.util.ArrayList;
public class Person{
private String name;
private ArrayList<Interest> interests = new ArrayList<Interest>();
public Person(String name, ArrayList<Interest> interests) {
this.name = name;
this.interests = interests;
}
public void addInterest(Interest newInterest) {
interests.add(newInterest);
}
public Interest getInterest(int indexOfInterest) {
return interests.get(indexOfInterest);
}
public ArrayList<Interest> getInterests() {
return interests;
}
public String getName() {
return name;
}
public String toString() {
String result = getName() + " ";
for(Interest interest : interests) {
result += interest.getName() + "(" + interest.getDangerRating() + ")" + " ";
}
return result.trim();
}
}
这允许您为新Person
设置所有兴趣的初始列表,并且从那里,您可以添加新的兴趣,获得所有兴趣或获得任何个人兴趣。
希望这有助于澄清这一切是如何组合在一起的!
现在是时候实例化一切了。让我们创建一些我们将使用的Interest
个对象:
Interest golf = new Interest(1, "golf");
Interest swimming = new Interest(3, "swimming");
现在假设我们想要两个叫John和Mary的人。约翰喜欢高尔夫和游泳,而玛丽只喜欢游泳。然后我们按如下方式创建Interest
列表:
ArrayList<Interest> johnsInterests = new ArrayList<Interest>();
johnsInterests.add(golf);
johnsInterests.add(swimming);
ArrayList<Interest> marysInterests = new ArrayList<Interest>();
marysInterests.add(swimming);
最后,我们将创建两个Person
对象,其中包括人名和兴趣列表。
Person john = new Person("John", johnsInterests);
Person mary = new Person("Mary", marysInterests);
瞧!