Tag: 组成

扩展JFrame总是一个坏主意吗?

在开发Java Swing GUI时,扩展JFrame总是一个坏主意吗? 那么JPanel或其他JComponents呢? 还有什么让它变坏?

扩展JFrame

扩展JFrame而不是创建新的JFrame有什么优缺点? 例如: public class Test extends JFrame { setVisible(true); } 要么 public class Test { JFrame test = new JFrame(): test.setVisible(true); }

如何用Java编写可靠的Pure Aggregation(组合)游戏对象?

所以我刚开始用Java编写游戏,我正在编写我的游戏对象。 现在我已经在Evolve Your Hierarchy中阅读了你应该将你的游戏构建为组合而不是大类层次结构。 由于上一个链接中的此图像显示: 但是,当实际开始实现时,我有一个关于在哪里应用接口的小问题。 假设你有一个叫做Player的类,接口是Moveable和Renderable。 您是使用公共接口变量实现的: class Player { public Moveable moveable; public Renderable renderable; } class GenericMoveable implements Moveable { // Function implementations } class PlayerRenderable implements Renderable { // Function implementations } 或者您尝试通过将接口直接应用于对象来执行此操作: class Player implements Moveable, Renderable { private GenericMoveable genericMoveable; // Non-direct Implementation of Moveable void someMoveFunc(double x, double […]

依赖与构成之间的区别?

定义取自这里 依赖 类的结构或行为的变化会影响其他相关类,然后这两个类之间存在依赖关系。 反之亦然,它不一定相同。 当一个类包含另一个类时,就会发生这种情况。 组成 组合是聚合的特例。 以更具体的方式,受限制的聚合称为组合。 当一个对象包含另一个对象时,如果所包含的对象不存在而不存在容器对象,那么它就称为组合。 Java中的具体示例来自此处和此处 依赖 class Employee { private Address address; // constructor public Employee( Address newAddress ) { this.address = newAddress; } public Address getAddress() { return this.address; } public void setAddress( Address newAddress ) { this.address = newAddress; } } 组成 final class Car { private final […]

如何在Java中修剪其某些字段的对象?

假设我们有一个Object类型的对象obj ,使System.out.println(obj)生成{a=Some text, b=Some more text, c=Even more text} 。 现在我们想要创建一个新对象obj2 ,它只是{a=Some text} (即,字段b和c是从obj中删除的)。 所以我们定义一个类A如下: class A { String a; } 然后我们按如下方式初始化obj2 : A obj2 = (A) obj 。 不幸的是,这样做时出现运行时错误。 问题:我们如何定义上面概述的obj2 ?

扩展JFrame与在程序中创建它

在使用Swing创建应用程序时,我看到人们会做两件事之一来创建JFrame。 哪种方法更好,为什么? 我是Java和编程的初学者。 我唯一的学习来源是书籍,YouTube和Stack Overflow。 import {imports}; public class GuiApp1 { public static void main(String[] args) { new GuiApp1(); } public GuiApp1() { JFrame guiFrame = new JFrame(); guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); guiFrame.setTitle(“Example GUI”); guiFrame.setSize(300,250); ……………. } 和 import {imports}; public class GuiApp1 extends JFrame { public Execute() { getContentPane().setBackground(Color.WHITE); getContentPane().setLayout(null); setSize(800, 600); …………. } public static void […]