自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 软件构造心得(十二)

ptr = 0;可以看到我们在next中指定的遍历规则是根据ArrayMap的key值进行遍历。如上所示,通过创建KeyIterator对象进行迭代访问(注意外部类创建内部类对象的方式)。

2023-05-25 18:38:12 44

原创 软件构造心得(十一)

然而,在给定的方法中,并没有比较传入对象 p 的属性与当前对象的属性是否相等,而是直接比较了两个对象的属性。在给定的方法中,只检查了传入对象 p 的属性与当前对象的属性是否相等,而没有检查当前对象的属性与传入对象 p 的属性是否相等。这个说法是不正确的。当执行以上代码的 main() 方法后,控制台的输出内容可能是 "ac" 或 "bc",因为线程 B 的 run() 方法中的代码可能会打印 "a" 和 "c",或者由于线程被中断而抛出 InterruptedException,从而打印 "b"。

2023-05-22 21:18:38 53

原创 软件构造心得(十)

D. 被 visit 的 ADT,可以提供诸如 accept(Visitor v1,Visitor v2) 的方法,即可支持对 ADT 做两个外部操作的组D这个选项是不恰当的,因为 Visitor 模式的初衷是将操作从对象结构中分离出来,每个 Visitor 只负责一个具体的操作。这样,当需要对元素进行新的操作时,只需要创建一个新的访问者类,并在元素类的 accept 方法中调用新访问者的方法即可。Visitor 设计模式的核心思想是让访问者在不修改元素类的情况下,通过定义新的访问者类来添加新的操作。

2023-05-21 22:56:56 57

原创 软件构造心得(九)

在绘制时应该避免调用 paint() 方法,因为它会擦除掉 JPanel 上的所有内容。2. 在 paintComponent(Graphics g) 方法中,应该在最后调用 super.paintComponent(g) 方法,以便原来的绘制得以保留。在心得(八)中提及到了GUI设计,这让我想到了用到的JPanel画图,下面将对JPanel画图说一点我的理解,并且给出我画出的一些图。总之,使用 JPanel 组件进行图形绘制需要注意一些细节问题,但只要按照正确的方法进行,就可以实现漂亮的图形展示效果。

2023-05-19 23:51:50 50 1

原创 软件构造心得(八)

在上面的示例中,我们创建了一个登录窗口,包括一个标题、一个表单、两个按钮和一个消息标签。在构造方法中,我们设置了窗口标题、关闭操作、大小和位置,并使用布局管理器将组件添加到窗口中。这只是一个简单的示例,实际的GUI设计可能涉及到更多的组件、布局管理器、事件处理等方面,需要根据具体需求进行设计和实现。总之,在进行Java GUI设计时,需要注重用户体验和界面可用性,同时也需要兼顾代码实现效率和可维护性。界面交互:设计良好的界面交互方式,如提示信息、错误提示、确认对话框等,以提高用户体验和界面可用性。

2023-05-19 22:46:21 274

原创 软件构造心得(七)

这样可以将一个类的实例化延迟到其子类中。设想,假如一开始所有人都穿T恤,那么到后来,秋天了,大家穿长袖的,有可能是里面套了一个背心,也有可能是里面传了一件毛衣,那么我们都用继承来进行处理的话,这个组合树,将会越来越大.问题很大!假如我们在进行一个机器学习的项目,我们的核心算法,它需要提供一个numpy形式的矩阵,而我们的数据采集器,返回的矩阵,是一个excel文件.:比如,我写了一个白盒框架,现在要往里面加东西,我希望用户来进行手动添加,那么,我给用户一个接口,下面的子类型实现是可以进行任意安排的.

2023-05-19 22:35:10 65 1

原创 软件构造心得(六)

在一个需要 Action 的地方,主调方对一个 Action 的调用,总是希望传进一个 Cat 时,操作顺利进行,而将 Action 当成 Action 用,则只要传进一个 Animal 即可顺利进行,实参传 Cat 在任何场景下都合理。如果 IList 是 IList 的子类,那么当主调方拥有一个 IList(但实际是 IList)且想从中得到一个 Cat 时,有可能得到了一个 Dog,操作不安全。2. 子类型要实现抽象类型中的所有方法。

2023-04-08 20:53:05 27

原创 软件构造心得(五)

然而在实际做项目的时候,类会有N个属性,属性的类型有很多是一致的,当你给参数的时候,怎么知道哪一个参数要赋给对应的属性呢?

2023-03-30 14:36:50 55

原创 软件构造心得(四)

方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。

2023-03-23 16:02:06 35

原创 软件构造心得(三)

对可变类型,实现行为等价性即可,也就是说,只有指向同样内存空间的objects,才是相等的。所以对可变类型来说,无需重写这两个函数,直接继承Object的两个方法即可。如果一定要判断两个可变对象看起来是否一致,最好定义一个新的方法。而对不可变类型,一定要重写两个方法。

2023-03-21 19:06:25 53

原创 软件构造心得(二)

final特性: final 限定的是引用不变(如果mutable改变值不会报错),final类无法派生子类,final方法无法被子类重写。我认为这个是课程的重点,老师花了接近一节课的时间带领我们学习,这也是课程的难点,通过画图分析可以很好的解决。(Java是静态类型检查,在编译阶段进行检查,Java不进行动态类型检测)静态类型检查:语法、类名/函数名、参数数目、参数类型、返回值类型。动态类型检查:非法的参数值、非法的返回值、越界、空指针。必须通过类中的方法来改变类中的属性(防止信息泄露)

2023-03-08 17:42:29 39

原创 软件构造心得(一)

正确性(Correctness)、健壮性(Robustness)(针对异常情况处理)、可扩展性(Extendibility)、可复用性(Reusability)、兼容性(Compatibility)、性能(Efficiency)、可移植性(Portability)(Java的优点之一)、易用性(Easy of use)、功能性(Functionality)、及时性(Timeliness)外部质量因素影响用户,内部质量因素影响软件本身和它的开发者。不同质量因素折中,但”正确性“绝不能与其他质量因素折中。

2023-03-06 13:40:26 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除