算法(第4版)-1.2.3 抽象数据类型的实现

总结:本小节详细讲解了抽象数据类型的实现过程,包括实例变量、构造函数、实例方法的创建,三种变量的作用域和API、用例与实现。

重点:

1. 如果实例变量在初始化之后不应该再被改变,我们会使用final。

2. 如果没有定义构造函数,类将会隐式定义一个默认情况下不接受任何参数的构造函数并将所有实例变量初始化为默认值。

3. 实例方法和静态方法有一点关键的不同:实例方法可以访问并操作实例变量。

4. 三种变量的作用域:

· 参数变量:整个方法;

· 局部变量:当前代码段中它的定义之后的所有语句;

· 实例变量:整个类。

5. 如果实例变量出现二义性,可以使用this前缀来区别实例变量。

public class Example {

    private int var;

    ...

    private void method1() {

        int var; // 局部变量

        ... var // 调用的是局部变量而非实例变量
        ... this.var // 调用实例变量

    }

    private void method2() {

        ... var // 调用实例变量

    }

    ...

}

6. API的作用是将使用和实现分离。

时间: 2024-12-09 13:41:10

算法(第4版)-1.2.3 抽象数据类型的实现的相关文章

算法(第4版)-1.2.1 使用抽象数据类型

总结:本小节是关于抽象数据类型的综述,包括是什么.为什么.怎么办. 重点: 1. 研究同一个问题的不同算法的主要原因:它们的性能特点不同. 2. API:通过列出所有构造函数和实例方法(及操作)并简要描述它们的功用,说明抽象数据类型的行为. 3. Java中的所有数据类型都会继承toString()方法来返回用String表示的该类型的值.Java会在用+运算符将任意数据类型的值和String值连接时调用该方法. 可以重写toString()方法.必须声明为public String toStr

算法(第4版)-1.2.4 更多抽象数据类型的实现

总结:本小节列举了更多抽象数据类型的实现,并讨论了维护多个实现的问题. 重点: 1. 本书中反复出现的一个主题就是我们需要理解各种实现对空间和时间的需求以及它们对各种用例的适用性. 2. 本书的一个主要目标就是深入讨论若干种基本抽象数据结构的实现并衡量他们的性能的不同. 3. 编译时出现 -Xlint:deprecation 警告时,可以不用理会,直接运行程序即可.

算法第四版-文字版-下载地址-Robert Sedgewick

下载地址:https://download.csdn.net/download/moshenglv/10777447 算法第四版,文字版,可复制,方便copy代码 目录: 第1章 基 础 ....................... . ..........................11.1 基础编程模型 ..................................... 41.1.1 Java程序的基本结构 ................. 41.1.2原始数据类型与表达式

【JavaScript】【算法】JavaScript版排序算法

JavaScript版排序算法:冒泡排序.快速排序.插入排序.希尔排序(小数据时,希尔排序会比快排快哦) 1 //排序算法 2 window.onload = function(){ 3 var array = [0,1,2,44,4, 4 324,5,65,6,6, 5 34,4,5,6,2, 6 43,5,6,62,43, 7 5,1,4,51,56, 8 76,7,7,2,1, 9 45,4,6,7,8]; 10 //var array = [4,2,5,1,0,3]; 11 array

算法第四版 在Eclipse中调用Algs4库

首先下载Eclipse,我选择的是Eclipse IDE for Java Developers64位版本,下载下来之后解压缩到喜欢的位置然后双击Eclipse.exe启动 然后开始新建项目,File -> New Java Project,项目名随便写,如下图 右键src文件夹,Add -> New Java Class,这里需要注意Name一栏里填写的内容就是类名,这里我写了TestAlgs4,为了测试「算法 第四版」作者给的那个测试样例 代码如下: import edu.princeto

算法(第4版)-1.2.5 数据类型的设计

总结:本小节讲述了关于设计数据类型的重要知识,包括封装.设计API.算法与抽象数据类型的关系.接口继承.实现继承.等价性.内存管理.不可变性.异常与错误等知识.("简单看来,下面的许多话题和算法的学习关系不大,因此你可以跳过本节,在今后实现抽象数据类型中遇到特定问题时再回过头来参考它.") 重点: 1. 设计一份优秀的API所付出的所有时间都能从调试和代码复用所节省的时间中获得回报. 2. 在本书中,算法一般都是某个抽象数据类型的一个实例方法的实现. 3. 在本书中我们会避免使用子类继

算法(第四版)学习笔记之java实现选择排序

选择排序步骤: 1.找到数组中参与遍历比较的所有元素中的最小元素的下标: 2.将最小元素与数组中参与遍历比较的第一个元素进行交换(如果第一个元素就是最小元素的话,那么也会进行一次交换): 3.若数组中还有需要参与遍历比较的元素,则跳转到步骤1:否则排序结束. 在算法第四版中给出的所有排序均是适用于任意实现了Comparable接口的数据类型,若要将数字作为测试用例,请勿使用基本数据类型,改用Integer等实现了Comparable接口的对象. 选择排序代码如下: /** * * @author

经典排序算法(Java版)

经典排序算法(Java版)  转载 1.冒泡排序 Bubble Sort最简单的排序方法是冒泡排序方法.这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮.在冒泡排序算法中我们要对这个“气泡”序列处理若干遍.所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确.如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置.显然,处理一遍之后,“最轻”的元素就浮到了最高位置:处理二遍之后,“次轻”的元素就浮到了次高位

可视化对比十多种排序算法(C#版)

本文由 伯乐在线 - smilesisi 翻译自 Kanasz Robert.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. 在这篇文章中,我会向大家展示一些排序算法的可视化过程.我还写了一个工具,大家可对比查看某两种排序算法. 下载源码 – 75.7 KB 下载示例 – 27.1 KB 引言 首先,我认为是最重要的是要理解什么是“排序算法”.根据维基百科,排序算法(Sorting algorithm)是一种能将一串数据依照特定排序方式进行排列的一种算法.最常用到的排序方式是数值顺序以及字典