java 内部类(一)

Java中静态关键字的使用和内部类的调用 

1.顶级类

1) 可以定义任何静态和非静态的成员;

2) 顶级类不能是静态(static)的,若要加上其它关键字只能是public,final,abstract

3) 抽象类(abstract)和接口(interface)不能是final的.

4) 顶级类的静态方法中:可以直接访问该类的静态成员;访问非静态成员通过“new 顶级类().成员“的方法访问。访问静态内部类的成员通过“new 静态内部类().成员”的方法访问; 访问非静态内部类的成员通过“new 顶级类().new 非静态内部类().成员”方法访问.

5) 顶级类的非静态方法中:可以直接访问顶级类中的所有静态和非静态成员;访问静态内部类的成员和非静态内部类的成员方法一样,通过“new 静态内部类().成员”、“new 非静态内部类().成员”访问

2.非静态内部类

1) 非静态内部类中不允许定义静态的成员;

2) 非静态内部类非静态方法,访问静态内部类成员的方法:

如下代码:

 

 

public class C1 {
 class A {
     public void call() {
         System.out.println(B.i); // 访问静态B类中的静态成员变量i
         // new B()可以访问静态类中的所有静态和非静态成员
         System.out.println(new B().k); // 访问静态B类中非静态成员变量k
         System.out.println(new B().i); // 访问静态B类中的静态成员变量i
     }
 }
 static  class B {
     static int i, j;
     int k;
 }
}

 

3) 非静态内部类非静态方法中:可以直接访问该类的非静态成员、外部类内中的静态和非静态的成员;访问静态内部类和非静态内部类的成员的方法一样。

>访问静态内部类 new 静态内部类().成员

>访问非静态内部类 new 非静态内部类().成员

3.静态类内部类

1) 静态内部类中可以定义任何静态和非静态的成员;

2) 静态内部类里的静态方法中:可以直接访问该类和外部类中的静态成员,访问该类和外部类中成员通过创建对象访问,访问方法有:

>访问外部类的成员方法 new 外部类.成员;

>访问外部类的非静态内部类成员的方法 new 外部类().new 非静态内部类().成员;

>访问外部类的静态内部类成员的方法 new 静态内部类().成员;

3) 静态内部类里的非静态方法中:可以直接访问该类中的所有的非静态、静态成员和直接访问外部类中的静态成员;访问外部类中成员通过创建类对象访问,访问方法有:

>访问外部类的成员方法 new 外部类.成员;

>访问外部类的非静态内部类成员的方法 new 外部类().new 非静态内部类().成员;

>访问外部类的静态内部类成员的方法 new 静态内部类().成员;

注:以上所说的“成员”包括“成员方法”“成员变量”“成员对象”,所说的“成员”可能是静态或是非静态的,如果这个类里的成员是静态的可以直接用“静态类.静态成员“,“非静态类.静态成员“方法引用。

转自:http://tech.ccidnet.com/art/3539/20070523/1087695_1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值