Java内部类基础

//非static的情况下:外部类的权限声明作用于外部类的外部的类,外部类的成员和内部类(除内部类中的private类)是available
//在外部类的static方法中,创建非静态内部类前,要先创建(会被用到的)外部类对象。
package test3; 
interface Address{  //要求实现一个接口,里面有一个方法
    String ShowAddress();   //多种show
}
public class test3 {
    private class DGAddress implements Address{ //不公开这个实现接口的内部类
        String addrName = "Default";    //暗箱
        public String ShowAddress() {   //定义接口里的方法
            return addrName;
        }   
    }
    public Address getAddress(){    //公开能得到接口类的实例的方法
        return new DGAddress();
    }
    public static void main(String[] args) {
        test3 test = new test3();   //建一个实例,为下一步提供方法
        Address addr = test.getAddress();   //得到接口类的实例addr。其实发生向上转型(方法返回的对象的引用赋值给接口类的引用),即实际包含更多信息  
        System.out.println(addr.ShowAddress()); //能用接口调用实例addr里的方法
    }
}
/*
package test3;
interface Address{
    String ShowAddress();
}
public class test3 {
    private String addrName = "Default";
    public Address getAddress(){    //公开能得到接口类的实例的方法    
        return new Address(){   //实例化一个接口类(临时定义这个类(变量+方法)+初始化),用法:匿名·内部类
            public String ShowAddress() {
                return addrName;    //接口类的方法 返回 本次test3对象里的变量的引用
            }
            {}  //用于初始化,可省略
        };  
    }
    public static void main(String[] args) {
        test3 test = new test3();
        Address addr = test.getAddress();
        System.out.println(addr.ShowAddress());
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值