java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想
- 开 本
- 1/16
- 出版社
- 机械工业出版社
- ISBN
- 9787111213826 [1]
- 作 者
- [美] Bruce Eckel [1]
- 类 别
- 编程技术
- 装 帧
- 平装
- 别 名
- Thinking In java
- 电子版页数
- 687页
- 页 数
- 880 页
- 原作品
- Thinking in Java
- 译 者
- 陈昊鹏
- 书 名
- Java编程思想
- 出版时间
- 2007年6月1日
-
java 编程思想
2017-02-17 07:53:00java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想java 编程思想 ...转载于:https://www.cnblogs.com/zgcy123456/p/6408211.html
-
java编程思想
2019-03-02 23:27:13java编程思想 1.面向对象五大特性 java编程思想 1.面向对象五大特性 万物皆为对象 程序是对象的集合,它们通过发送消息来告知彼此所要做的 每个对象都有自己的由其他对象所构成的存储 每个对象都拥有其类型 ...目录
java编程思想
1.面向对象五大特性
- 万物皆为对象
- 程序是对象的集合,它们通过发送消息来告知彼此所要做的
- 每个对象都有自己的由其他对象所构成的存储
- 每个对象都拥有其类型
- 某一特定类型的所有对象都可以接收同样的消息
2.初始化与清理
2.1 this关键字
this关键字只能在方法内部使用,表示对''调用方法的那个对象''的引用.
只有构造器能调用构造器,其他任何方法都不能调用构造器
2.2 static关键字
static方法就是没有this的方法
static方法的内部不能调用非静态方法
3.访问权限控制
public --所有人都能访问
protected--儿子能访问,包(package)内能访问
默认(包访问权限)--包内能访问
private--自己内部使用,外部不能访问
4.复用类
可以使用别人已经开发并调试好的类
组合
代理
继承
final:这是无法改变的
5.多态
向上转型
向下转型
6.访问权限控制
7.复用类
8.多态
9.接口
抽象类
abstract:部分抽象
interface:完全抽象
10.内部类
内部类
匿名内部类
11.持有对象
容器
集合:Collection,Map
ArrayList,LinkedList,HashSet,TreeSet,LinkedHashSet,HashMap,TreeMap,LinkedHashMap
12.通过异常处理错误
基本异常
捕获异常
自定义异常
13.字符串
不可变String
字符串拼接使用StringBuilder
格式化输出:%s,%d,%f
正则表达式很强大
14.类型信息
Class对象
动态代理
15.泛型
擦除
逆变
无界通配符
16.数组
17.容器深入研究
18.io
19.枚举类型
20.注解
元数据
4个注解专门负责注解的创建
@Target
@Retention
@Documented
@Inherited
定义注解,并编写处理器来处理他们
21.并发
1.可以运行多个独立任务;
2.必须考虑当这些任务关闭时,可能出现的所有问题;
3.任务可能会在共享资源上彼此干涉.互斥(锁)是用来防止这种冲突的基本工具;
4.如果任务设计得不够仔细,就有可能会死锁;
-
Java编程思想
2019-01-08 13:22:10Java编程思想 唯一不变的是变化 1) 需求总是会变的,不想干了就别改需求 2) 技术是不断演进的,不适应就要被淘汰 3) 学会包容变化 高内聚、低耦合 ...Java编程思想
唯一不变的是变化
1) 需求总是会变的,不想干了就别改需求
2) 技术是不断演进的,不适应就要被淘汰
3) 学会包容变化
高内聚、低耦合
在开发过程中,肯定要改代码,当改代码的时候发现好多地方要修改,或者改完这里,发现其他地方又出现了新的问题,或者你发现如果要改,就等于重写。
这些情况都说明你的代码耦合性太高了,代码功能的内聚性太低,代码功能依赖的太多且具体。举例:炒饭,盖浇饭,米饭炒菜
1) 代码功能要合理划分
2) 每个功能要高内聚-只干自己的事情
3) 每个功能要低耦合-尽量少依赖
4) 聚合是必要的,高聚合就不好了
面向过程与面向对象
Java面向对象基础
类
1) 代表一类具体的事物
2) 含有该事物的属性以及修改属性的行为
3) 含有该事物应有的功能行为
4) 含有该事务对其他事务的关系说明
抽象类
1) 代表一类事物的抽象说明
2) 包含这一类事物的通用属性
3) 包含这一类事物的通用功能行为
接口
1) 一种行为或者一组相关行为的抽象
2) 不关注属性,只关注行为
面向对象特征
封装
1) 将复杂的逻辑隐藏并提供简明功能按口
2) 把复杂的操作用一个简洁方法名代替,这是封装
3) 把属性和对属性的操作组合成类,这是封装·把复杂的行为抽象为简单的接口,这是封装
4) 一类相关功能服务化,并对外提供宽容接口,隐藏具体实现,这是封装
5) 合理使用封装,会把复杂问题简单化
抽象
1) 对一些事物的共性抽取,并定义这些共性的规范或默认行为
2) 对事务的抽象是类
3) 对一些类的抽象是抽象类
4) 对行为的抽象是接口
5) 对逻辑的抽象是函数
1) 抽象可以在更高的一个层次去封装,进一步简化了逻辑继承
2) 抽象是观的,不是具体的
3) 继承落实了抽象,确定了类与抽象类、接口之间的关系
4) 减少了代码重复性,增加了代码的复用性
5) 合理使用封装、抽象与继承可以使功能内聚性更高,耦合性更低多态
心得体会
1) 抽象的继承是多样化的
2) 方法的重载是多态
3) 抽象类的多种继承是多态
4) 接口的多种实现是多态
5) 一个类实现多种接口是多态
6) 多态是java程序扩展的关键
7) 当程序是多态性的,在一定规范内这个程序是可扩展的
如何使程序是多态性的?
1) 基于抽象编程,根据需求指定抽象实现,当实现不符合需求,可重新指定新的抽象实现。
2) 在具体程序中使用父类变量引用子类对象,根据父类接口编程,根据需求动态定子类对象。
Java编程原则
开闭原则
1) 对扩展开发,对修改关闭(尽量扩展,减少修改)
2) 高内聚,低糯合
里氏代换原则
子类必须能完全替代父类,一个基于父类的程序,切换任意子类程序都能正常运行·如果一个子类不能完全替代父类,那么多态是不可用的·子类可以扩展父类的功能,但不能改变父类原有的功能。
猫科动物肯定要长的像猫
1) 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
2) 子类中可以增加自己特有的方法
3) 当子类的方法重载父类的方法时,方法的前晋条件(即方法的形参)要比父类方法的输入参数更宽松
4) 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格
依赖倒置原则
1) 依赖抽象而不是具体(低耦合)
2) 根据接口编程,而不是具体实现
3) 常量提取成公共变量,程序依赖变量,这也是依赖抽象
4) 变量声明尽量是抽象类
5) 模块之间的调用是抽象的接口
接口隔离原则
1) 使用单一的接口取代复杂的接口(高内聚)
2) 接口中的方法要精简(高内聚)
3) 喷肿的接口说明需要细分为多个接口(低耦合)
最少知识原则
1) 一个类对其他类的引用越少越好(低耦合)
2) 一个类引用的类越抽象越好(对引用类的细节知道的最少)(低耦合)
3) 一个类对其他的类保持最少的了解(低耦合)
单一职责
1) 不要存在多于一个导致类变更的原因
2) 一个类只干自己该干的事情(低耦合)
3) 一个方法只干一种事情(高内聚)
4) 一个接口只代表一种角色或行为(高内聚)多用组合少用继承
波音747系列飞机是由600多万个零件组成的
具体实践
1) 尽量组合复用多中功能的抽象类、接口,而不是写一个超级类,超长继承类
2) 尽量分割复杂逻辑到不同函数,组合实现逻辑。简单明了,捉高复用
3) 善于分解
KISS原则
Keep It Simple,stupid
1) 让代码简单、清晰甚至傻瓜型的
2) 复杂的问题简单化
3) 复杂的问题一般可以拆分成多个简单清晰的小问题,然后一个一个单独解决·简单的问题如果有明显的扩展需求可以适当设计,但是不要过度设计复杂化
如何使用Java变出更好的程序
Java编程思想是在遇到具体问题的时候,自己如何思考并且解决问题,如何更优雅的解决,更好的解决问题的过程。
封装 继承 多态 抽象
Java面向对象的四大特征 面向对象设计可以让人可以更好的解决复杂问题。
面向过程和面向对象的区别在于 有没有类?
封装 面向过程->面向对象 (自治性的解决 减少耦合 )
继承 复用,扩展
多态 一种事物多种形态 具体是指类引用指向子类对象 (面向多态编程?)
抽象 一种思想 抽取的思想
六大设计原则 (
高内聚 低耦合
)1) 单一职责原则 (类保持简单性)
2) 里氏替换原则 (继承只扩展,不修改)
3) 依赖倒转原则 (面向接口编程)
4) 接口隔离原则 (接口的简单性)
5) 迪米特法则 (不要越权 Controller->dao)
6) 开闭原则 (只扩展不修改)
-
JAVA编程思想
2009-12-15 14:14:32 -
JAVA编程思想习题及答案
2018-09-20 16:55:12JAVA编程思想习题及答案 -
headFirst java核心技术 java编程思想
2019-01-17 09:45:40java学习三本神书:headfirst.pdf以故事性语言讲解java中的那些事儿,读起来不枯燥。java核心技术.pdf 知识讲解特别细致,java编程思想适合有基础的人,知识讲解更加深入。 -
java编程思想总结
2018-05-15 15:35:00java编程思想总结 -
Java编程思想笔记目录
2020-10-24 11:05:22祝各位 程序?...但是吧,小名坐地铁或者走在大街上的时候,脑袋里总是会想一些有的没的,不排除会想一些Java基础的知识,时常联系不起来,就有可能别扭一整天。所以呢,把它发出来一方面是为了和大 -
java 编程思想.txt
2010-03-29 11:01:14java 编程思想.txt java 编程思想.txt java 编程思想.txt java 编程思想.txt -
Java编程思想练习题答案
2018-01-18 16:17:34学Java一定会看Java编程思想,其练习题更才是精华所在! -
java编程思想开篇
2019-12-31 11:31:07写点关于java编程思想的笔记记录。作为心得体会 -
Java编程思想和阿里巴巴Java开发手册pdf.zip
2020-01-30 00:40:45Java编程思想和阿里巴巴Java开发手册pdf非常的清晰 Java程序员必看 PDF版本 非常详细 -
Java核心技术 Java编程思想 Java并发编程 PDF资源
2019-11-27 19:26:14本文将自己所搜集的几本java及相关的计算机电子版书籍分享出来,以便为各位下载...Java编程思想第四版完整中文高清版 Java并发编程实战 人月神话 点我合集下载 (电子版仅供预览及学习交流使用,下载后请24小时... -
Java编程思想篇
2016-04-01 22:26:15Java编程思想篇 -
《JAVA编程思想》学习笔记:第1-4章(Java概述)
2020-01-26 15:18:34全书目录Java编程思想(一)第1~4章:概述Java编程思想(二)第5章:初始化和清理Java编程思想(三)第6章:访问权限Java编程思想(四)第7章:复用类Java编程思想(五)第8章:多态Java编程思想(六)第9章:接口... -
《Java编程思想》读书笔记
2016-07-04 11:30:09java编程思想 -
81.JAVA编程思想——JAVA编程规则
2016-05-10 22:56:3681.JAVA编程思想——JAVA编程规则 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName ... -
Java编程思想读书笔记(一)第1~13、16章
2017-11-26 18:54:06Java编程思想(一)第1~13、16章 Java编程思想(二)第14章-类型信息 Java编程思想(三)第15章-泛型 Java编程思想(四)第17章-容器深入研究 Java编程思想(五)第18章-Java IO系统 Java编程思想(六)第19章-... -
java编程思想PPT
2013-04-27 22:51:33文旦含有java编程思想一书中前9章的PPT 还附有几个基础型的编程代码 如乘法表: public class Chengfabiao { public static void main(String[] args) { for (int i = 1; i ; i++) {// 从1开始循环到9 for ... -
《JAVA编程思想》学习笔记:第10章(内部类)
2020-01-27 20:17:30目录Java编程思想(一)第1~4章:概述Java编程思想(二)第5章:初始化和清理Java编程思想(三)第6章:访问权限Java编程思想(四)第7章:复用类Java编程思想(五)第8章:多态Java编程思想(六)第9章:接口Java... -
Java编程思想之并发
2016-07-06 00:40:20Java编程思想之并发 -
《JAVA编程思想》学习笔记:第8章(多态)
2020-01-27 20:14:28目录Java编程思想(一)第1~4章:概述Java编程思想(二)第5章:初始化和清理Java编程思想(三)第6章:访问权限Java编程思想(四)第7章:复用类Java编程思想(五)第8章:多态Java编程思想(六)第9章:接口Java...
-
Adobe Illustrator CC2021大师直装版for MAC M1处理器
-
2021-01-28
-
基于Django的电子商务网站设计--第九章 Python在线题库
-
30个生涯锦囊,带你跳出迷茫,找到适合你的职业方向
-
pytorch中的NLLLoss和CrossEntropyLoss
-
Leetcode884. 两句话中的不常见单词(C++思路与代码)
-
linux开机自动检测并修复硬盘
-
微信公众号2021之网页授权一学就会java版
-
rabbitmq-stomp服务端推送技术
-
内科学(第9版)课件 第四篇 消化系统疾病 第九章 结直肠癌.pptx
-
互联网信息服务【安全评估报告】详细攻略
-
C++职工管理系统.pdf
-
微信支付2021系列之扫码支付一学就会java版
-
二、DRF环境配置
-
cp13_Parallelizing NN Training w TF_printoptions(precision)_squeeze_shuffle_batch_repeat_image处理_map
-
Python专题精讲合集
-
转行做IT-第6章 IDEA、方法
-
9.BT_TX功率.doc
-
仿真钢琴-javascript实战
-
OElove_Free_v8.0.R201207.zip