美文网首页
一些对象导论小概念

一些对象导论小概念

作者: Adamchenk1 | 来源:发表于2017-06-22 12:41 被阅读0次

抽象过程

Alan Kay 曾经总结了第一个成功的面向对象语言,同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了一种纯粹的面向对象程序设计方式:

1.万物皆对象。

2.程序是对象的集合,它们通过发送消息来告知彼此所要做的。

3.每个对象都有自己的由其他对象所构成的存储。

4.每个对象都拥有类型.

5.某一特定类型的所有对象都可以接受同样的消息。

被隐藏的具体实现

Java用三个关键字在累的内部设定边界: publicprivate, protected.

public: 紧随其后的元素对任何人都是可以用的。

private: 除类型创建者和类型的内部方法之外的任何人都不能访问的元素。 如果试图访问,就会在编译时报错。

protected: 于private相当,差别在于继承的类可以访问protected成员,但是不能访问private成员。

Java的默认访问权限,当没有使用任何access specifier时,权限为包访问权限,即同一个包的成员可以访问,不同包的成员如同指定了private一样。

复用具体实现

由于继承在面向对象程序设计中如此重要,所以被高度强调,程序员就会有这样的印象:处处都应该使用继承。 实际上,在建立新类的时候,应该首先考虑组合,因为他更加简单灵活。如果采用这种方式,设计会变得更加清晰。一旦有了经验之后,便能够看出必须使用继承的场合了。

继承

导出类与基类具有相同的类型。

有两种方法可以使积累与导出类产生差异:

1. 直接在导出类中添加新方法,这些方法并不是基类的一部分。(is-like-a super class)

2. 改变现有基类的方法的行为,即覆盖(overriding) (is-a super class)

伴随多态的可互换对象

在OOP中,程序直到运行时才能够确定代码的地址,所以当消息发送到一个泛化对象时,必须采用其他的机制。

“后期绑定”:当向对象发送消息时,被调用的代码知道运行时才能确定。编译器确保被调用方法的存在并检查,但并不知道被执行的确切代码。

为了执行后期绑定,Java使用一小段特殊的代码代替绝对地址的调用,动态绑定在Java中是默认行为(不同于c++需要添加virtual关键字)

转型

把导出类看做他的基类的过程称为向上转型(upcasting)这个是安全的 

把基类看做导出类的过程称为向下转型, 除非确切的知道所要处理的对象的类型,否则向下转型几乎是不安全的。

单根继承结构

在Java中(事实上包括除C++意外的所有OOP语言),所有的类都继承Object类。

对象的创建和生命期

Java在堆(HEAP)的内存池中动态的创建对象。在这种方式中,知道运行时才知道需要多少对象,他们的生命期如何,以及他们的具体类型是什么。Java完全采用了动态内存分类方式(基本类型只是一种特例),每当想创建一个对象时,就要使用new关键字来构建对象的实例。

Java的垃圾回收器被设计用来处理内存释放问题。垃圾回收器知道对象什么时候不被再使用,并自动释放对象占的内存,这一点同 “所有对象都继承单根基类Object” 以及 “只能在堆上创建对象” 2个特性结合起来,是的Java比C++编程要简单的多。

异常处理

异常是一种对象,它从出错地点被“抛出”,并被专门设计用来处理特定类型错误的异常处理器“捕获”。异常提供了一种从错误状态进行可靠恢复的途径。现在不再是只能退出程序,你可以进行校正,并且恢复程序运行。

Java一开始就内置了异常处理,而且强制你使用它。

相关文章

  • 一些对象导论小概念

    抽象过程 Alan Kay 曾经总结了第一个成功的面向对象语言,同时也是Java所基于的语言之一的Smalltal...

  • 概念导论

    我们知道概念是人的大脑中对于世界上某些事物的认识。大脑是通过概念来思考世界的,因此,概念本身的好坏在很大程度上决定...

  • 对象导论

    抽象过程 1.万物皆对象。讲对象视为奇特的变量,他可以储存数据,除此之外,你还可以要求他在自身上执行操作。2.程序...

  • 中位数和顺序统计量

    算法导论中文第三版Chapter 9 一些概念 顺序统计量:在n元素集合中,第i个顺序统计量是该集合中第i小的元素...

  • java 对象导论

    1.程序的抽象过程 任何对编程语言都会提供一种抽象的机制。不同的语言的抽象的层次不一样,比如汇编语言就是对底层机器...

  • 001 对象导论

    概念 面向对象程序设计OOP:Object-oriented Programming CGI:common gat...

  • 一 对象导论

    在对象的使用时,最关键的问题之一便是他们的生成和销魂方式.每个对象为了生存,都需要销毁资源,尤其是内存.当我们...

  • Java——对象导论

    抽象过程 万物皆对象 程序是对象的集合,它们通过发送消息来告知彼此所要做的。 每个对象都有自己的由其他对象所构成的...

  • 1、对象导论

    一、抽象过程 所谓的“类型”是指“抽象的是什么?” 面向对象程序设计方式1、万物皆为对象2、程序是对象的集合,他们...

  • JavaScript高级

    1 面向对象操作 - 回顾对象的基本概念 - 面向对象的相关概念 - 面向对象的特征和操作的实现方式 - 小练习 ...

网友评论

      本文标题:一些对象导论小概念

      本文链接:https://www.haomeiwen.com/subject/mpvoqxtx.html