java 嵌套类

如果不需要内部类对象与其外围类对象之间有联系,那么可以将内部类声明为static,这通常称为嵌套类,想要理解static应用于内部类时的含义,就必须记住,普通的内部类对象隐式地保存了一个引用,指向它的外围类对象,然而,当内部类时static时,就不是这样了,嵌套类意味着:

1)要创建嵌套类的对象,并不需要其外围类的对象

2)不能从嵌套类的对象中访问非静态的外围类对象

嵌套类与普通的内部类还有一个区别,普通内部类的字段与方法,只能放在类的外部层次上,所以普通的内部类不能有static数据和static字段,也不能包含嵌套类,但是嵌套类可以包含这些东西:

//: innerclasses/Parcel11.java
// Nested classes (static inner classes).
package object;
public class Parcel11 {
  private static class ParcelContents implements Contents {
    private int i = 11;
    public int value() { return i; }
  }
  protected static class ParcelDestination
  implements Destination {
    private String label;
    private ParcelDestination(String whereTo) {
      label = whereTo;
    }
    public String readLabel() { return label; }
    // Nested classes can contain other static elements:
    public static void f() {}
    static int x = 10;
    static class AnotherLevel {
      public static void f() {}
      static int x = 10;
    }
  }
  public static Destination destination(String s) {
    return new ParcelDestination(s);
  }
  public static Contents contents() {
    return new ParcelContents();
  }
  public static void main(String[] args) {
    Contents c = contents();
    Destination d = destination("Tasmania");
  }
} ///:~

原文地址:https://www.cnblogs.com/jiangfeilong/p/10226998.html

时间: 2024-11-13 08:06:50

java 嵌套类的相关文章

深入理解java嵌套类和内部类

一.什么是嵌套类及内部类 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner).嵌套类从JDK1.1开始引入.其中inner类又可分为三种: 其一.在一个类(外部类)中直接定义的内部类: 其二.在一个方法(外部类的方法)中定义的内部类: 其三.匿名内部类. 下面,我将说明这几种嵌套类的使用及注意事项. 二.静态嵌套类 如下所示代码为定义一个静态嵌套类

java嵌套类和内部类详解

可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner).嵌套类 从JDK1.1开始引入.其中inner类又可分为三种: 其一.在一个类(外部类)中直接定义的内部类: 其二.在一个方法(外部类的方法)中定义的内部类: 其三.匿名内部类. java嵌套类(Nested Classes)总结 http://www.cnblogs.com/aigongsi/a

学习日记(十二)java嵌套类和内部类

嵌套类和内部类:在一个类里边定义的类叫做嵌套类,其中没有static修饰的嵌套类是我们通常说的内部类,而被static修饰的嵌套类不常用.有的地方没有嵌套类和内部类的区分,直接是嵌套类就称作内部类,没有嵌套类的说法.而通常我所听说的基本上都是直接说的内部类,可能这种说法更为常见一些. 内部类的范围由装入它的类的范围限制,内部类可以访问外部类的成员,包括private修饰的,因为它被当成了外部类的成员,一个类的成员之间是可以相互访问的,但是反过来外部类不能访问内部类的实现细节. 内部类可以被定义在

JAVA 嵌套类和内部类

一.什么是嵌套类及内部类?  可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:  静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为  内部类(inner).嵌套类从JDK1.1开始引入.其中inner类又可分为三种:  其一.在一个类(外部类)中直接定义的内部类;  其二.在一个方法(外部类的方法)中定义的内部类;  其三.匿名内部类.  下面,我将说明这几种嵌套类的使用及注意事项. 二.静态嵌套类  如下所示代

java嵌套类(Nested Classes)总结

转自:http://www.cnblogs.com/aigongsi/archive/2012/04/24/2467183.html Nested Classes定义 在java语言规范里面,嵌套类(Nested Classes)定义是: A nested class is any class whose declaration occurs within the body of another class or interface. A top level class is a class t

Java嵌套类,内部类和外部类

1.嵌套类,内部类 嵌套类是指被定义在一个类内部的类: JAVA的嵌套类有很多种类:1.静态成员类:2.非静态成员类:3.匿名类:4.局部类:其中,除了静态成员类之外,其他的都是内部类,因为静态成员类更像是一个独立的类: 但是静态成员类,是外部类内部的一个成员,静态成员类的访问和其他的静态成员一样:1.通过外部类类名调用:2.如果静态成员类定义为私有,那么只能在外部类内部使用        JAVA 内部类可以很好的实现隐藏,并且内部类拥有外围类的所有元素的访问权限,可是实现多重继承,并且可以避

java嵌套类

一.嵌套类 使用嵌套类减少了命名冲突,一个内部类可以定义在一个类中,一个方法中甚至一个表达式中. (1)定义:A nested(嵌套) class is any class whose declaration occurs within the body of another class or interface. (2)嵌套类分为两种:静态嵌套类和非静态嵌套类,非静态嵌套类就是内部类(inner class). 内部类分为四种:静态嵌套类(static nested classes)成员内部类

java 嵌套类 简记

嵌套类包括:1)静态嵌套类  (static 修饰符) 2)非静态嵌套类(又叫内部类) 其中内部类又可分为三种: 其一.在一个类(外部类)中直接定义的内部类: 其二.在一个方法(外部类的方法)中定义的内部类: 其三.匿名内部类. 访问规则总结: 1)静态嵌套类: 1. 静态嵌套类可以直接访问外部类的静态成员变量, 但不能直接访问外部类的非静态成员变量 ,其访问规则与静态成员变量相似,即静态方法不能直接访问非静态成员.      2.外部类不能直接访问静态嵌套类的成员变量, 但是可以通过类对象来访

Java 嵌套类和内部类示例<一>

<span style="font-size:18px;">package nested_inner_class; public class StaticNestedTest1 { public static void main(String[] args) { //不需要实例化外部类,可以直接创建内部类对象 Outer1.Nested1 nested1 = new Outer1.Nested1(); System.out.println(nested1.getValue(