当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级考试JAVA知识点整理(31)
发布时间:2010/12/14 14:55:00 来源:城市学习网 编辑:ziteng
  1.2.3 在外部类中定义内部类
  如下所示代码为在外部类中定义两个内部类及它们的调用关系:
  public class Outer{
  int outer_x = 100;
  class Inner{
  public int y = 10;
  private int z = 9;
  int m = 5;
  public void display(){
  System.out.println("display outer_x:"+ outer_x);
  }
  private void display2(){
  System.out.println("display outer_x:"+ outer_x);
  }
  }
  void test(){
  Inner inner = new Inner();
  inner.display();
  inner.display2();
  //System.out.println("Inner y:" + y);//不能访问内部内变量
  System.out.println("Inner y:" + inner.y);//可以访问
  System.out.println("Inner z:" + inner.z);//可以访问
  System.out.println("Inner m:" + inner.m);//可以访问
  InnerTwo innerTwo = new InnerTwo();
  innerTwo.show();
  }
  class InnerTwo{
  Inner innerx = new Inner();
  public void show(){
  //System.out.println(y);//不可访问Innter的y成员
  //System.out.println(Inner.y);//不可直接访问Inner的任何成员和方法
  innerx.display();//可以访问
  innerx.display2();//可以访问
  System.out.println(innerx.y);//可以访问
  System.out.println(innerx.z);//可以访问
  System.out.println(innerx.m);//可以访问
  }
  }
  public static void main(String args[]){
  Outer outer = new Outer();
  outer.test();
  }
  }
  以上代码需要说明有,对于内部类,通常在定义类的class关键字前不加public 或 private等限制符,若加了没有任何影响,同时好像这些限定符对内部类的变量和方法也没有影响(?)。另外,就是要注意,内部类Inner及InnterTwo只在类Outer的作用域内是可知的,如果类Outer外的任何代码尝试初始化类Inner或使用它,编译就不会通过。同时,内部类的变量成员只在内部内内部可见,若外部类或同层次的内部类需要访问,需采用示例程序中的方法,不可直接访问内部类的变量。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved