`

《thinking in java》第一章:对象简介

阅读更多
第一章:对象简介

对象有状态、行为、标识。
类与数据类型区别:
类实际上是一种数据类型。它们的区别在于:类是程序员为解决特定问题而定做的,而数据类型是为了表示机器的存储单元而设计的,它是现成的,是程序员无可奈何时的选择。
面向对象编程的挑战之一就是:如何在问题空间的元素与解决空间的对象之间建立一种一对一的映射。

可以向每个对象发送请求,这样才能让对象为你解决问题,但每个对象只能满足某些请求,具体能够满足哪些请求呢?这是由对象的接口(interface)所定义的。决定接口的是对象的类型。接口只管你能向对象发送什么请求,但还必须要有满足这一请求的代码,这些代码以及隐藏着的数据,组成了
实现(implementation)

将对象做为服务的提供者
隐藏实现:
将程序分为类的创造者(class creator)和客户程序员(client programmer).访问控制符:public,private,protected.public表示后面跟着的东西谁都能用。而private表示除非是类的创建者用这个类的方法进行访问,否则没人能访问到这个元素。protected很像private,它们的区别在于,继承类能够访问 protected成员但是不能访问private成员。Java还有一个“缺省”的访问权限。通常称为package访问权限。国为同属这个 package的类可以访问这个package中其它类的“缺省权限”的成员。但是出了这个package,它们就都是private的了。

复用实现(合成):在一个类中用另一个类创建对象,为了能让新的类提供我所设计的功能,它可以由任意多个,任意类型的对象,以任意形式组合在一起。由于你是用已有的类来合成新的类,因此这一概念被称为合成。如果这个对象是动态合成的,通常称为聚合。通常交合成称为“有(has-a )"关系。

继承:(复用接口)当你继承一个类时,你也创建了一个新类,这个新的类不仅包含了已有类的所有成员,更重要的是它复制了基类的接口,于是所有能够传给基类的消息也都可以传给派生类。
你有两种办法来区分新的派生出来的类和那个原来的基类。第一种方法很简单:直接往派生类里加新的方法。这些新的方法不属于基类的接口。也就是说由于基类不能完成所有的工作,你必须加上更多的方法。第二种方法是在新的类中修改基类方法的行为,这被称为覆写(override)那个方法。要覆写一个方法直接在类中重新定义这个方法就行了。

多态性:
多态性指的是相关的对象按照各自类型来实现方法的能力。继承性指的就是派生类(子类)继承抽象类(基类、父类),它是一种类特殊化的方式,用于联系派生类和抽象类。在这里我把这两个特点一起举例说明一下。在魔兽里,四个种族都有农民,而且属性和方法基本一样,那我们就可以为农民这个概念设置一个基类,然后将每族农民设为一个子类。每个子类方法的类型可能不一样。在运行时,通过判定对象所属的类型再去执行相应类型所对应的方法的。所以多态性与继承是紧密关联的。

抽象类与接口(abstrcat与interface): 通常在有些设计方案中,你只想让基类去表示由其派生出的类的接口。也就是你不想让人创建一个基类的对象,而只是想把对象上传给它,以期能使用这个类的接口。这样你就需要使用abstract关键词来把这个类做成抽象类。编译器会阻止任何人创建abstrcat的对象。abstrcat 关键词也可以用来表示这个方法还没有实现--它就象是一个声明”由这个类所派生出的所有类都有这个方法,但是它的实现不在这里“。abstrcat方法只能存在于abstrcat类里。如果有个类继承了这个abstrcat类,那么它要么实现这个方法,要么也是一个abstrcat类。abstrcat方法能让你将方法放到接口而不必为它写一些无意义的代码。interface关键词更是对abstrcat类的概念的深化,它不允许你实现任何方法。如果你愿意你可以继承多个接口,因为要继承多个常规或是抽象类是不允许的。

分享到:
评论

相关推荐

    Thinking in Java 自学笔记——第一章 对象导论

    Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...

    Thinking in java .txt

    《Thinking in Java》专门有一章详细介绍集合框架,包括`List`、`Set`、`Map`等主要接口及其实现类。这一章被认为是本书中的亮点之一。 #### 2. 异常处理 异常处理是Java中管理程序错误的一种机制。书中详细介绍了...

    Thinking in Java 练习题答案

    《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地介绍了Java语言的核心概念和技术。这本书的练习题是学习Java的重要组成部分,因为它们能够帮助读者巩固理论知识并提升实践能力。以下是对"Thinking in ...

    Thinking in Java 自学笔记——第二章 一切皆对象

    ### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...

    Thinking In Java 第四版 【练习题答案 完整版】

    这份"Thinking In Java 第四版 【练习题答案 完整版】"包含了书中的所有练习题及其解答,对于正在学习或已经学习过这本书的读者来说,是一份非常宝贵的参考资料。 1. **基础概念**:Java的基础概念包括变量、数据...

    Thinking in Java 4th Edition + Annotated Solution Guide (代码)英文文字版 带书签 有答案

    《Thinking in Java》是Bruce Eckel的经典之作,第四版涵盖了Java编程语言的广泛主题,适合初学者和有经验的程序员。这本书深入浅出地讲解了Java的核心概念和技术,旨在帮助读者建立坚实的编程基础,并理解面向对象...

    Thinking in Java.

    ##### 第一部分:面向对象基础 - **第1章:对象入门**:介绍面向对象的基本概念,如类、对象、封装等,为初学者打下坚实的基础。 - **第2章:一切都是对象**:进一步深化对对象的理解,解释为什么在Java中几乎所有...

    Thinking in Java 2nd习题及答案

    《Thinking in Java 2nd习题及答案》是学习Java编程的重要参考资料,它基于Bruce Eckel的《Thinking in Java》第二版,提供了书中的习题解答,帮助读者深入理解和掌握Java语言的核心概念与技术。这本书涵盖了Java...

    Thinking in Java 中文第四版+习题答案

    2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 总结...

    Thinking in Java 第四版 第2章到第17章答案

    1. **第二章:对象与类** - 这一章讲解了面向对象编程的基础,包括类的定义、对象的创建、封装、继承和多态等概念。了解如何通过类来抽象数据和行为,并理解对象的生命周期是非常重要的。 2. **第三章:接口与实现*...

    Thinking in java4(中文高清版)-java的'圣经'

    2.4.2 基本成员默认值 2.5 方法、参数和返回值 2.5.1 参数列表 2.6 构建一个Java程序 2.6.1 名字可见性 2.6.2 运用其他构件 2.6.3 static 关键字 2.7 你的第一个J ava程序 编译和运行 2.8 注释和嵌入式文档 2.8.1 ...

    thinking in java 原版及其练习答案

    本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel...从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。最新版本的哦

    thinking in java

    《Thinking in Java》不仅仅是一本Java语言的学习手册,更是一部引导读者思考如何有效利用Java进行程序设计的著作。它强调的不仅仅是语法细节,更重要的是教授读者如何像一个真正的Java程序员那样思考问题、解决问题...

    thinking in java (第三版)答案(4,5,6)三章

    《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地介绍了Java语言的核心概念和技术。第三版的这本书更是对前两版进行了大量的更新和完善,以适应Java语言的发展。本资料集包含了第四章、第五章和第六章的...

    Thinking in Java读书笔记

    以上是对《Thinking in Java》书中前几章的主要知识点总结。这些概念是学习Java编程的基础,对于理解面向对象编程的核心原理至关重要。通过深入学习这些章节,可以帮助读者更好地掌握Java语言,并为进一步深入研究...

    Thinking in java 高清版(可直接复制源程序)

    《Thinking in Java》是一本由Bruce Eckel撰写的经典Java编程书籍。本书旨在为读者提供从基础到高级的全面Java编程知识体系,适合从初学者到具有一定经验的程序员阅读。 #### 二、作者简介 Bruce Eckel是一位具有...

    Thinking in Java Fourth Edition

    ### 《Thinking in Java》第四版重要知识点概览 #### 第1章 对象入门 - **对象的概念**:介绍面向对象编程的基本概念,包括对象、类、实例等。 - **创建对象**:详解如何在Java中创建对象,包括使用`new`关键字。 -...

    Thinking In Java的笔记_第一章

    通过以上概述,《Thinking In Java》第一章深入浅出地讲解了Java的基础概念,涵盖了面向对象编程的核心原则、数据的存储与管理、基本类型与包装类的使用,以及高精度数字的处理技巧,为初学者和进阶学习者提供了宝贵...

    Thinking in Java 英文第四版 带详细书签版

    《Thinking in Java》是Bruce Eckel所著的一本Java编程书籍,它被广大Java程序员和学者推荐为学习Java的经典教材。这本书深入浅出,详细讲解了Java的各种概念和特性,帮助读者建立起对Java编程语言的全面理解。 书...

Global site tag (gtag.js) - Google Analytics