Thinking in Java之内部类
前言
学习Java已经有一段日子了,最近的日子笔者在重新对java进行再学习。不过这个阶段的学习
笔者不会再着眼于具体的语法哪些细枝末节的东西了,这个阶段的学习中笔者将会对以前学习的
模糊的,遗漏的知识概念做一些相关性的总结。今天,恰好看到内部类这块了,记得以前对内部类
的使用就有一些模糊,因此专门就内部类做一些总结。
内部类概念
所谓内部类就是指在一个外部类中再定义一个类(内部类),这样内部类就作为一个成员依附于
外部类而存在。不过在使用内部类的时候需要注意的是内部类可以static,protect,private,但是
外部类只能使用public和缺省的包访问权限.
若非这两种编译出错:
Illegal modifier for the class Outer; only public, abstract & final are permitted
[java]
package com.kiritor;
public class Outer {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
class Inner {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
}
package com.kiritor;
public class Outer {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
class Inner {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
}
内部类的意义
简单看来内部类好像就是一种代码隐藏机制:将类至于其他类的内部.不过内部类远不止这样
它了解外部类,能够和外部类进行必要的通信。
1、封装一些别人不想知道的操作.
2、内部类可以访问创建它的外部类对象的内容,甚至包括了private的变量.
内部类同样可以实现接口,继承基类,这使得java中的多继承变得完整.。我们可以使用内部类
的方式模拟出多继承的效果。
通过内部类继承基类,外部类创建内部类对象,并使用内部类提供的方法,这样就变相的实现了
多继承的效果.
[java]
public class Graduate{
private Graduate_stu gaduate_stu= new Graduate_stu();
private Graduate_emp graduate_emp = new Graduate_emp();
private class Graduate_stu extends Student{
public void getName() {
....
}
}
private class Graduate_emp extends Employee{
public double getMoney()
{
return 0.0;
}
}
public void getName() {
gaduate_stu.getName();
}
public double getMoney() {
graduate_emp .getMoney();
}
}
public class Graduate{
private Graduate_stu gaduate_stu= new Graduate_stu();
private Graduate_emp graduate_emp = new Graduate_emp();
private class Graduate_stu extends Student{
public void getName() {
....
}
}
private class Graduate_emp extends Employee{
public double getMoney()
{
return 0.0;
}
}
public void getName() {
gaduate_stu.getName();
}
public double getMoney() {
graduate_emp .getMoney();
}
} 只是用代码简单的模拟了一下!
内部类还有一个颇具吸引力的特点,那就是内部类和外部类对于接口的继承是"分离"的
相互不存在影响的,基于现实的情况,有时候我们实现一个接口,但是接口的方法在此类
 
补充:移动开发 , IOS ,