提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
(一)成员内部类
java中引入内部类主要目的是为了辅助外部类,所以内部类绝大数情况是在外部类的内部使用的。
package com.javaeasy.innerclass;
public class OutClass {
private int varibale =9;
public OutClass() {}
public int getVaribale() {
return varibale;
}
public class InnerClass{
public InnerClass() {}
private int innerVariable;
public int getInnerVariable () {
return innerVariable;
}
}
}
内部类主要是辅助外部类。除了很少情况下内部类不应该在其所属的外部类之外使用
使用内部类的步骤和普通类一样
package com.javaeasy.innerclass;
public class OutClass {
public class InnerClass{
public InnerClass() {}
private int innerVariable;
public int getInnerVariable () {
return innerVariable;
}
}
public int useInnerClass() {
InnerClass inner=new InnerClass();
int valueFromInner=inner.getInnerVariable ();
return valueFromInner;
}
}
(二)成员内部类的修饰符
访问控制符:public、默认(default)、protect和private
static修饰符
和访问修饰符的成员变量一样,使用访问控制符修饰内部类的作用就是控制内部的可见性。所以:如果一个内部控制符是public,那么这个内部可以在使用外部类的地方使用
abstract;内部类也可以是抽象类
final:表及内部类不可以被继承
内部类可以使用extends来继承某个类,也可以使用implements来实现接口
(三)在类外部使用内部类
package com.javaeasy.innerclass;
public class UseInnerClassOutside {
private int variable=65;
public int getvariable() {
return variable;
}
public class Innerclass{
private int variabel =66;
public int getVariable () {
return variabel;
}
}
public static class StaticInnerclass{
private int variable=5;
public int getVariable;
}
}
package com.javaeasy.innerclass;
import com.javaeasy.innerclass.*;
import com.javaeasy.innerclass.UseInnerClassOutside.Innerclass;
public class UseInnerClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
UseInnerClassOutside out =new UseInnerClassOutside();
Innerclass inner =out.new Innerclass();
System.out.println("内部类方法的返回值"+inner.getVariable());
}
}
从java的语句出发,内部类是属于外部类的,所以,使用可见性的private修饰一个成员,在内部类也是可以访问他的