[JAVA学习笔记] 21天学习挑战赛第二周 面向对象编程(二)包与内部类

​写在前面

作者简介:鲸海鹿林

博客主页:鲸海鹿林的主页

警醒语句:keep calm & carry on

 本文简介:介绍了Java的包创建与引用,内部类的分类以及特点等内容。

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…

活动地址:CSDN21天学习挑战赛


​写在前面

内部类

静态内部类

 局部内部类与匿名内部类

 局部内部类

 匿名内部类


定义

一组具有共性的类的集合,习惯称为类库。

特点

同一个包中不能存在两个同名的类。

缺省时,系统会为每个源文件创建一个无名包,这个源文件中定义的所有类都隶属于该无名包,类之间可以互相访问非私有的域和方法,但无名包中的类无法被其他包中的类引用。

格式

package 包名;//必须放在程序的开头,且一个java文件中最多包含一个包

引用

  • 使用import关键字在类前引入所需的类,如:

        import java.util.Date;

  • 使用import关键字在类前引入所需的类所在的包,如:

        import java.util.*;

  • 在引用类时使用包名作为前缀,如:

        java.util.Date date = new java.util.Date();

作用

包可以规定类的成员的引用范围,通过访问修饰符来实现信息隐藏。 

想要了解权限修饰符的小伙伴,请移步

[JAVA学习笔记] 21天学习挑战赛第二周 面向对象编程(一)修饰符

内部类

定义

内部类也称为内嵌类或嵌套类,指嵌套在一个类中的类,而包含内部类的那个类被成为外层类。

tip:内部类的命名不能与外层类相同。

关系

内部类的使用依托于外层类,是逻辑上的所属关系,与包的限制类似。

作用

主要用于实现没有通用意义的功能逻辑。

分类

以是否被static关键字修饰分为静态内部类与成员类。

特点

内部类可以访问外层类的成员,内部类与外层类的其他成员一样,可以被访问修饰符修饰。

在外层类中通过定义内部类的实例对象成员,在实例方法中创建内部类的实例访问内部类。

在内部类中使用this关键字指向的是内部类,若想指向外层类则需使用[外部类名.this]。

静态内部类

内部类被static关键字修饰后,不需要实例化外层类便可直接通过[外层类名.内部类名]直接访问。

静态内部类无法访问外层类的非静态成员。

 局部内部类与匿名内部类

 局部内部类

定义

方法中也可以定义内部类,这种定义在方法中的类称为局部内部类。 

格式

public class Test
{
    public void method()
    {
        class Inner{
		    //TODO...
        }
    }   
}

特点

  1. 局部内部类作用范围为包含其的方法区域。
  2. 在局部内部类中可以访问外部类的所有成员。
  3. 局部内部类与局部变量一样,不能使用访问控制修饰符和static修饰符修饰。
  4. 局部内部类的成员(属性,方法,类)无法使用访问控制修饰符和static修饰符修饰。
  5. 局部内部类只能访问方法中定义的常量,遵循先定义后使用的原则。如果方法中的成员与外层类中的成员同名,则可以使用[外层类.this.成员名]的形式访问外层类中的成员。

 匿名内部类

定义

在创建对象的同时定义类的实现,但不规定类名,Java将其定位匿名内部类。

使用场景

只需使用一次的类(常用于事件驱动编程中)。 

格式

new 父类构造函数(参数列表) | 实现接口(){
      //匿名内部类的类体部分
}

特点 

 匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口。

匿名内部类不能是抽象类。

匿名内部类不能定义构造器。由于匿名内部类没有类名,所以无法定义构造器,但匿名内部类可以初始化块,可以通过初始化块来完成构造器需要完成的工作。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸海鹿林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值