内部类
class Outer {
private String msg = "www.mldn.cn";
public void fun() {
Inner in = new Inner();
in.print();
}
class Inner {
public void print() {
System.out.println(Outer.this.msg);
}
}
}
public class Demo {
public static void main(String args[]) {
Outer out = new Outer();
out.fun();
}
}
static定义内部类
class Outer1 {
private static final String MSG = "www.mldn.cn";
static class Inner {
public void print() {
System.out.println(Outer1.MSG);
}
}
}
public class Demo1 {
public static void main(String args []) {
Outer1.Inner in = new Outer1.Inner();
in.print();
}
}
方法中定义内部类
class Outer2 {
private String msg = "www.mldn.cn";
public void fun(long time) {
class Inner {
public void print() {
System.out.println(Outer2.this.msg);
System.out.println(time);
}
}
new Inner().print();
}
}
public class Demo2 {
public static void main(String args[]) {
new Outer2().fun(123254);
}
}
匿名内部类
interface IMessage {
public void send(String str);
}
public class Demo3 {
public static void main(String args[]) {
IMessage msg = new IMessage() {
@Override
public void send(String str) {
System.out.println("发送消息" + str);
}
};
msg.send("www.mldn.cn");
}
}
interface IMessage {
public void send(String str);
public static IMessage getInstance() {
return new IMessage() {
@Override
public void send(String str) {
System.out.println(str);
}
};
}
}
public class Demo3 {
public static void main(String args[]) {
IMessage.getInstance().send("www.mldn.cn");
}
}