加入收藏 | 设为首页 | 会员中心 | 我要投稿 上饶站长网 (https://www.0793zz.com.cn/)- 数据库平台、视觉智能、智能搜索、决策智能、迁移!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Java内部类是什么

发布时间:2022-07-11 02:14:47 所属栏目:语言 来源:互联网
导读:在类内部可定义成员变量和方法,且在类内部也可以定义另一个类。如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 就称为内部类(或称为嵌套类),而类 Outer 则称为外部类(或称为宿主类)。 内部类可以很好地实现隐藏,一般的非内部类是不允许有 pr
  在类内部可定义成员变量和方法,且在类内部也可以定义另一个类。如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 就称为内部类(或称为嵌套类),而类 Outer 则称为外部类(或称为宿主类)。
 
  内部类可以很好地实现隐藏,一般的非内部类是不允许有 private 与 protected 权限的,但内部类可以。内部类拥有外部类的所有元素的访问权限。
 
  内部类可以分为:实例内部类、静态内部类和成员内部类,每种内部类都有它特定的一些特点,本节先详细介绍一些和内部类相关的知识。
 
  在类 A 中定义类 B,那么类 B 就是内部类,也称为嵌套类,相对而言,类 A 就是外部类。如果有多层嵌套,例如类 A 中有内部类 B,而类 B 中还有内部类 C,那么通常将最外层的类称为顶层类(或者顶级类)。
 
  内部类也可以分为多种形式,与变量非常类似。
 
  内部类的特点如下:
  内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。
  内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否为 private 的。
  内部类声明成静态的,就不能随便访问外部类的成员变量,仍然是只能访问外部类的静态成员变量。
 
  【例1】内部类的使用方法非常简单,例如下面的代码演示了内部类最简单的应用。
  public class Test {
      public class InnerClass {
          public int getSum(int x,int y) {
              return x + y;
          }
      }
      public static void main(String[] args) {
          Test.InnerClass ti = new Test().new InnerClass();
          int i = ti.getSum(2,3);
          System.out.println(i);    // 输出5
      }
  }
  有关内部类的说明有如下几点。
  外部类只有两种访问级别:public 和默认;内部类则有 4 种访问级别:public、protected、 private 和默认。
  在外部类中可以直接通过内部类的类名访问内部类。
  InnerClass ic = new InnerClass();    // InnerClass为内部类的类名
  在外部类以外的其他类中则需要通过内部类的完整类名访问内部类。
  Test.InnerClass ti = newTest().new InnerClass();    // Test.innerClass是内部类的完整类名
  内部类与外部类不能重名。
 
  提示:内部类的很多访问规则可以参考变量和方法。另外使用内部类可以使程序结构变得紧凑,但是却在一定程度上破坏了 Java 面向对象的思想。
 
  我们将在接下来的三节课程里详细讲解 Java 内部类:
  Java实例内部类
  Java静态内部类
  Java局部内部类

(编辑:上饶站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读