对象导论 Thinking in Java 第一章
1.1 抽象过程
1.人们能够解决问题的复杂性直接取决于抽象的类型和质量。
1.2 每个对象都有一个接口
1.3 每个对象都提供服务
1.4 被隐藏的具体实现
1.程序猿分为:类创建者 和 客户端程序猿
*对于这两者的区别和联系:类创建者为写底层和封装实现的开发人员,而客户端程序猿主要是利用API使用类创建者写的类进行开发;两者的角色在一般的开发人员看来是一体的,就如java开发中自己要建类,然后自己使用之。
2.Java访问权限控制
public,private,protected;
同时Java含有一种默认的包访问权限,即在同一包下,可以相互访问其他类的成员,但是不在同一包下,这些类的成员就如private访问类型一样。
1.5 复用具体类
即之后会提到的 组合 方式 <has-a>
1.6 继承<is-a>
1.7 伴随多态的可互换对象
1.向上转型引出的:静态绑定 和 动态绑定
2.静态绑定:在编译期确定调用的具体方法,而不是在运行期;
3.动态绑定:在编译期用 一小段代码 代替绝对地址调用,此段代码可以在运行时计算出需要调用具体方法的地址;这样就可以实现根据不同的对象具有不同的实现方式的目的;
*动态绑定是向上转型的核心,也是 工厂模式 实现的主要核心内容。
1.8 单根继承机构
所有的类都继承自单一的基类 Java --- <Object>
1.9 容器
如Collection,Map等
1.10 对象的创建和生命期
1.C++:认为效率控制是最重要的议题,所以给了程序猿选择的权利。对象的存贮空间和生命周期在编写程序时确定。
2.对象置于:堆栈 或 静态存储区域;这将存贮空间分配和释放置于优先考虑位置;在编程是需要确切的知道对象的数量、生命周期、类型;查找和释放不需要过多时间;
3. 堆(heap)内存池:动态的创建对象; 相对而言,查找和释放需要更多的时间;Java采用了动态的内存分配方式;
4.垃圾回收机制:所有的对象都是单根继承 和 只能以一种方式创建对象<在堆上创建> 这两个特性结合起来。
1.11 异常处理:处理错误
异常处理不是面向对象的特征
1.12 并发编程
1.13 Java 与 Internet
对象导论 Thinking in Java 第一章的更多相关文章
- “全栈2019”Java第一章:安装JDK11(Mac)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 文章原文链接 “全栈2019”Java第一章:安装JDK11(Mac) 下一章 “全栈2019”Java ...
- Java第一章----Java概述+环境搭建
写在前面的话: Java基础的东西看过好几遍,但是过一段都就忘记了,所以这次我决定花费一些时间整理一个系列博客供以后方便查阅.此系列根据Java编程思想+Java核心技术两本书整理而来,这两本书也是我 ...
- Java 第一章 初识Java
第一章笔记 什么是计算机程序:算机为完成某些功能生产的一系列有序指令集合 Java技术包括: java SE:标准版 java EE:企业版 Java ME:移动版 开发Java程序步骤:1.编写 2 ...
- Java第一章
第一章 计算机程序:计算机为完成某些功能产生的一系列有序指令集合. Java技术包括:JavaSE(标准版) JavaEE(企业版) ---JavaME(移动版) 开发Java程序步骤:1.编写 2 ...
- 20165233 Java第一章学习总结
20165233 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一章 Java特点:语法简单.面向对象.与平台无关.动态. 字节码不能被任何平台直接识别. ...
- 学习JAVA第一章的心得
我抱着万分期待的心情开始了我第一天的JAVA学习课程,其实在第一开始的时候我对计算机行业便有很高地兴趣了.这主要归功于我真的从很小开始就就接触了电脑.进入学校以来,我就很期待老师会怎样教我们,会怎样带 ...
- 疯狂java——第一章 java语言概述与开发环境
J2ME: 主要用于控制移动设备和信息家电等有限存储的设备. J2SE: 整个java技术的核心和基础,它是J2ME和J2EE编程的基础. J2EE: Java技术中应用最广泛的部分,J2EE提供了企 ...
- Effective java第一章引言
菜鸟一枚,开始读第一本书<Effective Java>(第二版)~ 看引言就有好多名词不懂(>_<) 导出的API由所有可在定义该API的包之外访问的API元素组成.一个包的 ...
- 自学Java第一章——《Java概述》
1.1 Java历史 Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文)收购. Java之父是詹姆斯.高斯林(James Goslin ...
随机推荐
- org.apache.cxf.transport.servlet.CXFServlet cannot be cast to javax.servlet.Servlet
java.lang.ClassCastException: org.apache.cxf.transport.servlet.CXFServlet cannot be cast to javax.se ...
- Linux之查看CPU信息
# 查看逻辑CPU个数: # cat /proc/cpuinfo |grep "processor"|sort -u|wc -l 24 # 查看物理CPU个数: # grep &q ...
- js获取随机色
方法一: var getRandomColor = function(){ return '#' + (function(color){ return (color += '0123456789abc ...
- JavaScript navigator 对象(转)
navigator -- navigator对象通常用于检测浏览器与操作系统的版本 navigator,中文"导航器" 引用网址:http://www.dreamdu.com/ja ...
- VI 命令简介
1.打开一个文件 vi 文件路径 2.命令模式转换 输入模式 i 命令模式 esc 3.复制 和 粘贴 1)将光标移动到将要复制的行处,按yy进行复制当前行(按nyy复制n行),再移动到粘贴位 ...
- Linux下怎么运行java程序
在Linux下安装好jdk配置好环境变量后,要回到程序所在的目录下,然后跟在windows一样输入 java (程序名)运行,原理是就好像在Windows的DOS环境下执行java这个命令时必须在 ...
- UVa(1658),Admiral,海军上将,拆点,MCMF
题目链接:https://uva.onlinejudge.org/external/16/1658.pdf 题意:求1到N的两条路(不能相交),距离和最小. 分析: 第一次做拆点,有点意思.刚开始一直 ...
- Codeforces Round #368 (Div. 2) B
Description Masha wants to open her own bakery and bake muffins in one of the n cities numbered from ...
- Intent官方教程(3)各属性介绍
Building an Intent An Intent object carries information that the Android system uses to determine wh ...
- Python 2.7.9 Demo - JSON的编码、解码
#coding=utf-8 #!/usr/bin/python import json; dict = {}; dict['name'] = 'nick'; dict['say'] = 'hello ...