编程思想学习
文章平均质量分 86
小宏ye
这个作者很懒,什么都没留下…
展开
-
初始化与清理
在初始化顺序上,JAVA编程思想4上里面,变量定义在方法内不管写在何位置都会先与任何方法执行class Bowl { Bowl(int marker) { print("Bowl(" + marker + ")"); } void f1(int marker) { print("f1(" + marker + ")"); }}class Table {...原创 2018-10-25 14:18:48 · 77 阅读 · 0 评论 -
枚举Enum类型
目录 1.如何用2.向enum添加方法3.switch中使用enum4.values()并不是Enum的方法5.对Enum进行分类只能实现接口6.EnumSet7.EnumMap8.常量相关的方法9.多路分发(重点这里,说一下我的讲解)使用enum分发使用常量相关方法分发EnumMap分发、二维数组分发(简单但是容易出错,不安全),这里不做讲解了...原创 2018-12-11 17:16:48 · 299 阅读 · 0 评论 -
容器的深入研究(本章主要介绍容器的使用跟对比,作为自己的工具笔记)
目录类库简化图(虚线接口,实线类)填充容器可选操作(稍微了解一下)List(这里比较简单就跳过)Set和存储顺序队列(除并发外,有链表LinkedList和优先级队列PriorityQueue)理解Map(这里的区别与List差不多就不做说明了)散列与散列码(这里需要掌握)一、首先简单了解下没有重写HashCode跟equals对传入散列容器的影响二、什么是...原创 2018-12-05 18:51:05 · 171 阅读 · 0 评论 -
泛型
当每一章阅读的时候,首先这个概念为什么会出现,有什么用,而根据这个概念的运用,为什么这么用,有什么好处。我觉得这个对理解概念的东西会事半功倍。目录简单泛型(基本都是介绍设计代码的用法)泛型接口泛型方法匿名内部类(可以在匿名内部类中使用泛型)、构建复杂模型(其实也就是多维元组)擦除(这才是我们应该需要去记住的东西)擦除的补偿边界通配符捕获异常自限定的类...原创 2018-11-30 16:31:32 · 288 阅读 · 0 评论 -
类型信息(运行时发现和使用类型信息)
首先理解RTTI,假设Circle、Square、Triangle继承于Shape,当我们用一个List<Shape> list = Array.asList(new Circle(),new Square(),new Triangle()),这个时候Circle、Square、Triangle三个会自动向上转型Shape,这个时候我们还在编写代码,List容器只是持有Shape的...原创 2018-11-19 19:20:22 · 226 阅读 · 0 评论 -
内部类
Class A{ Class B{}}B类就是A类的一个内部类。而当需要new一个B类,就是需要A.B b = A.new B()。链接到外部类也就是说书中的例子比较详细,这里只是举个例子Class A{ private String s; Class B{ pritln(s); public A getA(){ ...原创 2018-11-05 15:46:45 · 105 阅读 · 0 评论 -
持有对象(也就是把对象存储到容器中得以持有)
持有对象听起来好像有点高大上,其实也就是把对象存储到容器中得以持有,而这个容器就是我们常说的集合类。其实本章中大篇幅只是再教你如何使用这些集合类,具体到一些方法上并去使用这些,这里我就不做演示,只是把其中的一些特殊的例子,用法以及我自己感觉比较重要但是有可能大家都不一定会很清楚的地方在这里总结出来。后面会有容器的深入研究,这里只是把区别用法罗列。由这张图,我们先有一小的总结:1.C...原创 2018-11-07 17:09:33 · 424 阅读 · 0 评论 -
接口
说到接口就要说到抽象机制。可以用abstract修饰类或方法,修饰方法的时候当导出类继承这个类就要实现这个方法。这里特别提到一点,有抽象方法的类一定要是抽象类,而抽象类不一定有抽象方法(因为抽象类无法new出来,而我们有时候可能会需要这个类不能被new出来就可以这样做。)。抽象类中可以有具体实现(也就是方法体里面写代码),而抽象接口里面只能定义方法名、参数类型和返回类型,并且没有方法体(接口内...原创 2018-10-30 17:13:03 · 84 阅读 · 0 评论 -
多态
,运行根据对象类型进行绑定=“后期绑定”。上面这段话先放一边,看起来有点专业化看不太懂,下面先放上一段代码:class Instrument { public void play(Note n) { print("Instrument.play()"); }}class Stringed extends Instrument { public void play(...原创 2018-10-26 17:29:31 · 132 阅读 · 0 评论 -
复用类
两种比较常见的方式:一种是“组合”即通过new对象;一种是“继承”。(一堆术语好气啊。。)而什么时候使用,继承=“is-a”(是一个),组合=“has-a”(有一个 ),一般我写程序组合和继承并用,比如汽车是一种车,这辆汽车上有座椅,那么汽车继承车,汽车又组合座椅。 客户端程序员编写的大部分代码就可以成为组合(听起来叫组合,通俗上理解就是你在类里new就可以称之为组合了)。继承(举个例子:...原创 2018-10-26 12:50:37 · 143 阅读 · 0 评论 -
访问权限控制(也称具体实现的隐藏),封装更准确的定义:“把数据和方法包装到类中,并将具体实现隐藏称之为封装,而其结果就是同时带有特征和行为的数据类型”。
public即公用,其修饰的成员,不论何时何地,只要他通过import引入之后都可以直接调用。private私有,修饰成员,继承都无法调用保证了某些方面上的安全性。protected受保护,非同包下无法使用,但是再使用继承之后可以跟public一样调用其修饰的成员,也可以完成一部分的代码逻辑实现上。default默认,即当客户端程序员忘记或者是留空情况下,就算继承也无法去调用其修饰的成...原创 2018-10-25 16:35:18 · 239 阅读 · 1 评论 -
可变参数
可变参数(JAVASE5之后新特性)static void printArray(Object[] args) { for(Object obj : args) System.out.print(obj + " "); System.out.println();}printArray(new Object[]{ new Integer(47), new Float(3....原创 2018-10-25 15:59:16 · 146 阅读 · 0 评论