Java――类的应用(二) (四)

2014-11-24 11:52:32 · 作者: · 浏览: 71
d(2, 3));

System.err.println("a - b = " + t3.sub(2, 3));

System.err.println("a * b = " + t3.mul(2, 3));

System.err.println("a / b = " + t3.umul(2, 3));

//接口引用调用接口的方法

System.err.println("a + b = " + bb.add(4, 5));

System.err.println("a - b = " + cc.sub(4, 5));

System.err.println("a * b = " + dd.mul(4, 5));

System.err.println("a / b = " + ee.umul(4, 5));

}

}

interface ladd {

int add(int a , int b);

}

interface lsub {

int sub(int a , int b);

}

interface lmul {

int mul(int a , int b);

}

interface lumul {

int umul(int a , int b);

}

class test03 implements ladd , lmul , lsub , lumul {

@Override

public int add(int a, int b) {

return a + b;

}

@Override

public int mul(int a, int b) {

return a - b;

}

@Override

public int sub(int a, int b) {

return a * b;

}

@Override

public int umul(int a, int b) {

return a / b;

}

}

public class test {

public static void main(String[] args) {

test03 t3 = new test03();

//接口引用指向对象的引用

ladd bb = t3;

lsub cc = t3;

lmul dd = t3;

lumul ee = t3;

//对象引用调用add()方法

System.err.println("a + b= " + t3.add(2, 3));

System.err.println("a - b = " + t3.sub(2, 3));

System.err.println("a * b = " + t3.mul(2, 3));

System.err.println("a / b = " + t3.umul(2, 3));

//接口引用调用接口的方法

System.err.println("a + b = " + bb.add(4, 5));

System.err.println("a - b = " + cc.sub(4, 5));

System.err.println("a * b = " + dd.mul(4, 5));

System.err.println("a / b = " + ee.umul(4, 5));

}

}

4、内部类的应用

内部类即在一个雷黄总可以再嵌套定义另一个类,同时内部类是外部类的一个成员。

1)、内部类

在Java中,一个类被嵌套定义在另一个类内部,那么这个类称为内部类,而包含内部类的类被称为外部类。对于外部类而言,内部类相当于成员变量或方法,是外部类的一个成员。同时内部类也是一个类,它也具有自己的成员变量和方法。通过创建内部类的一个对象,可以调用自己的成员方法,如下所示:

[java]
public class mytest01 {

int a ;

void print() {

System.err.println("a= " + a);

}

class test01 {

int b;

void print() {

System.err.println("b=" + b);

}

}

}

public class mytest01 {

int a ;

void print() {

System.err.println("a= " + a);

}

class test01 {

int b;

void print() {

System.err.println("b=" + b);

}

}

}


2)、内部类的使用

内部类分为以下几种:

>常规内部类:在一个类中使用内部类可以在内部类中直接存取其所在的类的私有成员变量;

>方法内部类:它对外面的所有类来说都是隐藏的,仅有它所在的方法指导它;它不仅可以访问所属外部类中的数据,还可以访问局部变量,不过局部变量必须声明为final数据;

>匿名内部类:就是没有名字的内部类,这是Java为了方便我们编写程序而设计的一个机制。因为有时有的内部类只需要创建一个它的对象就可以了,在下面的编程中不会用到这个类,这时使用匿名内部类就比较合适,而且也免去了给它取名的烦恼;

>静态内部类:即在内部类的前面增加了static修饰符(modifier)。

常规内部类是指内部类直接嵌套在外部类的类体中,这时内部类就相当于外部类的一个成员变量或成员方法,是外部类的一个成员。下面的实例讲解了常规内部类是如何定义的:

Class test01{

Private int a = 3;

Class test{ //定义了一个常规内部类

Void print() {

System.out.println(“a = ” + a);

}}}

如果希望运行上面内部类中的方法,唯一的方法是通过外部类的一个实例,也就是说只有先创建一个外部类的实例,通过外部类的实例才能访问内部类。下面是对上面类的使用:

[java]
class test01 {

private int a = 4;

public void print() {

test02 t2 = new test02();

t2.print();

}

class test02 {

int b;

void print() {

System.err.println("a + b=" + (a + b));

}

}

}



public class mytest01 {

public static void main(String[] args) {