码迷,mamicode.com
首页 > 其他好文 > 详细

内部类

时间:2015-08-01 14:10:50      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:

HOW:基本使用

 1 /**
 2 *需求1:在Outer类中定义内部类Inner
 3 *需求2:Inner内定义一个vistOuter方法访问Outer的x属性
 4 *需求3:Outer内定义一个vist方法访问Inner的vistOuter方法
 5 */
 6 class Outer
 7 {
 8     String x="outer";
 9     //定义内部类
10     class Inner
11     {
12         String x="inner";
13         //内部类可以不创建外部类的对象而访问外部类的属性Outer.this.属性
14         void vistOuter(){
15             System.out.println("访问到的是:"+Outer.this.x);
16         }
17     }
18     //外部类不能直接访问内部类的方法,必须要先创建内部类的对象,通过该对象访问
19     void vist(){
20         //new Inner()看成一个对象,再.方法
21         new Inner().vistOuter();
22     }
23 }

注意事项

1.内部类与外部类的成员同级,所以内部类可以被private修饰!

2.内部类与外部类的成员同级,所以内部类可以访问外部类的成员变量,即使是private

3.如果一个内部类中有静态变量或者静态声明,那么它必须是静态内部类=》如果是静态内部类,那么:Outer.Inner.x或Outer.Inner.function()可以访问其静态成员或方法

4.静态类不能直接访问本类的成员或者方法:可以通过实例化之后再访问

 1 class Outer
 2 {
 3     static int x=5;
 4     //因为外部类中定义了静态成员,所以这里必须是静态内部类
 5     static class Inner
 6     {
 7         //本类非静态成员
 8         int x=1;
 9         //本类静态方法
10         static void vistOuter(){
11         System.out.println(Outer.x);
12         }
13     }
14 }
15 
16 class StaticNeiBu 
17 {
18     public static void main(String[] args) 
19     {
20         //调用静态内部类的静态方法:输出外部类静态成员变量
21         Outer.inner.vistOuter();
22         //访问静态内部类的非静态成员x
23         System.out.println(new Outer.Inner().x);
24     }
25 }

 

内部类

标签:

原文地址:http://www.cnblogs.com/erhai/p/4694015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!