为了账号安全,请及时绑定邮箱和手机立即绑定

java 内部类

标签:
Java

内部类
内部类不用建立对象就可以访问外部类的成员变量和函数,包括私有
外部类要访问内部类,必须建立内部类对象
内部类可以私有
当内部类中定义了静态成员,则内部类也应该是静态的
当外部类中的静态方法访问内部类时,内部类也应该是静态的
//main(){
// 在外部类中实例化内部类
//Inner in =new Inner();
//  in.i();        
//}

局部内部类    内部类定义在局部时,不可以被成员修饰符修饰,可以直接访问外部类中的成员,不能访问所在局部中的变量,只能访问被final修饰的局部变量class Outer{    int i=10;public void m(){    syso("-------------");          }public void f(){    class Inner{        int j=10;        public void t(){            syso("  "+i+"  "+j);            }                   }    Inner in=new Inner();        in.t();    }main(){    Outer out =new Outer();        out.f();}}//10  10  静态内部类静态内部类调用变量   可以使用内部类的变量  可以使用外部类中静态的变量class Outer{    int i=10;    public void f(){syso("f()...");}    static class Inner{        int i=20;    public void i(){syso(i+"  "+this.i+"                    "+Outer.i);}                    }       }public class kk{    main(){    Outer.Inner in=new Outer.Inner();    in.i();     }           }//20  20  10 成员内部类    作为类成员存在于类内部,可以访问外部类所有成员方法    建立在非所属类中时,需要先建立外部类,Outer.Inner in=new Outer().new Inner();    内部类访问外部类成员变量 Outer.this.x    class Outer{        int i=10;        class Inner{        int i=20;        public void v(){syso(i+" "+this.i+" "+Outer.this.i);}               }           }public class kk{

//      Outer out =new Outer();
//      Outer.Inner in =out.new Inner();
//          in.v()
Outer.Inner in=new Outer().new Inner();
in.v();
}//20 20 10
匿名内部类
内部类必须是继承一个类或者实现接口。匿名内部类是一个匿名子类对象,而且这个对象是以一个类的形式展现的。
interface Email{
public void Send();    
}
public class kk{
//接口不能实例化对象,匿名内部类实现了接口,系统实例化匿名内部类对象传给email
Email email=new Email(){
public void Send(){
syso("send email");
}      
};          
email.Send();
}//send email

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
18
获赞与收藏
134

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消