成员内部类
public class Test12 {
public static void main(String[] args) {
Outer out=new Outer();
Inner in=out.new Inner();
in.show();
}
}
class Outer{
private String name="tom";
static String address="南京";
class Inner{
private int age=20;
private String name="张三";
String address="北京";
public void show(){
String address="天津";
System.out.println("内部类中的show方法");
System.out.println("内部类中的name:"+this.name);
System.out.println("外部类中的name:"+Outer.this.name);
System.out.println("内部类中的age:"+age);
System.out.println("内部类中的address:"+this.address);
System.out.println("外部类中的address:"+Outer.address);
System.out.println("内部类中的局部变量address:"+address);
}
}
public void print(){
System.out.println("外部类中的print方法");
Inner in=new Inner();
System.out.println(in.age);
in.show();
}
}
局部内部类
public class Test01 {
public static void main(String[] args) {
MOuter out=new MOuter();
out.show();
}
}
class MOuter{
String name="tom";
public void show(){
final int age=20;
System.out.println("外部类中的show方法");
class MInner{
String sex="male";
private String address="南京";
public void print(){
System.out.println("局部内部类中的print方法");
System.out.println("外部类中的成员变量name:"+name);
System.out.println("外部类中局部变量age:"+age);
}
}
MInner in=new MInner();
System.out.println(in.sex);
System.out.println(in.address);
in.print();
}
}
静态内部类
public class Test02 {
public static void main(String[] args) {
SInner in=new SInner();
in.show();
}
}
class SOuter{
static String name="tom";
static class SInner{
String sex="male";
public void show(){
System.out.println("静态内部类中的show方法");
System.out.println("外部类中的name:"+name);
}
}
}
匿名内部类
public class Test03 {
public static void main(String[] args) {
Service s=new Service(){
public void show(){
System.out.println("实现Service接口的匿名内部类");
}
};
s.show();
Animal pig=new Animal() {
@Override
public void play() {
System.out.println("小猪快跑。。。。");
}
@Override
public void show() {
System.out.println("小猪快吃。。。。。");
}
};
pig.show();
pig.play();
Student stu=new Student(){
public void show(){
System.out.println("俺是小学生,嘻嘻嘻嘻");
}
};
stu.show();
}
}
interface Service{
void show();
}
abstract class Animal{
String name;
public void show(){
System.out.println("动物在吃。。。。");
}
public abstract void play();
}
class Student{
public void show(){
System.out.println("嘿嘿嘿嘿嘿嘿");
}
}