[ ];
byte [ ] f(int n);
运行时检查下标保证它们是合法的:
int a[ ]=new int [10];
a[5]=1;
a[1]=a[0]+a[2];
a[-1]=4; // 运行时引发一个ArrayIndexOutOfBoundsException(数组下标越界)异常
a[10]=2; //运行时引发一个ArrayIndexOutOfBoundsException(数组下标越界)异常
数组的大小必须使用整数表达式:
int n;
float arr[ ]=new float[n+1]
数组的长度可通过.length 查找:
int a[] []=new int [10][3];
println (a.length) //打印出10
println (a[0].length) //打印出3。
3.3.1 数组细节
定义的数组都是Object类的一个子类的实例,在类的层次结构中有一个被称为Array的子类,它有一个实例变量“length”。对每一个基本类型,都有一个相应的Array的子类。同理,每一个类也都有一个相应的Array子类存在。例如: new Thread[n] 创建一个Thread[ ]的实例。如果类A是类B的超类,那么,A[]是B[]的超类,见下图:
Object
Array A
int[] float[] A[] B
B[]
因此,可以把数组赋给一个Object变量。
Object o;
int a[]=new int [10];
o=a;
并且可通过强制类型转换把object变量赋给一数组变量。
a=(int [])o;
Array类本身不能显式地产生子类。
4. 类
类(class)是传统面向对象编程模型的象征。它们支持数据抽象以及实现对数据的约束,在Java中,每一个新的类创建一个新类型。要想得到一个新的类,程序员必须首先找到一个已有的类,新类即在这个已有类的基础上构造,称之为派生(derived)。派生出的类亦称为原来类的子类,而这个类我们称为超类(super class)。
类的派生具有传递性: 如果B是A的子类,C是B的子类,则C 是A的子类。一个类的直接超类以及指示这个类如何实现的界面(interface),在类的声明中,由关键字extends及implements标出。如下示(黑体表示关键字)::
[doc_ comment] [modifer] class ClassName
extends Superclassname
implements interface {,interface } ] {
class body
}
举例:
/** 2 dimension point */
public class Points {
float x,y;
......
}
/** printable point */
clas
s PinttablePoint extends Points implements Printable {
上一篇:
JSP笔记_jsp代码
下一篇:
js循环滚动切换首页焦点图幻灯代码