1.8单根继承结构
在OOP中,自C++面试以来就已经变得非常瞩目的一个问题就是:是否所有的类最终都继承自单一的基类。在Java中,答案就是:YES,这个终极基类就是Object
单根继承结构保证所有对象都具备某些功能。因此你知道,在你的系统中你可以在每个对象上执行某些基本操作。所有对象都可以很容易地在堆上创建,而参数传递也得到了极大的简化。
单根继承结构是垃圾回收器的实现变得容易得多,而垃圾回收器正是Java相对于C++的重要改进之一。由于所有对象都保证具有其类型信息,因此不会因无法确定对象的类型而陷入僵局。这对于系统级操作(如异常处理)显得尤其重要,并且给编程带来了更大的灵活性。
1.9容器
通常来说,如果不知道在解决某个特定问题时需要多少个对象,或者他们将存活多久,那么就不可能知道如何存储这写对象。这个问题的最简单的解决方案:创建另一种对象类型。通常被称为容器。在Java中,具有满足不同需要的各种类型的容器,例如:
- List(用于存储序列)
- Map(也被称为关联数组,用来建立对象之间的关联)
- Set(没中对象类型只持有一个)
对容器有所选择有两个原因:
- 第一,不同容器提供了不同类型的借口和外部行为。
- 第二,不同容器对于某些操作具有不同的效率。
1.9.1参数化类型(范型)
在Java SE5出现之前,容器存储的对象都只具有Java中的通用类型:Object。要使用这样的容器,只需要在其中置入对象引用。但是由于容器只存储Object,所以当将对象引用置入容器时,它必须被向上转型(泛化)为Object而丢失其身份。这样就产生了问题:当把它取回时,怎样才能将它便会先前置入容器时具有实用借口的对象呢?这里再度用到了转型,这种转型的方式称为向下转型。注意:除非确切的知道索要处理的对象的类型,否则向下转型几乎是不安全的。
那么,创建这样的容器,它知道自己所保存的对象的类型,从而不需要向下转型以及消除犯错误的可能,这样不是更有意义吗?这种解决方案被车给你为参数化类型机制。参数化类型就是一个编译器可以自动定制作用与特定类型上的类。
Java SE5的重大变化之一就是增加了参数化类型,在Java中它称为范型。
ArrayList<Shape> shapes = new ArrayList<Shape>();
本文首发自:对象导论笔记-蜘蛛网间
分享到:
相关推荐
不同的程序设计语言有不同的范型,如面向过程、面向对象、函数式和声明式等。这些范型反映了不同的编程思想和设计模式,影响着编译程序的实现方式和优化策略。 6. **编译程序的意义**: 编译程序降低了编写和维护...
线性规划典范型:在标准型的线性规划问题中,如果每一个约束方程都存在某一个系数恰好为1的变量,并且这个变量不再在其它约束方程中出现,则这些变量就是基变量,其余的变
分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版)
面向对象编程范型是一种编程思想,它将数据和操作数据的方法视为等价的,从而改变了传统的数据为中心或过程为中心的编程模式。这种编程范型基于对象的概念,对象是包含数据和操作这些数据的方法的实体,它是抽象数据...
《C++多范型设计》是一本深入探讨C++编程语言中模板技术的专著,由知名软件工程师James O. Coplien撰写,并由鄢爱兰、周辉等翻译成中文版,ISBN号为9787508318240。这本书的核心主题是C++中的泛型编程,它是C++编程...
4. 函数对象(Function Objects)或谓之适配器(Adapters):包括比较函数对象(如less、greater)和操作函数对象(如plus、minus),它们封装了操作行为,使得算法可以更加灵活和多样化。 学习范型编程与STL对于...
在Java编程语言中,范型(Generics)和容器类是重要的核心概念,它们极大地提高了代码的可读性、安全性和复用性。本章主要探讨了如何利用这些概念来处理动态数据集合。 首先,传统的数组在Java中存在一些限制,如数...
《分布式系统原理与范型》是分布式系统中的经典教材,全书分为两部分:原理和范型。第一部分详细讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出了...
java程序设计教程PPT-2-类型、变量和表达式-3-流程控制-4-数组-5-算法设计基础-6-对象和类-7-继承和接口-8-范型、枚举和内部类-9-异常-10-集合-11-常用类及开源工具-12-基本输入输出处理-13-多线程ppt
分布式系统原理与范型是计算机科学领域的一个重要研究方向,它涉及如何构建和管理由多个独立计算机组成的系统,这些系统能够协调工作,对外表现得就像单一的、协调一致的系统一样。在分布式系统中,透明性、开放性、...
本文提出的基于消息传递范型和客户机/服务器(Client/Server,简称C/S)范型双范型的主数据管理机制,能够有效解决MDM面临的问题。 消息传递范型是计算机科学中的一个基本概念,用于描述进程间通信的方式。在这范型...
Distributed Systems: Principles and Paradigms 3,第三版,分布式 by Andrew S. Tanenbaum and Maarten van Steen 《分布式系统原理与范型》第三版,英文原版
第1章 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像是一个”(is-like-a)关系 1.7 伴随多态的可互换...
第2~9章讨论的是分布式系统的的原理、概念和技术,包括通信、进程、命名、同步化、一致性和复制、容错性以及安全性等,而分布式应用的开发方法(即范型)在第10~13章中进行了讨论。但是,与前一版不同的是,我们...
文章中提到的第一个软件范型是面向过程(Procedural Programming Paradigm),这种范型强调算法的实现和顺序执行。在早期计算机科学中,算法求解和数值计算是研究的核心,因此软件的设计主要围绕着算法的实现来展开...
分布式系统原理与范型是IT领域中至关重要的一个主题,特别是在云计算、大数据处理以及现代互联网服务的背景下,理解和掌握分布式系统的概念与实践至关重要。本书作为第二版,深度探讨了这一领域的核心理论和常见模式...
在C#编程中,数组、集合对象和泛型是核心概念,它们在处理数据和构建高效应用程序时扮演着重要角色。 首先,数组是最基础的数据结构,用于存储同一类型的多个元素。在C#中,数组是一种固定大小的内存块,可以一次性...
第4章解释如何使用领域分析来找到应用领域中的抽象。第5章说明怎样将领域工程的原则用作对象范型的抽象技术的基础。第6章应用“分析”来描述“方案领域”的特征,并且将C++结构放到形成共同性和差异性基础的正式...
分布式系统原理与范型是计算机科学中的一个重要领域,它研究如何构建由多个独立计算节点通过网络互相协作的系统。在2008年的第二版中,该主题可能深入探讨了分布式系统的最新发展和理论基础。这个主题对于理解和设计...