Java基础:内部类基础

首先是内部类的定义:

可以将一个类的定义放在另一个类的内部,这就是内部类。

public class Parcel1{
class Contents {
private int i=11;
public int value(){
return i;
}}
class Destination{
private String label;
Destination(String whereTo){
label=whereTo;
}
String readLabel(){
return label;
}
}
public void ship(String dest)
{
Contents c=new Contents();
Destination d=new Destination(dest);
System.out.println(d.readLable());
}
public static void main(String[] args)
{
Parcel1 p=new Parcel1();
p.ship("Tasmania");
}
}

上面就是一个很简单的内部类的例子。



1.首先让我们来看看Parcel1这个类的构成

包含两个内部类:

Destination,Contents

一个返回值为void的ship方法

2.分析ship方法

public void ship(String dest)
{
Contents c=new Contents();
Destination d=new Destination(dest);
System.out.println(d.readLabel());
}

在这个方法中,分别创建了两个内部类的实例。同时调用了Destination这个内部类的readLabel方法。

3.主函数

public static void main(String[] args)
{
Parcel1 p=new Parcel1();
p.ship("Tasmania");
}

当我们在ship()方法中使用内部类的时候,与使用普通的内部类并没有什么区别。


外部类同时也提供了一个方法,该方法可以返回一个指向内部类的引用

public class Parcel {
    class  Contents{
        private int i=11;
        public int value()
        {
            return i;
        }
    }
    class Destination{
        private String label;

        public Destination(String whereTo) {
            whereTo = label;
        }
        String readLabel(){
            return label;
        }
    }
    public Destination destination(String s)
    {
        return new Destination(s);
    }
    public Contents contents()
    {
        return new Contents();
    }
    public void ship(String dest)
    {
        Contents contents=contents();
        Destination destination=destination(dest);
        System.out.println(destination.readLabel());
    }

    public static void main(String[] args) {
        Parcel parcel=new Parcel();
        parcel.ship("Tasmania");
        Parcel.Contents c= parcel.contents();
        Parcel.Destination destination=parcel.destination("Borneo");
    }
}

Parcel类中新提供了两个返回内部类引用的方法:Contents contents()和Destination destination()

同时在主函数中向我们展示了如何创建内部类,格式为 OuterClassName.InnerClassName



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值