1.2数据抽象(算法课java)
2014-06-19 04:16
363 查看
面向对象编程(oop)
java 程序绝大部分基于创建数据类型,核心就是“对象”。java基本数据类型主要是数字运算的,而自定义数据类型很大程度扩展了java的应用范围。
数据类型(data type), 定义了一组值,以及作用在这组值上的操作
抽象数据类型( abstract data type), 即用户不可见到其内部值的数据类型
对象(objects), 数据类型的实例。
应用程序接口(API),用于具体化(实例化)抽象数据类型的操作,包括构造方法(函数),成员方法。例如,
public class Counter {
Counter(String id) ;
void increment() ;
int tally();
String ToString()
}
抽象数据类型的使用, 用户不需要了解数据类型实现的具体过程也能使用
创建对象: 调用构造函数 new。每当用户使用 new,系统就为对象分配一个内存空间,执行初始化,并返回该对象的一个引用
Counter heads = new Counter("heads")
成员方法: 具有静态方法的所有特征,参数按值传递,方法名可重载。另外调用方法与对象有关,如下:
heads.tally()
使用对象:
a 声明该类型的变量,该变量是该类型的一个引用
b 调用构造函数
c 调用成员方法
赋值语句:
赋值实现了对象引用的拷贝,而并非新建了一个对象,即别名。等号两边的变量,都引用同一个对象
Counter c1 = new Counter("ones");
c1.increment();
Counter c2 = c1; //
c2.increment();
对象参数:
对象作为方法的参数,java按值传参,即从调用方法中拷贝参数值给被调方法。如果参数是对象的引用,那么java仍将拷贝该引用作为方法的参数。此时,方法可以访问(修改)对象了,当然不是通过原始的对象引用。
对象作为方法的返回值,由于java只允许有一个返回值,那么返回一个对象,实际上就可以返回多个值了。
数组也是对象,java中任何非基本类型的值都是某对象的值。比如,数组。所以当我们使用数组作为返回值,或者方法参数时,我们实际上是使用该数组的引用的拷贝
对象数组:使用[]数组构造函数创建该数组;然后数组中每个元素都使用标准构造函数创建。
抽象数据类型的实现
比如用java类实现抽象数据类型(ADT),代码就写在一个与类名相同的文本中,该文本扩展名是.java。 该文本中最初的语句声明定义了该类(数据类型)的成员变量,之后就是构造函数,成员方法。
成员变量:声明成员变量就像声明局部变量,每个声明加一个可见的修饰符,比如private。
构造函数(构造器):创建对象标示,并初始化其成员变量。构造器一般与类同名,支持重载,即可以有多个构造器。
成员方法:具体化该数据类型的操作。每个成员方法包括一个返回值类型,标示符,实现{}。
设计抽象数据类型
封装:打包数据类型的实现
API设计:API有助于清晰化输入和输出,但不容易。总之,API就是提供用户他们需要的方法,除此以外都不做。
算法与抽象数据类型(ADT): 数据抽象有助于算法研究,adt提供了一个框架而非细节。
继承:父类-子类
内存管理: 特点垃圾回收
不变数(immutability)据类型: 该类对象值从构造之后就不发生变化。可使用final 修饰符限制某变量为immutability
异常
java 程序绝大部分基于创建数据类型,核心就是“对象”。java基本数据类型主要是数字运算的,而自定义数据类型很大程度扩展了java的应用范围。
数据类型(data type), 定义了一组值,以及作用在这组值上的操作
抽象数据类型( abstract data type), 即用户不可见到其内部值的数据类型
对象(objects), 数据类型的实例。
应用程序接口(API),用于具体化(实例化)抽象数据类型的操作,包括构造方法(函数),成员方法。例如,
public class Counter {
Counter(String id) ;
void increment() ;
int tally();
String ToString()
}
抽象数据类型的使用, 用户不需要了解数据类型实现的具体过程也能使用
创建对象: 调用构造函数 new。每当用户使用 new,系统就为对象分配一个内存空间,执行初始化,并返回该对象的一个引用
Counter heads = new Counter("heads")
成员方法: 具有静态方法的所有特征,参数按值传递,方法名可重载。另外调用方法与对象有关,如下:
heads.tally()
使用对象:
a 声明该类型的变量,该变量是该类型的一个引用
b 调用构造函数
c 调用成员方法
赋值语句:
赋值实现了对象引用的拷贝,而并非新建了一个对象,即别名。等号两边的变量,都引用同一个对象
Counter c1 = new Counter("ones");
c1.increment();
Counter c2 = c1; //
c2.increment();
对象参数:
对象作为方法的参数,java按值传参,即从调用方法中拷贝参数值给被调方法。如果参数是对象的引用,那么java仍将拷贝该引用作为方法的参数。此时,方法可以访问(修改)对象了,当然不是通过原始的对象引用。
对象作为方法的返回值,由于java只允许有一个返回值,那么返回一个对象,实际上就可以返回多个值了。
数组也是对象,java中任何非基本类型的值都是某对象的值。比如,数组。所以当我们使用数组作为返回值,或者方法参数时,我们实际上是使用该数组的引用的拷贝
对象数组:使用[]数组构造函数创建该数组;然后数组中每个元素都使用标准构造函数创建。
抽象数据类型的实现
比如用java类实现抽象数据类型(ADT),代码就写在一个与类名相同的文本中,该文本扩展名是.java。 该文本中最初的语句声明定义了该类(数据类型)的成员变量,之后就是构造函数,成员方法。
成员变量:声明成员变量就像声明局部变量,每个声明加一个可见的修饰符,比如private。
构造函数(构造器):创建对象标示,并初始化其成员变量。构造器一般与类同名,支持重载,即可以有多个构造器。
成员方法:具体化该数据类型的操作。每个成员方法包括一个返回值类型,标示符,实现{}。
设计抽象数据类型
封装:打包数据类型的实现
API设计:API有助于清晰化输入和输出,但不容易。总之,API就是提供用户他们需要的方法,除此以外都不做。
算法与抽象数据类型(ADT): 数据抽象有助于算法研究,adt提供了一个框架而非细节。
继承:父类-子类
内存管理: 特点垃圾回收
不变数(immutability)据类型: 该类对象值从构造之后就不发生变化。可使用final 修饰符限制某变量为immutability
异常
相关文章推荐
- 算法-第四版-1.2 数据抽象-习题索引汇总
- 『算法』读书笔记 1.2数据抽象
- 数据结构与算法 Java语言描述-源代码
- JAVA 数据结构与算法学习笔记一(转载)
- 数据挖掘-基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(上)
- Java学习之数组1(1.数组的声明;2.元素为引用数据类型的数组;3.关于main方法里的String[] args;4.数组排序;5.数3退1 数组算法,(用数组模拟链表);6数组查找之二分法;7数组的拷贝)
- Java数据结构与算法--数组
- java数据结构及算法二
- java 中的经典算法 如何将有序数据打散,以及在数组中取数据如何做到结果不重复。
- 数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文本分类器的JAVA实现(下)
- 数据挖掘-基于贝叶斯算法及KNN算法的newsgroup18828文档分类器的JAVA实现(下)
- java写的决策树算法(数据挖掘算法)
- 冒泡排序 Java数据结构与算法
- Java数据结构与算法--高级排序
- 2-3-4 树 Java数据结构与算法
- 数据挖掘-基于Kmeans算法、MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(下)
- 数据结构——快速排序原理及算法Java实现
- 优先队列的实现 Java数据结构与算法
- java 算法数据
- java 基本类型数据自增自减算法