java基础——内部类
前言
内部类在 Java 里面算是非常常见的一个功能了,在日常开发中我们肯定多多少少都用过,这里总结一下关于 Java 中内部类的相关知识点和一些使用内部类时需要注意的点。
从种类上说,内部类可以分为四类:普通内部类、静态内部类、匿名内部类、局部内部类。我们来一个个看
一: 普通内部类:
public class Demo {
//内部类(普通)
class demo1{
public void fly(){
System.out.println("我是一只小鸟,遨游在蔚蓝的天空");
}
}
public static void main(String[] args) {
Demo.demo1 demo = new Demo().new demo1();
demo.fly();
}
}
调用内部类的方法须从外部调用如所示:
- Demo.demo1 demo = new Demo().new demo1();
二 ,静态内部类:
public class Demo {
//内部类(普通)
// class demo1{
// public void fly(){
// System.out.println("我是一只小鸟,遨游在蔚蓝的天空");
// }
// }
//静态内部类
static class demo2{
public void eat(){
System.out.println("我是只可爱的猫,喜欢吃鱼");
}
}
public static void main(String[] args) {
//内部类(普通)
// Demo.demo1 demo = new Demo().new demo1();
// demo.fly();
//静态内部类调用,直接调用即可
demo2 demo2 = new demo2();
demo2.eat();
}
}
三,局部内部类(顾明思议在方法内的类就是局部内部类)
public class Demo {
//内部类(普通)
// class demo1{
// public void fly(){
// System.out.println("我是一只小鸟,遨游在蔚蓝的天空");
// }
// }
// //静态内部类
// static class demo2{
// public void eat(){
// System.out.println("我是只可爱的猫,喜欢吃鱼");
// }
// }
//局部内部类
public void sleep(){
int a= 0;
System.out.println(a);
class demo3{
public void sle(){
System.out.println("吃饱了就犯困了,要睡觉了");
}
}
}
public static void main(String[] args) {
//内部类(普通)
// Demo.demo1 demo = new Demo().new demo1();
// demo.fly();
// //静态内部类调用,直接调用即可
// demo2 demo2 = new demo2();
// demo2.eat();
//
//局部内部类调用 这样只是把Demo类里的sleep方法调用出来
Demo demo = new Demo();
demo.sleep();
}
}
思考一个问题,此时Demo调用sleep方法我们得到结果是0,但是我们并不想要这个结果,而是要class demo3 里面的方法该怎么操作。增加如下操作:
public void sleep(){
int a= 0;
System.out.println(a);
class demo3{
public void sle(){
System.out.println("吃饱了就犯困了,要睡觉了");
}
}
demo3 demo3 = new demo3();
demo3.sle();
}
在看运行结果:
四: 匿名内部类
为了方便使用放开了demo2 静态内部类;