JAVA基础-内部类
程序员文章站
2022-06-14 21:54:29
/** * 定义:将一个类A定义在类B里面,A就称之为内部类,B为外部类 * 使用场景:内部事物脱离外部事物无法独立使用得时候用 * 例如:人里面有一颗心脏,电脑里面有一个处理器 * 分类:①静态内部类(static修饰的内部类) * ②实例内部类(没有static修饰的内部类) * ③局部内部类(类定义在方法里面) * ④匿名内部类(也是定义在方法里面,或者是可执行代码中) *///静态内部类案例:public class Demo01 { //...
/**
* 定义:将一个类A定义在类B里面,A就称之为内部类,B为外部类
* 使用场景:内部事物脱离外部事物无法独立使用得时候用
* 例如:人里面有一颗心脏,电脑里面有一个处理器
* 分类:①静态内部类(static修饰的内部类)
* ②实例内部类(没有static修饰的内部类)
* ③局部内部类(类定义在方法里面)
* ④匿名内部类(也是定义在方法里面,或者是可执行代码中)
*/
//静态内部类案例:
public class Demo01 {
//外部类成员变量
private static String student = "小明";
//这是内部类
private static class Inner{
//内部类的属性
private String name;
//有参构造器
public Inner(String name) {
this.name = name;
}
//定义一个方法去访问外部类的成员变量
public void getStudent(){
System.out.println(this.name);
System.out.println(student);
}
}
public static void main(String[] args) {
//因为我都在一个类里..其实Demo01可以省略了..
Demo01.inner boy = new Demo01.inner("小花");
//这里调用方法
boy.getStudent();
//最后会输出:小花,小明,说明内部类可以访问到外部类的变量
}
}
//实例内部类案例:
public class Demo02 {
//实例内部类没有static修饰
public class Inner{
private String name;
public Inner(String name) {
this.name = name;
}
public void showName(){
System.out.println(this.name);
}
}
public static void main(String[] args) {
Demo02.Inner student = new Demo02().new Inner("小花");
//这里就输出小花
student.showName();
}
}
//局部内部类案例:
public class Demo03 {
//这是一个方法
public void showName(){
//方法里面的类
class Student{
private String name = "小花";
public void getName(){
System.out.println(name);
}
}
Student student = new Student();
student.getName();
}
public static void main(String[] args) {
Demo03 demo03 = new Demo03();
demo03.showName();
}
}
//匿名内部类案例:
public interface Demo04 {
public abstract void run();
}
class Demo05 {
public static void main(String[] args) {
new Demo04() {
public void run() {
System.out.println("跑起来");
}
}.run();
}
}
本文地址:https://blog.csdn.net/MJH_JASON/article/details/107365407