内部类定义和使用

package com.liwin.exercises.internalclass;


public class Parcel1 {

class Contents {

private int i = 11;

public int getValue() {return i;}

}

class Destination {

private String label;

Destination(String where) {label = where;}

String readLabel() {return label;}

}

public void ship(String dest) {

Contents c = new Contents();

Destination d = new Destination(dest);

System.out.println(d.readLabel());

}

public static void test() {

Parcel1 p = new Parcel1();

p.ship("ShangHai");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内部类是指在一个类的内部定义的另一个类。它可以访问外部类的成员变量和方法,并且可以使用外部类的私有成员。内部类可以分为成员内部类、局部内部类、静态内部类和匿名内部类。 1. 成员内部类:成员内部类定义在一个类的内部的普通类,它与外部类的实例相关联。成员内部类可以访问外部类的所有成员,包括私有成员,而外部类也可以访问内部类的成员。 使用场景: - 当内部类需要访问外部类的成员,并且与外部类有密切的关联时,可以使用成员内部类。例如,一个汽车类中有一个引擎类作为成员内部类,引擎类可以访问汽车类的属性和方法。 2. 局部内部类:局部内部类定义在方法、代码块或构造函数内部的类,它只在定义它的作用域中有效。 使用场景: - 当需要在某个方法或代码块中创建一个只在该作用域中使用的类时,可以使用局部内部类。例如,在一个方法中需要定义一个辅助类来处理某个特定任务。 3. 静态内部类:静态内部类定义在另一个类中的静态类,它与外部类实例无关,可以直接通过外部类名访问。 使用场景: - 当内部类不需要访问外部类的实例,并且具有独立的功能时,可以使用静态内部类。例如,在一个图形计算类中定义一个静态内部类来表示点,点的坐标与图形计算类的实例无关。 4. 匿名内部类:匿名内部类是没有名字的内部类,它通常作为参数传递给方法或构造函数。 使用场景: - 当需要定义一个简单的类来实现某个接口或继承某个类,并且该类只在使用它的地方使用时,可以使用匿名内部类。例如,在事件处理中,需要为按钮添加点击事件时可以使用匿名内部类来实现事件处理接口的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值