成员内部类、方法内部类、静态内部类、匿名内部类
示例
1.成员内部类
package com.yuyi.inner;
/**
* 成员内部类
* @author lyb <br>
* 2018年5月31日 下午4:22:42
*/
public class Chengyuan {
public static void main(String[] args) {
CC c = new CC();
// 外部类对象.new 内部类构造器
CC.Neibu n = c.new Neibu();
n.say();
}
}
class CC{
public class Neibu{
public void say(){
System.out.println("我是成员内部类");
}
}
}
2.方法内部类
package com.yuyi.inner;
/**
* 方法内部类
* @author lyb <br>
* 2018年5月31日 下午4:32:53
*/
public class Fangfa {
public static void main(String[] args) {
Ff f = new Ff();
f.fangf();
}
}
class Ff{
public void fangf(){
class Fl{
public void say(){
System.out.println("方法内部类");
}
}
Fl f = new Fl();
f.say();
}
}
3.静态内部类
package com.yuyi.inner;
/**
* 静态内部类
* @author lyb <br>
* 2018年5月31日 下午4:33:41
*/
public class Jingtai {
public static void main(String[] args) {
// new 外部类名.内部类构造器
Jing.Neibu b = new Jing.Neibu();
b.say();
Jing.Neibu.ss();
}
}
class Jing{
public static class Neibu{
public void say(){
System.out.println("我是静态内部类");
}
public static void ss(){
System.out.println("静态内部类 静态方法");
}
}
}
4.匿名内部类
package com.yuyi.inner;
/**
* 匿名内部类
* @author lyb <br>
* 2018年5月31日 下午4:48:07
*/
public class Niming {
public static void main(String[] args) {
Nim n = new Nim() {
@Override
public void say() {
System.out.println("匿名内部类");
}
};
n.say();
}
}
interface Nim{
void say();
}