Java学习之final与匿名内部类篇

Java学习之final与匿名内部类0x00前言续上几篇文章,得知子类继承父类后是可以在父类的基础上进行改写的,那么在程序中有些东西可能是不能让我们给轻易给改动的,那么Java给提供了final

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java学习之final与匿名内部类

0x00 前言

续上几篇文章,得知子类继承父类后是可以在父类的基础上进行改写的,那么在程序中有些东西可能是不能让我们给轻易给改动的,那么Java给提供了final关键字。

0x01 final使用

final:是不可改变的,可以用来修饰类、方法、变量。

修饰类格式:

final class Final {

}

修饰方法格式:

    public final void abc(){
        System.out.println("一个不可重写的的方法");
    }

修饰变量:

final int a =1;

被该关键字修饰的类不能被继承

被该关键字修饰的方法不能被重写

被该变量修饰的变量,不能被重新赋值。

被final修饰的常量名称,一般都有书写规范,所有字母都大写

0x02 权限修饰符

前面使用到最多的可能就是pubilc和private,在java中提供了四种访问权限,使用不同的访问权限修饰时,被修饰的内容有不同的访问权限。

public 公共的
prorected 受保护的
default  默认的
private  私有的

image

这里可以看到public是最大的权限,而private是最小的。

如果不加修饰符,默认是default。

0x03 内部类

格式:

public class Final{
    public class abc{
        
        
    }
}

内部类访问的特点:
内部类可以直接访问外部类的成员,包括私有方法。外部类要访问内部类的成员,必须创建内部类的对象。

创建内部类对象的格式:

外部类名.内部类型 对象名 = new 外部类型().new 内部类型();

定义的方式和实例化对象的写法类似。

内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类名
和$符号 。

匿名内部类

匿名内部类是内部类的简化写法。他的本质是一个带有具体实现父类或父类接口的匿名子对象。

在代码中比较常用的可能就是匿名内部类。
在使用到一个接口的时候需要做的几步操作,

1.定义实现类

2.重写父接口的方法

3.实例化实现类对象

4.调用重写后的方法

如果是只调用一次的话,那么就可以使用到匿名内部类。

前提条件是匿名内部类必须继承一个父类或者是父接口。

new 父类或者接口名(){
    //重写方法
    pubilc void method(){
        ...
    }
}

匿名内部类代码实现:

这里来定义一个父类:

public abstract class Fu {
    public abstract void fly();
    
}



main方法代码:

public class ZiMain {
    public static void main(String[] args) {

        Fu f = new Fu() {
            @Override
            public void fly() {
                System.out.println("会飞");
            }
        };
        f.fly();
    }
}

0x04 结尾

一篇文章水完了,在里面用到比较多的可能就是匿名内部类了,如多线程创建的时候,因为线程不能被多次调用,可以直接使用匿名内部类进行创建。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119955.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 计算机维修技术在线阅读,西南大学19秋[0240] 计算机维修技术在线作业

    计算机维修技术在线阅读,西南大学19秋[0240] 计算机维修技术在线作业0240计算机维修技术9A’Op*F2E1.[单选题]评定主板的性能首先要看()。:O$|(q$E’u奥鹏作业答案可以联系QQ761296021+e:|*z)D8i7OA.C.CPU”W”l.}0Z)U$z,J(hB.内存8x&U$e”[0i.zC.主板结构9I/\(k)s:J’G7l/UD.主芯片组!…

  • WhatsAPP通讯协议端对端加密人工智能[通俗易懂]

    WhatsAPP通讯协议端对端加密人工智能[通俗易懂]本文是一个以whatsapp为案例的,针对端对端聊天加密通讯协议整理的一个学习笔记,仅供大家学习。Signalprotocol是真正的端到端的通讯加密协议,号称是世界上最安全的通讯协议,任何第三方包括服务器都无法查看通讯内容。全篇都是围绕着Signalprotocol进行梳理和解释,学习的内容大致分为三个大部分:1、术语解析2、了解5577850怎么来的3、WhatsAPP的通讯流程。术语解析要了解整个的加密通讯协议,首先就是要了解一些不常见的密钥交换方法和算法,可以先看第二部分,

  • 字符串常量池有什么用_字符串常量池在堆中还是方法区

    字符串常量池有什么用_字符串常量池在堆中还是方法区看网上的介绍,对于字符串常量池中到底保存的是字符串对象,还是字符串对象的引用,众说纷纭…看jdk1.8对intern()的说明.Whentheinternmethodisinvoked,ifthepoolalreadycontainsastringequaltothisStringobjectasdeterminedbytheequals(…

  • python标识符以什么开头_哪个不是python合法标识符

    python标识符以什么开头_哪个不是python合法标识符python标识符命名规范介绍发布时间:2020-05-2311:03:48来源:亿速云阅读:146作者:Leahpython的标识符是什么?怎样命名?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。Python中标识…

  • 倾斜摄影当中重叠度、传感器尺寸、焦距等参数问题梳理[通俗易懂]

    倾斜摄影当中重叠度、传感器尺寸、焦距等参数问题梳理[通俗易懂]1序随着无人机的快速发展,倾斜摄影行业迎来了一个新的浪潮,越来越多的人利用无人机从事测绘行业的相关数据采集工作。在数据采集过程当中遇到了各种各样的问题,导致飞出来的数据不达标,无法完成模型重建工作。这里根据自己的接触对倾斜摄影过程当中重叠度、传感器、焦距、飞行速度、拍照间隔等参数以及他们之间的相互关系做一个简单的梳理。如有不当或错误之处敬请指正。本文很多内容参考自【Sm

  • 手把手实现Java图书管理系统(附源码)_图书管理系统项目背景

    手把手实现Java图书管理系统(附源码)_图书管理系统项目背景基于JavaWeb开发的图书管理系统实现功能数据库运行环境图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。图书馆信息管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点很大程度的提高了管理图书馆信息的工作效率,节省了大量资金,方便了师生对图书的借阅和归还。图书馆管理系统代表了图书馆管理的信息化,不仅是体现图书馆现代化形

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号