【Java】内部类的定义

举报
执久呀 发表于 2022/01/14 14:35:25 2022/01/14
【摘要】 ​ 目录一、前言二、内部类语法格式:static修饰内部类内部类未被static修饰时:内部类被static修饰后演示操作:一、前言前面我们学习了一个小的项目,现在我们来学习新的知识点,关于内部类的描述,其实顾名思义就是在类的内部有一个类,简称套娃类(个人观点)二、内部类一个类定义在另一个在一个类的内部叫内部类。内部类可以直接访问外部类的私有和非私有成员,而外部类不能直接访问内部类(包括所有...

 目录

一、前言

二、内部类

语法格式:

static修饰内部类

内部类未被static修饰时:

内部类被static修饰后

演示操作:


一、前言

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

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

二、内部类

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

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

语法格式:

public class A{
 
  修饰符 class B{}

}

static修饰内部类

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

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

如:

内部类未被static修饰时:

public class Outer{
     private  int num=10;

     public class Inner{
  
       public void show(){
         System.out.println(num);//直接使用
      }
    }
}

内部类被static修饰后


public class Outer{
     private  int num=10;

     public class Inner{
    Outer o=new outer();
       public void show(){
         System.out.println(o.num);//创建外部类对象调用使用
      }
    }
}


演示操作:


public  class OuterClass {
    private int num=20;
    public static void main(String[] args) {
        OuterClass oo=new OuterClass();
        oo.show1();
    }
    public  class InnerClass{

        private int num2=10;
        public void show(){

            System.out.println("这是一个内部类的show");
            System.out.println(num);//内部类直接访问外部类私有
           //访问外部类成员方法
        }
    }
    public  void show1(){
        InnerClass i=new InnerClass();
        i.show();//通过创建对象访问内部类成员方法
        System.out.println(i.num2);//外部类创建对象访问内部类私有
        System.out.println("这是一个外部类show");
    }
}

结果:


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。