JavaSE(五)——修饰符、内部类、匿名内部类

1. 方法参数及返回值类型

特点:
(1)当一个方法的形参或者返回值类型要一个类类型时,就传一个该类的对象。
(2)当一个方法的形参或者返回值类型要一个抽象类类型时,就传一个继承该抽象类的子类对象。
(3)当一个方法的形参或者返回值类型要一个接口类型时,就传一个实现该接口的子类对象。

  • 实例
    在这里插入图片描述

2. 修饰符总结

2.1 修饰类

(1)public :默认修饰符,一个java的源文件中只能有一个被public修饰的类,且此类名与文件名相同。
(2)final:被修饰的类不能被继承。
(3)abstract:可以有构造方法,但不能实例化,只能由其子类进行实例化。抽象类的子类要么是抽象类,要么重写父类中的所有抽象方法。

2.2 修饰成员变量

(1)private:被修饰的成员只能在本类中访问,需提供对应的getXX()和setXX()方法。
(2)static :被修饰的成员变量属于类,被类中的所有对象享用。
(3)final :被修饰的变量为常量,不能重新赋值。

2.3 修饰成员方法

(1)private:被修饰的成员方法只能在本类中访问。
(2)static:被修饰的成员方法可通过类名直接调用。格式:类名.方法名();静态方法只能访问静态成员;静态方法能被继承,不能被重写。
(3)final:被修饰的成员方法能被继承,但不能被重写。
(4)abstract:被修饰的成员方法没有具体的方法体,子类必须重写父类的所有抽象方法来具体实现各自的功能。

2.4 接口的成员

(1)成员变量:只能是静态的常量。默认修饰符:public static final
(2)成员方法:只能是抽象方法。默认修饰符:public abstract

3. 内部类

划分:
内部类分为成员内部类和局部内部类。内部类也会生成.class文件。

特点
(1)内部类可以访问外部类的所有成员,包括私有的。
(2)外部类若要访问内部类的成员,需要创建内部类对象。格式:外部类类名.内部类类名 对象名=new 外部类类名().new 内部类类名()
(3)内部类如果被private修饰,则无法创建其对象
(4)内部类如果被static 修饰,则外部创建对象的格式发生改变,格式:外部类类名.内部类类名 对象名=new 外部类类名.内部类类名()
(5)当局部内部类去访问外部类的局部变量时,该成员变量必须是final 修饰

一个内部类对象可以访问创建它的外部类对象的内容,内部类如果不是 static 的,那么它可以访问创建它的外部类对象的所有属性;内部类如果是 static 的,即为 nested class,那么它只可以访问创建它的外部类对象的所有 static 属性。

什么时候使用内部类?
如果一个事物里包含着其他事物,其他事物,可以创建一个内部类。

3.1 成员内部类

定义在外部类中的成员位置,与类中的成员变量相似,可通过外部类对象进行访问。
在这里插入图片描述
内部类可以使用外部类的成员,包括私有成员。但是外部类要使用内部类的成员,必须建立内部类变量。

3.2 局部内部类

定义:在方法里面有一个内部类。

在这里插入图片描述
只有在内部类所属的方法中创建内部类对象,方可访问局部内部类。而测试类中只需要创建外部类对象,然后调用外部类方法即可。

  • 实例
    在这里插入图片描述

  • 运行结果
    在这里插入图片描述

4. 匿名内部类

4.1 定义

是一个继承了某个类或是实现某个接口的子类对象,其本质上是一个对象。

4.2 格式

在这里插入图片描述
注意:最后要加分号,表示一个子类对象的建立,必须与父类有继承关系,且匿名内部类只能写在方法中。

  • 实例
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述

4.3 应用

常用于作为参数传递或作为返回值返回

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值