`
royakon
  • 浏览: 8404 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

对象导论笔记-第四天 单根继承 容器 范型

    博客分类:
  • java
阅读更多

1.8单根继承结构

在OOP中,自C++面试以来就已经变得非常瞩目的一个问题就是:是否所有的类最终都继承自单一的基类。在Java中,答案就是:YES,这个终极基类就是Object

单根继承结构保证所有对象都具备某些功能。因此你知道,在你的系统中你可以在每个对象上执行某些基本操作。所有对象都可以很容易地在堆上创建,而参数传递也得到了极大的简化。

单根继承结构是垃圾回收器的实现变得容易得多,而垃圾回收器正是Java相对于C++的重要改进之一。由于所有对象都保证具有其类型信息,因此不会因无法确定对象的类型而陷入僵局。这对于系统级操作(如异常处理)显得尤其重要,并且给编程带来了更大的灵活性。

1.9容器

通常来说,如果不知道在解决某个特定问题时需要多少个对象,或者他们将存活多久,那么就不可能知道如何存储这写对象。这个问题的最简单的解决方案:创建另一种对象类型。通常被称为容器。在Java中,具有满足不同需要的各种类型的容器,例如:

  • List(用于存储序列)
  • Map(也被称为关联数组,用来建立对象之间的关联)
  • Set(没中对象类型只持有一个)

对容器有所选择有两个原因:

  1. 第一,不同容器提供了不同类型的借口和外部行为。
  2. 第二,不同容器对于某些操作具有不同的效率。

1.9.1参数化类型(范型)

在Java SE5出现之前,容器存储的对象都只具有Java中的通用类型:Object。要使用这样的容器,只需要在其中置入对象引用。但是由于容器只存储Object,所以当将对象引用置入容器时,它必须被向上转型(泛化)为Object而丢失其身份。这样就产生了问题:当把它取回时,怎样才能将它便会先前置入容器时具有实用借口的对象呢?这里再度用到了转型,这种转型的方式称为向下转型。注意:除非确切的知道索要处理的对象的类型,否则向下转型几乎是不安全的

那么,创建这样的容器,它知道自己所保存的对象的类型,从而不需要向下转型以及消除犯错误的可能,这样不是更有意义吗?这种解决方案被车给你为参数化类型机制。参数化类型就是一个编译器可以自动定制作用与特定类型上的类。

Java SE5的重大变化之一就是增加了参数化类型,在Java中它称为范型

 

ArrayList<Shape> shapes = new ArrayList<Shape>();
 

本文首发自:对象导论笔记-蜘蛛网间

0
2
分享到:
评论

相关推荐

    编译原理课件导论--总体编译过程介绍

    不同的程序设计语言有不同的范型,如面向过程、面向对象、函数式和声明式等。这些范型反映了不同的编程思想和设计模式,影响着编译程序的实现方式和优化策略。 6. **编译程序的意义**: 编译程序降低了编写和维护...

    xxxspy#eprime#数据分析服务-M-plus-线性规划典范型.11

    线性规划典范型:在标准型的线性规划问题中,如果每一个约束方程都存在某一个系数恰好为1的变量,并且这个变量不再在其它约束方程中出现,则这些变量就是基变量,其余的变

    分布式系统-原理与范型(第2版)

    分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版) 分布式系统-原理与范型(第2版)

    面向对象的变成范型分析

    面向对象编程范型是一种编程思想,它将数据和操作数据的方法视为等价的,从而改变了传统的数据为中心或过程为中心的编程模式。这种编程范型基于对象的概念,对象是包含数据和操作这些数据的方法的实体,它是抽象数据...

    C++多范型设计

    《C++多范型设计》是一本深入探讨C++编程语言中模板技术的专著,由知名软件工程师James O. Coplien撰写,并由鄢爱兰、周辉等翻译成中文版,ISBN号为9787508318240。这本书的核心主题是C++中的泛型编程,它是C++编程...

    范型程序设计与 STL.pdf

    4. 函数对象(Function Objects)或谓之适配器(Adapters):包括比较函数对象(如less、greater)和操作函数对象(如plus、minus),它们封装了操作行为,使得算法可以更加灵活和多样化。 学习范型编程与STL对于...

    第9章 范型和容器类.ppt

    在Java编程语言中,范型(Generics)和容器类是重要的核心概念,它们极大地提高了代码的可读性、安全性和复用性。本章主要探讨了如何利用这些概念来处理动态数据集合。 首先,传统的数组在Java中存在一些限制,如数...

    分布式系统原理与范型

    《分布式系统原理与范型》是分布式系统中的经典教材,全书分为两部分:原理和范型。第一部分详细讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出了...

    java程序设计教程

    java程序设计教程PPT-2-类型、变量和表达式-3-流程控制-4-数组-5-算法设计基础-6-对象和类-7-继承和接口-8-范型、枚举和内部类-9-异常-10-集合-11-常用类及开源工具-12-基本输入输出处理-13-多线程ppt

    《分布式系统原理与范型(第二版)》复习资料

    分布式系统原理与范型是计算机科学领域的一个重要研究方向,它涉及如何构建和管理由多个独立计算机组成的系统,这些系统能够协调工作,对外表现得就像单一的、协调一致的系统一样。在分布式系统中,透明性、开放性、...

    论文研究-消息传递范型与C/S范型双范型的主数据管理机制 .pdf

    本文提出的基于消息传递范型和客户机/服务器(Client/Server,简称C/S)范型双范型的主数据管理机制,能够有效解决MDM面临的问题。 消息传递范型是计算机科学中的一个基本概念,用于描述进程间通信的方式。在这范型...

    Distributed Systems 3 - 《分布式系统原理与范型》第三版 英文原版

    Distributed Systems: Principles and Paradigms 3,第三版,分布式 by Andrew S. Tanenbaum and Maarten van Steen 《分布式系统原理与范型》第三版,英文原版

    thinking in Java 第四版中文 part1

    第1章 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像是一个”(is-like-a)关系 1.7 伴随多态的可互换...

    分布式系统-原理与范型(第2版) 完整版

    第2~9章讨论的是分布式系统的的原理、概念和技术,包括通信、进程、命名、同步化、一致性和复制、容错性以及安全性等,而分布式应用的开发方法(即范型)在第10~13章中进行了讨论。但是,与前一版不同的是,我们...

    论文研究-软件范型的演绎与智能体 .pdf

    文章中提到的第一个软件范型是面向过程(Procedural Programming Paradigm),这种范型强调算法的实现和顺序执行。在早期计算机科学中,算法求解和数值计算是研究的核心,因此软件的设计主要围绕着算法的实现来展开...

    分布式系统原理与范型(第二版)

    分布式系统原理与范型是IT领域中至关重要的一个主题,特别是在云计算、大数据处理以及现代互联网服务的背景下,理解和掌握分布式系统的概念与实践至关重要。本书作为第二版,深度探讨了这一领域的核心理论和常见模式...

    数组、集合对象和范型

    在C#编程中,数组、集合对象和泛型是核心概念,它们在处理数据和构建高效应用程序时扮演着重要角色。 首先,数组是最基础的数据结构,用于存储同一类型的多个元素。在C#中,数组是一种固定大小的内存块,可以一次性...

    C++多范型设计 作者:[美]James O.Coplien

    第4章解释如何使用领域分析来找到应用领域中的抽象。第5章说明怎样将领域工程的原则用作对象范型的抽象技术的基础。第6章应用“分析”来描述“方案领域”的特征,并且将C++结构放到形成共同性和差异性基础的正式...

    分布式系统原理与范型 V2 (2008)

    分布式系统原理与范型是计算机科学中的一个重要领域,它研究如何构建由多个独立计算节点通过网络互相协作的系统。在2008年的第二版中,该主题可能深入探讨了分布式系统的最新发展和理论基础。这个主题对于理解和设计...

Global site tag (gtag.js) - Google Analytics