摘要:
组合模式是将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 【示例】对象的组合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 阅读全文
posted @ 2021-09-19 21:41
女王不带冠
阅读(34)
评论(0)
推荐(0)
摘要:
模板方法模式很常用,其目的是在一个方法中定义一个算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。在标准的模板方法模式实现中,主要是使用继承的方式,来让父类在运行期间可以调用到子类的方法。 详见抽象类部分示例。 其实在Java开发中,还有另外一 阅读全文
posted @ 2021-09-19 21:40
女王不带冠
阅读(140)
评论(0)
推荐(0)
摘要:
开闭原则(Open-Closed Principle)就是让设计的系统对扩展开放,对修改封闭。 · 对扩展开放: 就是指,应对需求变化要灵活。 要增加新功能时,不需要修改已有的代码,增加新代码即可。 · 对修改关闭: 就是指,核心部分经过精心设计后,不再因为需求变化而改变。 在实际开发中,我们无法完 阅读全文
posted @ 2021-09-19 21:37
女王不带冠
阅读(67)
评论(0)
推荐(0)
摘要:
1. equals方法用来检测两个字符串内容是否相等。如果字符串s和t内容相等,则s.equals(t)返回true,否则返回false。 2. 要测试两个字符串除了大小写区别外是否是相等的,需要使用equalsIgnoreCase方法。 3. 判断字符串是否相等不要使用"=="。 【示例】忽略大小 阅读全文
posted @ 2021-09-19 21:35
女王不带冠
阅读(6650)
评论(0)
推荐(0)
摘要:
String类是我们最常使用的类。字符串类的方法我们必须非常熟悉!我们列出常用的方法,请大家熟悉。 表5-2 String类的常用方法列表 【示例】String类常用方法一 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class StringTest1 { pub 阅读全文
posted @ 2021-09-19 21:34
女王不带冠
阅读(863)
评论(0)
推荐(0)
摘要:
· 如何下载API文档 1. 下载地址,点击进入: http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html 图5-27 API下载界面图 2. 下载成功后,解压下载的压缩文 阅读全文
posted @ 2021-09-19 21:32
女王不带冠
阅读(66)
评论(0)
推荐(0)
摘要:
在Java的内存分析中,我们会经常听到关于“常量池”的描述,实际上常量池也分了以下三种: 1. 全局字符串常量池(String Pool) 全局字符串常量池中存放的内容是在类加载完成后存到String Pool中的,在每个VM中只有一份,存放的是字符串常量的引用值(在堆中生成字符串对象实例)。 2. 阅读全文
posted @ 2021-09-19 21:31
女王不带冠
阅读(114)
评论(0)
推荐(0)
摘要:
1. String类又称作不可变字符序列。 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类。 3. Java字符串就是Unicode字符序列,例如字符串“Java”就是4个Unicode字符’J’、’a’、’v’、’a’组成的。 4. Java没有内 阅读全文
posted @ 2021-09-19 21:29
女王不带冠
阅读(53)
评论(0)
推荐(0)
摘要:
在Java中内部类主要分为成员内部类(非静态内部类、静态内部类)、匿名内部类、局部内部类。 .成员内部类(可以使用private、default、protected、public任意进行修饰。 类文件:外部类$内部类.class) a) 非静态内部类(外部类里使用非静态内部类和平时使用其他类没什么不 阅读全文
posted @ 2021-09-19 21:28
女王不带冠
阅读(213)
评论(0)
推荐(0)
摘要:
一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类(innerclasses)。 内部类可以使用public、default、protected 、private以及static修饰。而外部顶级类(我们以前接触的类)只能使用public和default修饰 阅读全文
posted @ 2021-09-19 21:26
女王不带冠
阅读(252)
评论(0)
推荐(0)
摘要:
面向接口编程是面向对象编程的一部分。 为什么需要面向接口编程? 软件设计中最难处理的就是需求的复杂变化,需求的变化更多的体现在具体实现上。我们的编程如果围绕具体实现来展开就会陷入”复杂变化”的汪洋大海中,软件也就不能最终实现。我们必须围绕某种稳定的东西开展,才能以静制动,实现规范的高质量的项目。 接 阅读全文
posted @ 2021-09-19 21:25
女王不带冠
阅读(76)
评论(0)
推荐(0)
摘要:
接口完全支持多继承。和类的继承类似,子接口扩展某个父接口,将会获得父接口中所定义的一切。 【示例】接口的多继承 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 interface A { void testa(); } interface B { void 阅读全文
posted @ 2021-09-19 21:24
女王不带冠
阅读(234)
评论(0)
推荐(0)
摘要:
声明格式: 1 2 3 4 [访问修饰符] interface 接口名 [extends 父接口1,父接口2…] { 常量定义; 方法定义; } 定义接口的详细说明: 1. 访问修饰符:只能是public或默认。 2. 接口名:和类名采用相同命名机制。 3. extends:接口可以多继承。 4. 阅读全文
posted @ 2021-09-19 21:23
女王不带冠
阅读(509)
评论(0)
推荐(0)
摘要:
· 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。 抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了一批类具有的公共方法规范。 从接口的实 阅读全文
posted @ 2021-09-19 21:22
女王不带冠
阅读(150)
评论(0)
推荐(0)
摘要:
·抽象方法 使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。 ·抽象类 包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用 阅读全文
posted @ 2021-09-19 21:21
女王不带冠
阅读(214)
评论(0)
推荐(0)
摘要:
final关键字的作用: 1. 修饰变量: 被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。 1 final int MAX_SPEED = 120; 2. 修饰方法:该方法不可被子类重写。但是可以被重载! 1 final void study(){} 3. 修饰类: 修饰的类不能被继承。比 阅读全文
posted @ 2021-09-19 19:05
女王不带冠
阅读(54)
评论(0)
推荐(0)
摘要:
父类引用指向子类对象,我们称这个过程为向上转型,属于自动类型转换。 向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法。这时,我们就需要进行类型的强制转换,我们称之为向下转型! 【示例5-13】对象的转型 1 2 3 4 5 6 7 8 9 10 11 public cla 阅读全文
posted @ 2021-09-19 19:04
女王不带冠
阅读(122)
评论(0)
推荐(0)
摘要:
多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。 比如:同样是调用人的“休息”方法,张三是睡觉,李四是旅游,高淇老师是敲代码,数学教授是做数学题; 同样是调用人“吃饭”的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。 多态的要点: 1 阅读全文
posted @ 2021-09-19 19:03
女王不带冠
阅读(937)
评论(0)
推荐(0)
摘要:
类的属性的处理: 1. 一般使用private访问权限。 2. 提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意:boolean变量的get方法是is开头!)。 3. 一些只用于本类的辅助性方法可以用private修饰,希望其他类调用的 阅读全文
posted @ 2021-09-19 19:02
女王不带冠
阅读(42)
评论(0)
推荐(0)
摘要:
Java是使用“访问控制符”来控制哪些细节需要封装,哪些细节需要暴露的。 Java中4种“访问控制符”分别为private、default、protected、public,它们说明了面向对象的封装性,所以我们要利用它们尽可能的让访问权限降到最低,从而提高安全性。 下面详细讲述它们的访问权限问题。其 阅读全文
posted @ 2021-09-19 18:57
女王不带冠
阅读(79)
评论(0)
推荐(0)
摘要:
我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口,比如:电源开关。具体内部是怎么实现的,我们不需要操心。 需要让用户知道的才暴露出来,不需要让用户知道的全部隐藏起来,这就是 阅读全文
posted @ 2021-09-19 18:55
女王不带冠
阅读(671)
评论(0)
推荐(0)
摘要:
super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。 使用super调用普通方法,语句没有位置限制,可以在子类中随便调用。 若是构造方法的第一行代码没有显式的调用super(...)或者this(...);那么Java默认都会调用super(),含义是调用父类的无参 阅读全文
posted @ 2021-09-19 10:10
女王不带冠
阅读(83)
评论(0)
推荐(0)
摘要:
·属性/方法查找顺序:(比如:查找变量h) 1. 查找当前类中有没有属性h 2. 依次上溯每个父类,查看每个父类中是否有h,直到Object 3. 如果没找到,则出现编译错误。 4. 上面步骤,只要找到h变量,则这个过程终止。 ·构造方法调用顺序: 构造方法第一句总是:super(…)来调用父类对应 阅读全文
posted @ 2021-09-19 10:10
女王不带冠
阅读(41)
评论(0)
推荐(0)
摘要:
“==”代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象。 Object类中定义有:public boolean equals(Object obj)方法,提供定义“对象内容相等”的逻辑。比如,我们在公安系统中认为id相同的人就是同一个人、学籍系统中认为学 阅读全文
posted @ 2021-09-19 10:08
女王不带冠
阅读(65)
评论(0)
推荐(0)
摘要:
Object类是所有Java类的根基类,也就意味着所有的Java对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。 【示例】Object类 1 2 3 4 5 6 7 public class Person { ... } //等价 阅读全文
posted @ 2021-09-19 10:07
女王不带冠
阅读(104)
评论(0)
推荐(0)
摘要:
Object类中定义有public String toString()方法,其返回值是 String 类型。Object类中toString方法的源码为: 1 2 3 public String toString() { return getClass().getName() + "@" + Int 阅读全文
posted @ 2021-09-19 10:07
女王不带冠
阅读(172)
评论(0)
推荐(0)
摘要:
子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。 方法的重写需要符合下面的三个要点: 1.“==”: 方法名、形参列表相同。 2.“≤”:返回值类型和声明异常类型,子类小于等于父类。 3.“≥”: 访问权限,子类大于等于父类。 【示例】方法重写 1 2 3 4 阅读全文
posted @ 2021-09-19 10:06
女王不带冠
阅读(56)
评论(0)
推荐(0)
摘要:
1.父类也称作超类、基类、派生类等。 2.Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。 3.Java中类没有多继承,接口有多继承。 4.子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属 阅读全文
posted @ 2021-09-19 10:05
女王不带冠
阅读(37)
评论(0)
推荐(0)
摘要:
instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象时,返回true;否则,返回false。比如: 【示例】使用instanceof运算符进行类型判断 1 2 3 4 5 6 7 public class Test{ public static void main( 阅读全文
posted @ 2021-09-19 10:04
女王不带冠
阅读(84)
评论(0)
推荐(0)
摘要:
继承让我们更加容易实现类的扩展。 比如,我们定义了人类,再定义Boy类就只需要扩展人类即可。实现了代码的重用,不用再重新发明轮子(don’t reinvent wheels)。 从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展。现实世界中的继承无处不在。比如: 图5-1 现实世界 阅读全文
posted @ 2021-09-19 10:03
女王不带冠
阅读(54)
评论(0)
推荐(0)
摘要:
如果我们要使用其他包的类,需要使用import导入,从而可以在本类中直接通过类名来调用,否则就需要书写类的完整包名和类名。import后,便于编写代码,提高可维护性。 注意要点: 1. Java会默认导入java.lang包下所有的类,因此这些类我们可以直接使用。 2. 如果导入两个同名的类,只能用 阅读全文
posted @ 2021-09-19 09:56
女王不带冠
阅读(215)
评论(0)
推荐(0)
摘要:
静态导入(static import)是在JDK1.5新增加的功能,其作用是用于导入指定类的静态属性,这样我们可以直接使用静态属性。 【示例】静态导入的使用 1 2 3 4 5 6 7 8 9 10 11 package cn.sxt; //以下两种静态导入的方式二选一即可 import stati 阅读全文
posted @ 2021-09-19 09:56
女王不带冠
阅读(108)
评论(0)
推荐(0)
摘要:
JDK中的主要包 Java中的常用包 说明 java.lang 包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。 java.awt 包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建 阅读全文
posted @ 2021-09-19 09:54
女王不带冠
阅读(62)
评论(0)
推荐(0)
摘要:
我们通过package实现对类的管理,package的使用有两个要点: 1. 通常是类的第一句非注释性语句。 2. 包名:域名倒着写即可,再加上模块名,便于内部管理类。 【示例】package的命名举例 1 2 3 4 5 com.sun.test; com.oracle.test; cn.sxt. 阅读全文
posted @ 2021-09-19 09:53
女王不带冠
阅读(772)
评论(0)
推荐(0)
摘要:
包机制是Java中管理类的重要手段。 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。 包对于类,相当于文件夹对于文件的作用。 阅读全文
posted @ 2021-09-19 09:51
女王不带冠
阅读(34)
评论(0)
推荐(0)

浙公网安备 33010602011771号