北大青鸟光谷校区

北大青鸟光谷校区

  • 北大青鸟徐东校区
  • 北大青鸟光谷校区
  • 北大青鸟高新校区
  • 荆州青鸟之家
  • 襄阳青鸟之家

17740513250

百日千才

Java软件开发中内部类的研究方法

发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:027hpit

  JAVA从JDK1.1开始引入了内部类,可以参见代码。主要是可以引用类的内部其他元素,差不多是把这个内部类当成原类的元素。还有可以隐藏类的一些设计细节,好处还是很多的。

  定义两个接口

  package interfacepackage;

  public interface Destination {

  String readLabel();

  }

  package interfacepackage;

  public interface Contents {

  int value();

  }

  一个类,并且加有测试代码

  package debug;

  import interfacepackage.Contents;

  import interfacepackage.Destination;

  public class Tester {

  private int valueRate = 2;

  private class PContent implements Contents {

  private int i = 11 * valueRate;

  public int value() {

  return i;

  }

  }

  protected class PDestination implements Destination {

  private String label;

  private PDestination(String whereTo) {

  label = whereTo;

  }

  public String readLabel() {

  return label;

  }

  }

  public Destination dest(String s) {

  return new PDestination(s);

  }

  public Contents cont() {

  return new PContent();

  }

  public static void main(String args[])

  {

  Tester p = new Tester();

  Contents c = p.cont();

  System.out.println(c.value());

  Destination d = p.dest("天外水火");

  System.out.println(d.readLabel());

  System.out.println("done");

  }

  }

  上面的代码是内部动态类,那么内部静态类是否也可以呢?答案是可以的,但是静态内部类是无法引用类的其他非静态元素的,例如上例中的PContent 内部类如果改为static类,是无法引用valueRate 属性的,这样是会报编译错误的,但是如果valueRate 如果也改为static是可以运行的。

关闭

只为了方便您就学 北大青鸟光谷校区 北大青鸟武汉校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出

Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.