一、内部类
内部类是指将一个a类定义在b类中,其中a类称为内部类,外部b类称为外部类
成员内部类定义格式: class外部类{
class内部类{
}
}
类a {类b { }一个事物描述了事物中还有另一个事物可以用于内部类
访问特点:
1、内部类可以直接访问外部类的成员,包括私有成员。
2、外部类要访问内部类的成员,必须创建内部类的对象。
创建内部类格式:
外部类.内部类对象名称=new外部类型().new内部类型);
public class test 15 { publicstaticvoidmain (string [ ] args )//创建内部类的对象shangjin.haishoujisih=new shangjin ).new hhhin } class shangjin { public void chuan zang (} ) ({ System.out.println ) (此处为外部类方法) ); } classhaishoujisi { publicvoideluoyi () { System.out.println (此处为内部类方法) ); } }} 二、匿名内部类
是内部类的简化写法。 其本质是具有具体实现的父类或具有父接口的匿名子类对象。
匿名内部类:
格式:
外部类.内部类对象名称=new外部类() .内部类) {方法重写}; public class test 13 { publicstaticvoidmain (字符串[ ] args ) { chide.kfc k=new chide ).new kfc; //外部类对象访问内部类对象内部类对象创建格式(外部类.内部类对象名称=new外部类).new内部类); (k.jitu ); chide c=new chide (; //普通外部类对象c.maintiao (; system.out.println (c.money ' GTD bwb不高); new chide ().maintiao ); //匿名对象是new外部类() .方法名); chide.KFCKC=newchide(.newKFC ) ) /匿名类格式外部类)、内部类对象名称=new外部类) (.内部类) {方法重写}; public void jitu () ({ System.out.println ) (老八秘制汉堡) ); }; //因为这是赋值语句,所以在最后的大括号外加上分号kc.jitu (; }}class chide {//外部类int money=100; publicvoidmaintiao ((system.out.println ) )“面条-----外部系统方法”); }classKFC(/内部类public void jitu ) ) ({ System.out.println ) )鸡腿(-----内部类方法); } }