【Java】内部类的定义

x33g5p2x  于2021-11-22 转载在 Java  
字(1.0k)|赞(0)|评价(0)|浏览(389)

一、前言

前面我们学习了一个小的项目,现在我们来学习新的知识点,关于内部类的描述,其实

顾名思义就是在类的内部有一个类,简称套娃类(个人观点)

二、内部类

一个类定义在另一个在一个类的内部叫内部类。

  • 内部类可以直接访问外部类的私有和非私有成员,而外部类不能直接访问内部类
  • (包括所有外部类成员)
  • 外部类成员要访问内部类是,必须创建内部类对象。
  • 外部类通过创建对象也可以方法内部类的私有和非私有成员

语法格式:

  1. public class A{
  2. 修饰符 class B{}
  3. }

static修饰内部类

static不能直接修饰类,但是可以修饰内部类,被static修饰的内部类就变成了普通类

即只能通过创建外部类对象去访问外部类,不能直接访问外部类。

如:

内部类未被static修饰时:

  1. public class Outer{
  2. private int num=10;
  3. public class Inner{
  4. public void show(){
  5. System.out.println(num);//直接使用
  6. }
  7. }
  8. }

内部类被static修饰后

  1. public class Outer{
  2. private int num=10;
  3. public class Inner{
  4. Outer o=new outer();
  5. public void show(){
  6. System.out.println(o.num);//创建外部类对象调用使用
  7. }
  8. }
  9. }

演示操作:

  1. public class OuterClass {
  2. private int num=20;
  3. public static void main(String[] args) {
  4. OuterClass oo=new OuterClass();
  5. oo.show1();
  6. }
  7. public class InnerClass{
  8. private int num2=10;
  9. public void show(){
  10. System.out.println("这是一个内部类的show");
  11. System.out.println(num);//内部类直接访问外部类私有
  12. //访问外部类成员方法
  13. }
  14. }
  15. public void show1(){
  16. InnerClass i=new InnerClass();
  17. i.show();//通过创建对象访问内部类成员方法
  18. System.out.println(i.num2);//外部类创建对象访问内部类私有
  19. System.out.println("这是一个外部类show");
  20. }
  21. }

结果:

相关文章

最新文章

更多