有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java与集合对象有关系的类是否与集合的元素有关系?

我正在学习Java8程序员II认证,我正在复习类可以拥有的关系。我理解组合,但我想知道作为类的类变量的集合的元素与该类之间是否存在关系。例如,考虑这个代码:

public class A {
    static ArrayList<String> strings = new ArrayList<String>();

    public A() {
        strings.add("foo");
    }
}

我们是否说字符串的字符串元素与类a有关系


共 (4) 个答案

  1. # 2 楼答案

    Has-a和is-a是直观的概念。它们不是编译器要检查的规则。这是一个共享词汇,用于有效地与他人沟通,并用于做出设计决策。那么A级有这些字符串吗?是的,但是你很少会说,你会说A类有一个字符串集合。一个简单的类比是,当你提着一个书包时,你不会马上说你在提书,而很可能会说你提着一个装满书的书包(收集的字符串)

  2. # 3 楼答案

    我会说是的。这个集合在这里几乎无关紧要,它只是类和字符串之间“has-a”关系的一个实现细节,而不是其他任何东西。至于这是一个类范围的关系,而不是每个实例的关系,好吧,只要你意识到这是你的意图,那就好了

  3. # 4 楼答案

    首先,我们应该弄清楚,如果类A有简单的String字段,那么类AString是否存在关系:

    public class A {
        static String aString;
    
        public A() {
           aString = "foo";
        }
    }
    

    。。。我认为是这样!那就是“has-a”关系——Ahas-a String

    在你的例子中有一个String的集合。我们也可以说类A有-a(很多;)Strings。。。可以想象类AString对象有很多关系;类A在集合中聚合它们。这类似于众所周知的构图示例“汽车”有“轮子”

    你也可以说这是单向的一对多关系(单向的,因为这种关系只有一方知道另一方)