成员内部类
public class ChengyuanOuter {
private int age = 18;
private String name = "lt";
class Inner {
private String innermsg = "hw";
private void test() {
System.out.println(name);
System.out.println(innermsg);
}
}
public void test(){
Inner inner = new Inner();
inner.test();
}
}
static inner class
public class StaticOuter{
public static int age = 18;
String name = "ll";
public static class Inner{
public void test(){
System.out.println(age);
}
}
}
方法内部类
public class FangfaOurer {
public String name = "ll";
public void test() {
class Inner {
public String innerMsg = "123";
public void test() {
System.out.println("inner");
}
}
new Inner().test();
}
}
匿名内部类
匿名内部类 比较繁琐可以使用java8新的lambda表达式简化
public interface NimingInterface {
public void test();
}
test
public class mainTest extends TestCase {
ChengyuanOuter chengyuanOuter = new ChengyuanOuter();
public void testChengyuanInner() {
chengyuanOuter.test();
}
public void testStaticInner() {
StaticOuter.Inner inner = new StaticOuter.Inner();
inner.test();
}
public void testFangfaInner() {
FangfaOurer fangfaOurer = new FangfaOurer();
fangfaOurer.test();
}
public void testNimingInner() {
NimingInterface test = new NimingInterface() {
@Override
public void test() {
System.out.println("ningmingclass");
}
};
test.test();
// USE lambda
NimingInterface test2 = ()->{
System.out.println("ningmingclass2");
};
test2.test();
}
}