Java内部类

来源:互联网 发布:网络言情小说家排名 编辑:程序博客网 时间:2024/06/05 11:39

内部类可以直接访问外部类的所有成员与方法,提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类
定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );
外部类是不能直接使用内部类的成员和方法滴,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。如下:

//创建外部类的对象  demo howei = new demo ();        //创建内部类的对象,aaa为内部类名  aaa inn =howei.new aaa() ;          //调用内部类对象的method方法  inn.method()

如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字,如:

private String name = "howei";      //成员内部类Inner public class Inner {  String name = "howei11";        //内部类中的方法  public void show() {    System.out.println("外部类中的name:" +   demo.this.name  );  //demo为外部类名   System.out.println("内部类中的name:" +     name);  } }

创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员

private static int a = 14int  b=10;       // 创建静态内部类 public     static     class SInner {        // 内部类中的变量score        int a = 91;          public void show() {    System.out.println("访问外部类中的b:" +   new demo().b  );    System.out.println("访问外部类中的a:" + demo.a      );    System.out.println("访问内部类中的a:" + a);  } } // 测试静态内部类 public static void main(String[] args) {  // 直接创建内部类的对象              SInner si=new SInner();               // 调用show方法  si.show(); }

方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。

private String name = "howei";       // 外部类中的show方法    public void show() {   // 定义方法内部类  class MInner {     //不可使用访问控制符和静态修饰符   int score = 83;   public int getScore() {    return score + 10;   }  }          // 创建方法内部类的对象          MInner howei=new MInner();                     // 调用内部类的方法  int newScore=howei.getScore();        System.out.println("姓名:" + name + "\n加分后的成绩:" +newScore);}

方法内部类与成员内部类不同,可直接用类名直接创造对象,从而对方法内部类进行访问

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 耐克黑色鞋褪色怎么办 买广汽传祺7s新车有问题怎么办 华为荣耀10边框掉色了怎么办 网购商家打来无货怎么办 客户拍了不发货怎么办 天猫商家欺骗买家怎么办 阿里买家投诉我发空包怎么办 苹果6s电池坏了怎么办 hm买的单鞋脏了怎么办 微店违规屏蔽搜索怎么办 ios微信支付失效怎么办 京东第三方店铺关闭怎么办 京东店铺关门了怎么办 国美退款不到账怎么办 小米小店通过了怎么办 苹果的发票丢了怎么办 苹果7p开不开机怎么办 申请退款了怎么卖家还发货怎么办 买家申请退款卖家不退款怎么办 卖家恶意不退款怎么办 欠条到期了对方不还钱怎么办 冰箱磕了一坑怎么办 办信用卡没有家庭地址的怎么办 钱付了货没收到怎么办 在苏宁易购上买东西地址错了怎么办 手机分期付款银行卡丢了怎么办 华硕笔记本鼠标不动了怎么办 韵达快递不派送怎么办 中通快递不派送怎么办 农业银行信用卡密码输错三次怎么办 农业银行卡多次输错密码怎么办 想把店长弄走怎么办 济南银座卡过期了怎么办 银座购物卡丢失后怎么办 银座的卡丢了怎么办 银行卡换了旧卡怎么办 大理市民卡丢了怎么办 市民卡内的钱怎么办 宝付支付乱扣款怎么办 苏宁任性贷逾期怎么办 第二次跟家里开口要钱还网贷怎么办