Java中package关键字、权限修饰符、内部类、匿名内部类讲解

一、package关键字

1. package关键字概述及使用

  • package

    • 就是包,或者说就是文件夹,在包(文件夹)中对Java文件进行分类存放,整理

    • 作用:如同在一个文件夹中不能有同名的两个文件一样,在同一个包中也不能有同名的两个Java文件,那么包就很好的解决了这个问题,让同名的文件处于不同的包下就行了

  • 定义格式

    • package 要导入的包名;

    • 多级包:用.分隔开

  • 注意事项

    • package语句必须是程序的第一条可执行语句
    • package语句一个Java程序中只能有一个
    • 如果没有package语句,则默认表示无包名

2. import关键字概述及使用

  • import

    • 我们可以使用包的全路径进行不同包下类之间的访问,但是比较麻烦,这个时候就可以使用import关键字,将需要使用的类导入进来
    • 格式
      • import 包路径.类名;
        • 导入包下具体的类,推荐使用
      • 或import 包路径.*;
        • 导入包下的所有类

二、常见修饰符

1. 权限修饰符

  • 种类 + public(公开的)、 protected(受保护的)、 default(默认的)、 private(私有的)
  • 权限
修饰符/权限本类同包下(子类和无关类)不同包子类不同包无关类
private(私有的)YNNN
default (默认的)YYNN
protected (受保护的)YYYN
public (公开的)YYYY

2. 状态修饰符

  • 种类
    • static(静态的)、final(最终的)
  • 抽象修饰符
    • abstract(抽象的)
修饰符/权限成员变量成员方法
static静态的,类所有静态的,类所有
final不能被继承常量方法不能被重写
abstract抽象类抽象方法,没方法体

三、内部类

1. 内部类概述

  • 概念
    • 定义在另一个类中的类,称之为这个类的内部类
  • 分类
    • 成员内部类
      • 定义在类中方法外,在成员位置
    • 局部内部类
      • 定义在方法内部,在局部位置
  • 访问特点
    • 内部类访问外部类
      • 可以直接访问外部类的成员,包括私有的
    • 外部类访问内部类
      • 外部类访问内部类成员,必须创建对象

2. 成员内部类

  • 访问外部类
    • 直接访问
  • 访问内部类
    • 使用内部类对象访问
    • 外部类名.内部类名 对象名 = 外部对象名.内部对象名;
  • 成员内部类的修饰符
    • private
      • 保证数据的私有性及安全性
    • static
      • 为了方便的访问数据
      • 注意事项
        • 静态内部类访问的外部类成员必须是静态的
        • 成员方法可以是静态的也可以是非静态的
    • 访问静态成员内部类
      • 外部类名.内部类名 对象名 = new 外部类名.内部类名();

3. 局部内部类

  • 访问外部类
    • 直接访问
  • 访问内部类
    • 创建内部类对象,通过对象直接调用内部类的方法,来使用局部内部类的功能
  • 为什么局部内部类访问的局部变量要用final修饰
    • 因为对象比成员变量释放的迟,如果不用final修饰,局部变量在方法结束后就消失了,而此时局部内部类的对象可能还会使用局部变量,所以要用final修饰,存储在堆中,延长局部变量的生命期

4. 匿名内部类

  • 使用场景
    • 类或接口中,可以是抽象类
  • 什么是匿名内部类
    • 其实就是局部内部类的简写形式,可以理解为局部内部类的一个对象
    • 当匿名内部类只调用很少几次时使用
    • 也可以给匿名内部类命名,多次调用
  • 格式
    • new 类名或接口名(){
      重写方法;
      };
  • 作用
    • 使用内部类的成员(匿名内部类的成员变量和成员方法),和局部内部类的对象作用相似
    • 作为参数传递
  • 匿名内部类中的this关键字
    • 就是指的匿名内部类本身,或者说匿名内部类的对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值