Java 简单的内部类
2016-07-16 20:39
423 查看
内部类,即将一个类定义置于另一个类的定义之中。
public class Parcel1 {
class Contents{
private int i = 11;
public int value(){
return i;
}
}
public Contents cont(){
return new Contents();
}
class Destination{
private String label;
Destination(String whereTo){
label = whereTo;
}
String readLabel(){
return label;
}
}
public Destination dest(String la){
return new Destination(la);
}
public void ship(String dest){
Contents c = new Contents();
Destination d = new Destination(dest);
System.out.println(d.readLabel() + c.i);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Parcel1 p = new Parcel1();
p.ship("hahaha");
Parcel1.Contents a = p.cont();
Parcel1.Destination b = p.dest("lalala");
System.out.println(b.readLabel() + a.i);
}
}
上例中,Contents和Destination就是定义在Parcel1中的类。这里称Contents和Destination为内部类,称Parcel1为外部类。特点:1.内部类可以自由地访问外部类的成员变量;2.如果内部类被static修饰,即静态的,那么他只能访问外部类的静态变量。3.在外部类非static方法内部之外的任何地方(即static方法)生成内部类的一个对象,必须将那个对象的类型设为“外部类.内部类”(如main中Parcel1.Contents a =
p.cont();以及ship中 Contents c = new Contents();)。例如cont()就是外部类的一个特殊方法,返回一个内部类的句柄。
public class Parcel1 {
class Contents{
private int i = 11;
public int value(){
return i;
}
}
public Contents cont(){
return new Contents();
}
class Destination{
private String label;
Destination(String whereTo){
label = whereTo;
}
String readLabel(){
return label;
}
}
public Destination dest(String la){
return new Destination(la);
}
public void ship(String dest){
Contents c = new Contents();
Destination d = new Destination(dest);
System.out.println(d.readLabel() + c.i);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Parcel1 p = new Parcel1();
p.ship("hahaha");
Parcel1.Contents a = p.cont();
Parcel1.Destination b = p.dest("lalala");
System.out.println(b.readLabel() + a.i);
}
}
上例中,Contents和Destination就是定义在Parcel1中的类。这里称Contents和Destination为内部类,称Parcel1为外部类。特点:1.内部类可以自由地访问外部类的成员变量;2.如果内部类被static修饰,即静态的,那么他只能访问外部类的静态变量。3.在外部类非static方法内部之外的任何地方(即static方法)生成内部类的一个对象,必须将那个对象的类型设为“外部类.内部类”(如main中Parcel1.Contents a =
p.cont();以及ship中 Contents c = new Contents();)。例如cont()就是外部类的一个特殊方法,返回一个内部类的句柄。
相关文章推荐
- Java-IO之PushbackInputStream
- Java 8中一些常用的全新的函数式接口
- java环境搭建
- java Fork/Join多线程发送短信
- Cookie存储中文报错:java.lang.IllegalArgumentException: Control character in cookie value or attribute.(转)
- JavaWeb工程中web.xml基本配置
- Eclipse配置
- Java 垃圾回收
- Java异常处理
- 在Mac上安装Myeclipse 10的步骤、破解安装包的获取及虚拟内存不足等问题的解决
- spring笔记(四)
- 10017---SpringMVC--RESTful SpringMVC CRUD
- IntelliJ IDEA 缺少 javax 包 支持
- Java NIO 学习(六)--Selector
- 理解Java中hashCode的作用
- spring常用注解使用讲解
- Java内部类的作用
- 使用maven管理引入jdk1.8
- JavaWeb核心编程之(三.3)Servlet Init 配置
- 深入解析String#intern