小编Den*_*nch的帖子

5
推荐指数
1
解决办法
599
查看次数

UML 中的组合

在 UML 图中考虑组合时。我们应该在逻辑或实现意义上使用它。这两个术语的示例:

  • 实施 - 机场将包含对国家/地区的引用。换句话说,一个国家是机场的一部分。
  • 逻辑 - 一个国家可以有零个或多个机场。换句话说,机场是国家的一部分。

UML 示例图

从上图中,哪种情况显示了构图的正确用法?注意:如果这两种情况都不好,请建议其他方式来显示国家和机场之间的关系。

java uml

4
推荐指数
1
解决办法
4806
查看次数

如何在不暴露字段的情况下实现equals?

假设我有一个Dog类,它有一个字段private final int age和一个方法public Dog ageBy(Time time),每次调用时都会返回狗的新实例.一个Dog班级不仅是不可改变的,而且没有任何get方法可以让它恢复年龄,换句话说,狗的合同不允许他说出他的年龄(为什么?因为没有会说话的狗),他只能'吠叫', '睡觉',做其他狗的东西.

Dog可以按年龄与其他狗进行比较.为此,我需要覆盖类中的public equals(Object o)方法Dog.但问题是没有办法比较它,因为我无法访问过往的狗年龄.

问题:如何在不暴露任何对象字段的情况下实现equals方法?

java

1
推荐指数
1
解决办法
63
查看次数

为什么在run方法中关闭套接字?

服务器:

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public final class Server {

public static void main(String[] args) {
    new Server().start();
}

public void start() {

    ExecutorService executorService = Executors.newFixedThreadPool(10);
    try (ServerSocket serverSocket = new ServerSocket(1200)) {
        while (true) {
            try (Socket socket = serverSocket.accept()) {
                executorService.submit(new SocketHandler(socket));
            } catch (IOException e) {
                System.out.println("Error accepting connections");
            }
        }
    } catch (IOException e) {
        System.out.println("Error starting server");
    }
}

public final class SocketHandler implements Runnable {

    private final …
Run Code Online (Sandbox Code Playgroud)

java sockets

1
推荐指数
1
解决办法
80
查看次数

标签 统计

java ×3

automaton ×1

dfa ×1

discrete-mathematics ×1

nfa ×1

regex ×1

sockets ×1

uml ×1