Java编程思想第1章:对象导论

原创 2014年10月21日 15:25:29

本章介绍包括开发方法概述在内的OOP的基本概念。

类描述了具有相同特性(数据元素)和行为(功能)的对象集合。

接口确定了对某一特定对象所能发出的请求。但是,在程序中必须有满足这些请求的代码。这些代码与隐藏的数据一起构成了实现。

UML形式的图Unified Modelling Language,每个类用方框表示。


访问控制让客户端程序员无法触及他们不应该触及的部分。这些部分对内部操作是必须的,但并不是用户所需接口的一部分。

放空控制允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员。

  • private
  • public
  • protected:与private相当,但是继承的类可以访问protected,但不能访问private
  • 包访问权限:默认权限当不指定的时候。类可以访问在同一个包中其他类的成员,包之外的是private。
有两种方法可以使基类与导出类产生差异:
  1. 直接在导出类中添加新方法。
  2. 改变现有基类的方法:overriding覆盖。
Java中动态绑定是默认行为,不需要额外添加的关键字来实现多态。
当circle被传入到预期结束Shape的方法,由于circle可以被dosomthing看做是shape,这种将导出类看做基类的过程称为向上转型。
终极基类:Object
单根继承保证所有对象都有某些功能,每个对象都可以执行某些基本操作。所有对象容易在堆上创建,参数传递也得到了优化。
同时使得垃圾回收器实现变得容易,不会因无法确定对象的类型而陷入僵局。
垃圾回收器可以自动发现对象何时不再被使用,并继而销毁它(自动释放对象所占用内存)。
Java的垃圾回收器被设计用来处理内存释放问题。

Java SE5之前,容器存储对象都只有object类型,使用容器是,置入对象引用后,会被向上转型为object因此取回时需要向下转型,但很危险,因为不知道具体类型。因此取出对象时,必须以某种方式记住这些对象是什么类型。
参数化类型机制:一个容器,知道自己所保存对象的类型,从而不用向下转型已经消除犯错误的可能。编译器可以自动定制作用于特定类型上的类。例如,编译器可以定制一个只接纳和取出shape对象的容器。
Java5以后,称之为范型,一对尖括号,中间包含类型信息。
以下一个存储Shape的ArrayList:
ArrayList<Shape> shapes=new ArrayList<Shape>();

Java完全采用了动态内存分配方式。每当想要创建新对象时,就要使用new来构建对象的动态实例。只能以一种方式创建对象(在堆上创建)。

《Java编程思想》--对象导论--第1章

所谓的“类型”是指“所抽象的是什么”。 每个对象看起来都有点像一台微型计算机——它具有状态,还具有操作,用户可以要求对象执行这些操作。 面向对象语言的基本特性: 1.万物皆为对象。 2.程序是对象的集...
  • csdn_kenneth
  • csdn_kenneth
  • 2017年11月22日 14:12
  • 131

Java编程思想——第1章 对象导论

一、对象导论 1.1抽象过程 1)万物皆为对象。 2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。 3)每个对象都有自己的由其他对象所构成的存储。 4)每个对象都拥有其类型。 5...
  • AD2018
  • AD2018
  • 2017年12月30日 20:54
  • 19

Java编程思想(一) —— 一切都是对象及内存分配

2014-7-27 16:59:08 《Java编程思想》 作者:Bruce Eckel 虽然这本书是经典,但是对于一个入门java,又没有其他编程经验的人来讲,实在难以看懂,前前后后看了三遍。 ...
  • iaiti
  • iaiti
  • 2014年08月01日 16:05
  • 11095

Java编程思想第四版第十一章学习——持有对象

持有对象
  • Muc_hui
  • Muc_hui
  • 2016年06月03日 21:42
  • 539

Java编程思想--第二章 一切都是对象

2.1用引用操纵对象 一切都看作对象,但操作的标识符实际是对象的一个引用(reference);例如遥控器(引用)来操纵电视机(对象),实际操控的遥控器(引用),再由遥控器来调控电视机(对象)。如果...
  • lyt_7cs1dn9
  • lyt_7cs1dn9
  • 2016年11月28日 17:07
  • 460

java程序员必看书籍--应该是比较高端的了。。。

学习Java最痛苦的事情莫过于对未来职业方向的选择。尤其是选择开发Java Application还是Java Web方向,在你先定好大类后还有数不尽的小类教你无从学起。 因此,作为初学者的你必...
  • cyp331203
  • cyp331203
  • 2014年05月25日 20:38
  • 2372

Java编程思想(一)--对象导论

抽象发展过程: 汇编语言,是对底层机器语言的轻微抽象。 命令式语言(如c),对汇编语言的抽象 早期编程语言(如LISP,APL),对待解决问题进行建模 面向对象的语言,通过建立与问题相对应的对...
  • qq_19688989
  • qq_19688989
  • 2017年04月26日 08:45
  • 137

Java编程思想之对象导论

今天看了Java编程思想书中的第一章对象导论,做一个理解性的总结。 一,首先说了介绍了面向对象的思想:即把现实中的问题空间的元素表示在程序的解空间中。这是一种比较灵活的语言抽象,对象和类要有状态和操...
  • qq_33403693
  • qq_33403693
  • 2017年06月30日 22:38
  • 60

【Java编程思想】一、对象导论

Thinking in Java 作为一个电子专业的人,在学习了将近3年的嵌入式技术后,决定投奔移动互联网,在互联网大潮中急流勇进! 为了学习OOP(Object-oriented Progr...
  • Jack_Owen
  • Jack_Owen
  • 2014年10月08日 15:38
  • 451

面向对象编程思想

面向对象编程思想面向对象的基本概念OOP是一种计算机编程模式, 它将对象作为问题空间的基本元素, 利用对象和对象之间的相互作用来设计程序. OOP的设计思想是以数据为中心, 自底向上, 逐步合并.O...
  • uxyheaven
  • uxyheaven
  • 2015年09月28日 21:08
  • 2162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java编程思想第1章:对象导论
举报原因:
原因补充:

(最多只允许输入30个字)