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 静态内部类().成员;

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

 

scala基础11-内部类

/* * scala的内部类和java的内部类有很大差别 * java的内部类属于类 * scala的内部类纯属于外部类对象 */ class Outer(val name: String) ...
  • dingyuanpu
  • dingyuanpu
  • 2016年07月17日 23:01
  • 558

java静态方法中调用内部类

有时候我们在写一些外部接口程序的时候使用静态方法。在使用静态方法的时候,如果业务比较复杂需要用到内部类。但是第一次我碰到了一个编译错误:No enclosing instance of type Ac...
  • wficeboy
  • wficeboy
  • 2010年06月24日 20:21
  • 5225

Java中的嵌套类、内部类、静态内部类

嵌套类可以分为两种,静态的和非静态的,即静态嵌套类和非静态嵌套类。非静态嵌套类又叫做内部类(Inner Class)。我们通常所说的静态内部类其实是不严格的,严格的说应该叫做静态嵌套类(Static ...
  • sunqunsunqun
  • sunqunsunqun
  • 2015年06月14日 12:03
  • 4174

从头认识java-8.9 嵌套类(使用static的内部类)

这一章节我们来讨论一下嵌套类。1.概念内部类使用static的时候就是嵌套类。package com.ray.ch07; public class Test { private static cl...
  • raylee2007
  • raylee2007
  • 2015年11月13日 11:36
  • 1498

利用静态内部类来实现builder模式

注意,静态内部类并不会随着外部类的载入而被载入,只有当其内部方法被调用时才会装入JVM http://www.cnblogs.com/Alex--Yang/p/3386863.html...
  • yyd19921214
  • yyd19921214
  • 2017年05月17日 18:08
  • 279

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

 1.顶级类 1) 可以定义任何静态和非静态的成员; 2) 顶级类不能是静态(static)的,若要加上其它关键字只能是public,final,abstract 3) 抽象类(abstract)和接...
  • dui123
  • dui123
  • 2007年09月16日 02:11
  • 820

关于java成员内部类(普通内部类)在main方法中调用

main方法访问普通内部类的例子: //外部类test public class Test { //非静态的外部类成员变量 int num=1; /** * 普通内部类Person ...
  • JcMR_Li
  • JcMR_Li
  • 2017年02月08日 00:41
  • 1460

Java.内部类方法对外部类对象的引用x-this.x-Test.this.x

//内部类方法中对外部类对象的引用 public class Test { public static void main(String[] args) { // TODO: Add ...
  • rcoder
  • rcoder
  • 2010年12月23日 00:36
  • 10257

类中的内部类(静态、非静态、私有)中方法(静态、非静态)的调用

访问类中内部类中的方法的两种方法: 方法1、class OuterInnerClass { public static void main(String[] args) { Ou...
  • u010698072
  • u010698072
  • 2016年07月31日 22:40
  • 213

Java监听器的用法(一):内部类监听器

当在处理按钮等监听事件时,需要注册监听器,监听器的位置不同,角色就不同,访问的区域就不同。 内部类是在另一个类中声明的,包含内部类的类叫做外嵌类 内部类和外嵌类的关系: 1.内部类的外嵌类的成员...
  • tuke_tuke
  • tuke_tuke
  • 2015年07月21日 18:50
  • 1911
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中静态关键字的使用和内部类的调用
举报原因:
原因补充:

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