码迷,mamicode.com
首页 > 编程语言 > 详细

Java Nested Class

时间:2015-01-02 01:11:24      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

Normal class(Non-nested class) can only be public, abstract or final. For nested classes, static is allowed.

 

Nested classes(private, public, protected) -> 2 Categories.

1. Static Nested Class (Very Different from C# static class)

alpha: Have access to all the static members of its parent class.

beta: Can instantiate objects by new ParentClass.StaticNestClass(). Now allowed to create objects in C#. 

gamma: Can have non-static members.

delta: same as gamma. Cannot access ParentClass.this.

 

2. Non-static nested class(Inner Class)

alpha: Have access to all the members of its parent class.

beta: Can instantiate objects by new ParentClass().new InnerClass().

gamma: Cannot have static members, except for final static fields.

delta: Variable shadowing:

    ParentClass.this.memberName -> Parent class member.

    this.memberName, ParentClass.InnerClass.this.memberName  -> Inner class member

 

 

======================================

1. Interface can only be defined inside a top-level class, an interface or in static context because interfaces are inherently static.

2. Anonymous Classes:

  Interface/AbstractClass obj = new Interface/AbstractClass(Empty for interface. Initialize for abstract class){

  String/int ...;

  public void ImplementAbstractMethodA(){...}

  public void ImplementAbstractMethodB(){...}

}; <--Semicolon in the end

Java Nested Class

标签:

原文地址:http://www.cnblogs.com/neweracoding/p/4198044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!