//静态内部类,可用于方便测试
/*
public class StaticInnerClass{
int x=100;
static class Inner{
void doitInner(){
}
public static void main(String args[]){
System.out.println("a");
}
}
}
*/
//匿名内部类
/*
interface OutInterface {
}
class OuterClass{
public OutInterface doit(){
return new OutInterface() {
private int i=0;
public int getValue(){
return i;
}
};
}
}
*/
//this 指代的是当前对象
/*
public class TheSameName{
private int x;
private class Inner{
private int x=9;
public void doit(int x){
x++;
this.x++;
TheSameName.this.x++;
}
}
*/
//通过内部类可以对类的私有成员方法进行操作
/*
public class OutClass {
public static void main(String args[]){
OutClass outClass = new OutClass();
OutClass.innerClass inner = outClass.doit();
System.out.println(inner.y);
OutClass.innerClass inner1=outClass.new innerClass();
System.out.println(inner1.y=9);
}
innerClass inner = new innerClass();
public void out(){
inner.inf();
}
class innerClass{
public innerClass() {
}
public void inf(){
}
int y=0;
}
public innerClass doit() {
inner.y=4;
return inner;
}
}
*/
//内部类向上转型为接口
/*
interface OutInterface{
public void f();
}
public class InerfaceInner{
public static void main(String args[]){
OuterClass2 out = new OuterClass2();
OutInterface outinter = out.doit();
outinter.f();
}
}
class OuterClass2{
private class InnerClass implements OutInterface{
InnerClass(String s){
System.out.println(s);
}
@Override
public void f() {
// TODO Auto-generated method stub
System.out.println("访问内部类中的f()方法");
}
}
public OutInterface doit(){
return new InnerClass("访问内部类方法");
}
}
*/