Thinking in java(1):对象导论

纯粹的面向对象程序设计的几个特性: 1. 万物皆对象 2. 程序是对象的合集,他通过发消息告诉彼此要做什么 3. 每个对象都有自己的由其他对象所构成的存储 4. 每个对象都有其类型 5. 某一特定类型的所有对象都可以接收同一类型的消息

每个对象都有一个接口 每个对象都有自己的服务(这个是为了高内聚性) 具体类的实现被隐藏,调用方不需要知道被调用方的具体实现 复用具体类实现 代码复用是面向对象程序设计的最了不起的优点之一 使用现有的类合成新的类,这种概念称作组合。如果组合是动态发生的,这个称作聚合。 组合关系在UML图中是通过实心菱形来实现的,例如每个汽车都有一个引擎,则UML图中,引擎一个实心菱形指向汽车。

继承: 继承的UML图是子类一个空心的三角箭头指向基类

“是一个”与“像是一个”的关系: 最完美的继承就是子类不存在新增加的方法,而是覆盖父类的方法,实现新的功能。这是一种是一个的关系,但实际上这个情况比较完美。更多的情况下,子类肯定有新增的方法,这个就是 像是一个 的关系。

伴随多态的可互换方法: 基类中的方法操作都是泛化的,不关心具体子类,而是子类公用的。而多态的实现依赖于编译器的后期绑定的实现。具体调用的对象在方法调用时才确定。 子类转换成基类的过程称为向上转型,有向上转型的需要时才使用继承。

单根继承结构: 在java中所有类都继承自Object类

容器: 好的OOP语言都有容器,用来实现存储对象的集合。

参数化类型: 为了减少从集合中放入或者取出数据的各种转型。

对象的创建和生命周期: java完全采用了动态内存分配的技术,当你想创建对象的时候就必须使用new关键字来构建对象的动态实例。 在栈上创建的对象,编译器可以知道他的生命周期并且动态的销毁他们,而在堆上创建的对象,就需要靠垃圾回收机制来实现了。

异常处理,处理错误: 自编程语言面世以来,错误处理时最困难的问题之一。异常处理不是面向对象的特征之一。

并发: java的并发是内置于语言中的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏静晴轩

JavaScript对象length

前几日有在Javascript数组操作一文中稍提及了数组的length属性;深入一点探究,就发现JS这length确有许多难为所知的特性。这就边学边探究下这朵奇...

3378
来自专栏CSDN技术头条

Python编程中的反模式

这篇文章收集了我在Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题。本文的目的是为了帮助那些新手开发者渡过写出丑陋的Python代码的阶段。为...

1956
来自专栏北京马哥教育

深入 Python 字典的内部实现

字典是通过键(key)索引的,因此,字典也可视作彼此关联的两个数组。下面我们尝试向字典中添加3个键/值(key/value)对: 这些值可通过如下方法访问: 由...

33215
来自专栏blackheart的专栏

[程序设计语言]-[核心概念]-04:数据类型

0. 概述 为何高级语言需要类型系统这个概念?在汇编时代是没有完整的数据类型系统的,结构化编程引入了结构化的控制流、为结构化设计的子程序,随之这种结构化的代码所...

1726
来自专栏机器之心

入门 | 一文带你了解Python集合与基本的集合运算

了解 Python 集合: 它们是什么,如何创建它们,何时使用它们,什么是内置函数,以及它们与集合论操作的关系

913
来自专栏java一日一条

Java IAQ:很少被回答的问题

一个问题如果被回答地很少,有可能是因为知道答案的人很少,亦或是因为问题本身模糊不清、微不足道(但对你来讲可能很关键)。我似乎发明了一个术语,但是它在一个信息量很...

372
来自专栏C语言及其他语言

指针

1、地址与指针 Hi,欢迎来到指针的世界,也许您早已听过它的大名,指针被称为是C语言的精华所在。真正理解和掌握指针是征服C语言的关键所在! 在众多的计算机语言中...

2586
来自专栏我是攻城师

在Scala里面如何使用元组

3344
来自专栏大数据钻研

如何正确实现Java中的hashCode方法

你知道一个对象的唯一标志不能仅仅通过写一个漂亮的equals来实现 太棒了,不过现在你也必须实现hashCode方法。 让我们看看为什么和怎么做才是正确的。 相...

2589
来自专栏Golang语言社区

(译)Go 语言的内存、指针详解

这是一篇面向即将学习 go 语言并且对指针理念或者 go 的指针类型不是很了解的程序员的内容 什么是指针? 简单解释,指针就是指向另一段地址的值,课本上是这么解...

42914

扫描关注云+社区