您的位置:首页 > 编程语言 > Java开发

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

异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: