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 结尾

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PXE部署

    PXE部署笑洋仟博客园首页新随笔联系订阅管理随笔-51文章-0评论-0阅读-2177PXE高效批量网络装机阅读目录(Content)一、PXE概述 1、PXE(PrebooteXcutionEnvironment)的概念 2、PXE批量部署的优点 3、部署PXE远程安装服务 4、搭建PXE远程安装服务器 二、搭建PXE远程安装服务器的步骤 1、安装启用TFTP服务 2、安装启用DHCP服务  …

    2022年6月29日
    25
  • 网站的404错误页面制作方法[通俗易懂]

    网站的404错误页面制作方法[通俗易懂]网站的404错误页面怎么做?  网站的404错误页面怎么做呢?很多人学习完seo就对404错误页面的理解有所偏差,认为404错误页面只是为了SEO而存在,实际上,404错误页面不单只是为了seo而存在,它一共提出以下几点理念:  一、提供简明的问题描述,消除访客的挫败感。这个很好理解,告诉用户访问页面不存在,而不会是系统默认的错误页面。  二、提供合理的解决方案,辅助访客完成访问目标。

    2022年7月27日
    28
  • java 设置代理服务器_网络代理

    java 设置代理服务器_网络代理importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.*;importjava.util.Base64;publicclassTest{publicstaticvoidmain(String[]arg…

    2022年9月10日
    2
  • 计算机二级考试python考试大纲

    计算机二级考试python考试大纲全国计算机等级考试二级Python语言程序设计考试大纲(2018年版)基本要求1.掌握Python语言的基本语法规则。2.掌握不少于2个基本的Python标准库。3.掌握不少于2个Python第三方库,掌握获取并安装第三方库的方法。4.能够阅读和分析Python程序。5.熟练使用IDLE开发环境,能够将脚本程序转变为可执行程序。6.了解Python计算生态在以下方面(不限于)的主要第三方库名称:网络爬虫、数据分析、数据可视化、机器学习、Web开发等。考试内容一、Python语言基本语法元

    2022年10月19日
    1
  • bae7088d064a7707d735e9dcb7a7f092

    bae7088d064a7707d735e9dcb7a7f092XCL:iVBORw0KGgoAAAANSUhEUgAAA9kAAAFoCAIAAADM369EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3pr…

    2022年7月24日
    8
  • js除法取整数取余数_java中取余中的余数怎么取

    js除法取整数取余数_java中取余中的余数怎么取取整1.取整//丢弃小数部分,保留整数部分parseInt(5/2)  //22.向上取整//向上取整,有小数就整数部分加1Math.ceil(5/2)  //33.向下取整//向下取整,丢弃小数部分Math.floor(5/2)  //24四舍五入//四舍五入Math.round(5/2)  //3取余//取余6%4 …

    2022年4月20日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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