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

转载 2007年10月04日 19:38:00

1.顶级类

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

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

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

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

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

2.非静态内部类

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

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

如下代码:

 

 

publicclass C1 { class A {     publicvoid 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     } } staticclass B {     staticinti, j;     intk; }}

 

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

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

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

3.静态内部类

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

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

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

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

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

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

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

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

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

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

 

相关文章推荐

java 静态内部类的使用规范

  • 2010年06月21日 15:02
  • 59KB
  • 下载

【Java总结】final关键字,抽象类,接口,内部类

final final修饰类,表示这个 类不能被继承 final修饰方法,表示这个方法不能被重写 final修饰常量(常量大写),表示常量不能被修改内容 static final修饰的常量,表示全局常...
  • ttf1993
  • ttf1993
  • 2015年05月11日 19:21
  • 366

java静态内部类(嵌套类)

  • 2011年04月18日 11:41
  • 2KB
  • 下载

内部类使用final关键字的理解

(1).内部类是外部类的一个成员,就像外部类的成员方法一样,所以内部类有权限访问外部类的所有成员,包括private的。 (2).内部类不能访问外部类方法中的局部变量,除非变量是final的(一般发...

内部类,static关键字,接口和抽象类.

接口 接口是一种高度抽象的"模版. 接口的定义 定义接口格式: [public]interface 接口名称 [extends父接口名列表] { //静态常量 [...

java 双重检查单例和静态内部类单例

最近在看imageLoader 源码的时候,看到单例采用的双重检查机制,但是在看其他大牛写的代码的时候,采用的是静态的内部类作为单例,在此研究下。下面是单例的相关内容: 懒汉式 //懒汉式单例类.在第...

Java静态内部类的实例化问题

最近遇到的一个问题,记录一下。 静态内部类可以被实例化! 1.首先在外部类中的static方法中不能使用普通内部类,因为内部类必须要与外部类建立关联才能使用,可以说是同生共死。 2.我在编码过程...

java静态内部类(二)

如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对...

java 静态内部类

static class 静态类(Java)  一般情况下是不可以用static修饰类的。如果一定要用static修饰类的话,通常static修饰的是匿名内部类。 在一个类中创...

java的静态内部类

java的静态内部类或许有许多用途。最近用到了一个,记录一下。 静态的内部类与非静态的内部类有什么区别呢?? 从应用层面上讲,创建静态内部类的实例可以不通过其外部类。 贴一小段代码。 public...
  • qc_liu
  • qc_liu
  • 2014年12月05日 10:11
  • 260
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中静态关键字的使用和内部类的调用
举报原因:
原因补充:

(最多只允许输入30个字)