内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。
1.成员内部类
2静态内部类
3.局部内部类
4.匿名内部类
◆内部类可以直接访问外部类的私有变量
成员内部类
public class demo1 {
//外部类私有变量
private int age = 89;
//外部类方法
public void run(){
System.out.println("这是外部类");
}
//内部类
public class demo2{
//内部类方法
public void in(){
System.out.println("这是内部类");
}
//获得外部类的私有属性变量
public void getage(){
System.out.println(age);
}
}
}
public class test {
public static void main(String[] args) {
//把外部类new出来
demo1 demo1 = new demo1();
//把内部类new出来
demo1.demo2 demo2 = demo1.new demo2();
//调用内部类的方法
demo2.in();//这是内部类
//获得外部类的私有属性变量
demo2.getage();//89
}
}
静态内部类
public class demo1 {
//外部类私有变量
private int age = 89;
//外部类方法
public void run(){
System.out.println("这是外部类");
}
//被static修饰的就是静态内部类
public static class demo2{
//内部类方法
public void in(){
System.out.println("这是内部类");
}
//获得外部类的私有属性变量
// public void getage(){
// System.out.println(age);
// }
}
}
局部内部类
public class demo1 {
public void method(){
//局部内部类
class in{
public void in(){
}
}
}
}
匿名内部类
public class demo1 {
}
//匿名内部类
//一个Java文件中只能有一个public class,但是可以有多个class
class A{
}
匿名对象的使用
public class Test {
public static void main( String[] args) {
//没有名字初始化类,不用将实例保存在变量中
new Apple( ).eat();
}
}
class Applei{
public void eat(){
system.out. println( "1");
}
}