02 2023 档案

摘要:这又是更深层次,更纯粹的抽象,这时候接口的作用就仅仅是一种标签,标识作用。仅仅起到一种归类作用。我需要的仅仅是接口名,我又不想实现任何方法。抽象的本质就是关注重点。如果重点在关注行为上,那接口肯定是要规定方法的。那么如果重点在对具体属性的封装以及操作上,那一定是要规定类的。 阅读全文
posted @ 2023-02-21 09:54 英特耐雄纳尔定要实现 阅读(19) 评论(0) 推荐(0)
摘要:Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例。实际上可以想象就是连创造匿名内部类时所需要的new + 接口名称这些东西都去掉了,因为这种表达方式还算不上是纯粹的匿名,而且只是等于说把要作为参数传入的代 阅读全文
posted @ 2023-02-20 20:58 英特耐雄纳尔定要实现 阅读(97) 评论(0) 推荐(0)
摘要:加入这个类还没有被加载和连接,则程序先加载并连接该类 加入该类的直接父类还没有初始化,则先初始化其直接父类 加入类有初始化语句,则系统依次执行这些初始化语句 当执行第二个步骤时,系统对直接父类的初始化步骤也遵循此步骤1~3;如果该直接父类 又有直接父类,则系统再次重复这三个步骤来先初始化这个父类。。 阅读全文
posted @ 2023-02-17 17:02 英特耐雄纳尔定要实现 阅读(33) 评论(0) 推荐(0)
摘要:类也是一种对象。就像平常说概念主要用于定义、描述其他事物,但概念本身也是一种事物,类本身也是一种类,类本身也需要被描述。可以说,所有的类都属于一类对象,这一类对象的类名就是java.lang.Class。所有的类都是java.lang.Class的实例 阅读全文
posted @ 2023-02-17 15:18 英特耐雄纳尔定要实现 阅读(101) 评论(0) 推荐(0)
摘要:一块活棋至少有两个眼位,一个对象或类(有用的)至少要有一个属性和一个方法。眼位表明了这块棋存在的理由,属性和职责同样表明了一个对象存在的理由。——百度百科OOAD 属性和方法表明了一个对象存在的理由。 阅读全文
posted @ 2023-02-15 14:19 英特耐雄纳尔定要实现 阅读(25) 评论(0) 推荐(0)
摘要:ooad 面向对象的分析和设计 中文名面向对象分析与设计外文名Object Oriented Analysis & Design 技术简介 编辑 播报 大师说:"没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死了,死在去修改需求的路上。" 众多的软件项目有什么样的 阅读全文
posted @ 2023-02-15 14:16 英特耐雄纳尔定要实现 阅读(82) 评论(0) 推荐(0)
摘要:// 这种方式的好处是,把所有生成Output对象的逻辑集中在OutputFactory工厂类中管理,// 就是你程序不需要去new什么对象,你直接从我工厂这里拿,我工厂怎么制造这个类的你不用管,// 反正你从我这里拿的对象肯定是能用的,肯定是有打印能力的。// 而所有需要使用Output对象的类只 阅读全文
posted @ 2023-02-13 15:09 英特耐雄纳尔定要实现 阅读(33) 评论(0) 推荐(0)
摘要:所谓设计模式,就是对经常出现的软件设计问题的成熟解决方案。很多人把设计模式想象成非常高深的概念,实际上设计模式仅仅是对特定问题的一种惯性思维。有些人喜欢抱着一本设计模式的书研究,以期成为一个“高手”(估计他肯定是武侠小说看多了),实际上设计模式的理解必须以足够的代码积累量作为基础。最好是经历过某种苦 阅读全文
posted @ 2023-02-13 14:37 英特耐雄纳尔定要实现 阅读(86) 评论(0) 推荐(0)
摘要:设计目的不一样:接口作为系统与外界交互的窗口,接口体现的是一种规范。对于接口的实现者而言,接口规定了实现者必须向外提供哪些服务(以方法的形式来提供);而对于接口的调用者来说,接口规定了调用者可以调用哪些服务,以及如何调用这些服务(也就是规定传递什么样的参数给这个接口,这个接口才能给你相应的返回值)。 阅读全文
posted @ 2023-02-10 14:37 英特耐雄纳尔定要实现 阅读(28) 评论(0) 推荐(0)
摘要:因为接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口的时候,需要修改全部实现该接口的类,目前的java 8 之前的集合框架没有foreach方法,通常能想到的解决办法是在jdk里给相关的接口添加新的方法及实现。然而,对于已发布的版本,是没法再给接口添加新方法的同时不影响已有的 阅读全文
posted @ 2023-02-09 17:46 英特耐雄纳尔定要实现 阅读(51) 评论(0) 推荐(0)
摘要:因为接口设计出来就是为了被调用的,人家可以直接用这个接口名称去调用其被实现了的方法。一个方法如果需要能够被外部调用,那肯定是public的,如果这个方法可以直接通过接口名被调用,那么这个方法一定是static的。如果不是公有的,外面的如何去调用它,如果不是static,怎么直接通过接口名称去调用?如 阅读全文
posted @ 2023-02-09 16:58 英特耐雄纳尔定要实现 阅读(223) 评论(0) 推荐(0)
摘要:因为如果不在声明时使用初始值,系统就会默认给这个变量分配0、'\u0000'、false或null。又由于这个变量被final修饰了,不能再变了。所以就是个废的变量,没有任何存在的意义。你看起来好像没有赋值,实际上系统已经在背地里赋值了,所以必须要在声明时马上赋值。 阅读全文
posted @ 2023-02-09 14:05 英特耐雄纳尔定要实现 阅读(38) 评论(0) 推荐(0)
摘要:getInstance方法提供自定义控制(这也是封装的优势:不允许自由访问类的成员变量和实现细节,而是通过方法来控制合适暴露),保证Singleton类只能产生一个实例。 阅读全文
posted @ 2023-02-09 14:00 英特耐雄纳尔定要实现 阅读(22) 评论(0) 推荐(0)
摘要:抽象类不能创建实例,只能当成父类来被继承。从语义的角度来看,抽象类是从多个具体类中抽象出来的父类,他具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类设计的随意性。 抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类 阅读全文
posted @ 2023-02-09 13:11 英特耐雄纳尔定要实现 阅读(100) 评论(0) 推荐(0)
摘要:继承是对已有的类做一番改造,以此获得一个特殊的版本。简而言之,就是将一个较为抽象的类改造成能适用于某些特定需求的类。因此,对于上面的Wolf和Animal的关系,使用继承更能表达其现实意义。用一个动物来合成一匹狼毫无意义:狼并不是由动物组成的。反之,如果两个类之间有明确的整体、部分的关系,例如Per 阅读全文
posted @ 2023-02-08 18:51 英特耐雄纳尔定要实现 阅读(91) 评论(0) 推荐(0)
摘要:因为Java的引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,编译和声明有关。运行时类型由实际赋给该变量的对象决定,也就是说如果实际赋给该变量的对象是这个变量的子类对象,那么就会出现多态,即相同类型的变量,调用同一个方法时呈现出多种不同的行为特征,这就 阅读全文
posted @ 2023-02-08 11:08 英特耐雄纳尔定要实现 阅读(38) 评论(0) 推荐(0)
摘要:一个类常常就是一个小的模块,应该只让这个模块公开必须让外界知道的内容,而隐藏其他一切内容。 进行程序设计时,应尽量避免一个模块直接操作和访问另一个模块的数据,模块设计追求高内聚(尽可能把模块的内部数据、功能实现细节隐藏在模块内部独立完成,不允许外部直接干预)、低耦合(仅暴露少量的方法给外部使用)。正 阅读全文
posted @ 2023-02-07 14:14 英特耐雄纳尔定要实现 阅读(50) 评论(0) 推荐(0)
摘要:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是考虑部分问题。例如,需要考察Person对象时,不可能在程序中把Person的所有细节都定义出来,通常只能定义Person的部分数据,部分行为特征——而这些数据、行为特征是软件系统所 阅读全文
posted @ 2023-02-02 16:06 英特耐雄纳尔定要实现 阅读(606) 评论(0) 推荐(0)
摘要:多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象再执行同一个方法时(注意,这里是说同一个类型的对象,而不是同一个对象,同一个类型的对象,可能是来自不同的子类,不同的子类就会对父类方法进行不同的重写,),所以在执行同一个方法时,可能表现出多种行为特征。 阅读全文
posted @ 2023-02-02 16:01 英特耐雄纳尔定要实现 阅读(39) 评论(0) 推荐(0)
摘要:从面向对象的眼光来看,开发者希望从自然的认识、使用角度来定义和使用类。也就是说,开发者希望直接对客观世界进行模拟:定义一个类,对应客观世界的哪种事物;业务需要关心这个事物的哪些状态,程序就为这些状态定义成员变量;业务需要关心这个事物的哪些行为,程序就为这些行为定义方法。 阅读全文
posted @ 2023-02-02 15:37 英特耐雄纳尔定要实现 阅读(13) 评论(0) 推荐(0)
摘要:面向对象比面向过程的编程粒度要大,因为对象包括了方法和变量,而过程只包括方法。因此面向对象比面向过程更简单、易用。 假设需要组装一台电脑,如果拿到手的是主板、CPU、内存条、硬盘等这种大粒度的组件,随便找个人就可以把它们组装成电脑;但如果拿到手的是一些二极管、三极管、集成电路等小粒度的组件,要想把他 阅读全文
posted @ 2023-02-02 15:34 英特耐雄纳尔定要实现 阅读(60) 评论(0) 推荐(0)
摘要:1996年,计算机科学家Bohm和Jacopini证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。 阅读全文
posted @ 2023-02-02 15:13 英特耐雄纳尔定要实现 阅读(127) 评论(0) 推荐(0)