学习JAVA的第九天(基础)

目录

接口

定义

使用 

特点 

注意事项

内部类 

分类 

内部类的访问特点 

成员内部类

格式

获取成员内部类对象方式   

静态内部类

格式

局部内部类

特点

匿名内部类

格式

格式解释 

作用


接口

                接口可以说是一种规则,是对行为的抽象

定义

public interface 接口名 {}

使用 

                接口和类是实现关系,用implements关键字表示

public class 类名 implements 接口名 {}

                接口和类的实现关系,可以单实现,也可以多实现 

public class 类名 implements 接口1,接口2 {}

                 实现类可以在继承一个类时实现多个接口

public class 类名 extends 父类 implements 接口1,接口2 {}

特点 

                成员变量只能是常量

                没有构造方法

                JDK7以前,只能定义抽象方法

                JDK8:接口中可以定义有方法体的方法(默认,静态)

                JDK9:接口可以定义私有方法

注意事项

                接口不能实例化

                接口的子类(实现类)要么重写接口中所有抽象方法,要么是抽象类

                接口和接口是继承关系,可以单继承,也可以多继承

内部类 

                在一个类里面,再定义一个类

                   

分类 

  • 成员内部类
  • 静态内部类
  • 局部内部类
  • 匿名内部类

内部类的访问特点 

                内部类可以直接访问外部类成员,包括私有的

                外部类要访问内部类的成员,需要创建对象

成员内部类

                写在成员位置的,属于外部类的成员

格式

public class 外部类 {class 内部类{}
}

获取成员内部类对象方式   

                当成员内部类被private修饰时。在外部类编写方法,对外提供内部类对象

                当成员内部类被非私有修饰时,直接创建对象

静态内部类

                成员内部类的一种,静态内部类只能访问外部类的静态方法和静态变量,如果要访问非静态的需要创建对象

格式

public class 外部类 {static class 内部类{}
}

局部内部类

                将内部类定义在方法里面就叫做局部内部类,类似方法里的局部变量

特点

                外界无法直接使用,需要在方法内创建对象并使用

                可以直接访问外部类成员,也可以访问方法内的局部变量

匿名内部类

              隐藏名字的内部类,可以写在成员位置,也可以写在局部位置

格式

new 类名或接口名(){重写方法;
};

格式解释 

                匿名内部类包含了继承或实现,方法重写,创建对象。整体是一个类的子类或者接口的实现类对象                    

作用

                如果实现类只使用一次,就可以使用匿名内部类简化代码

                        

                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构界的幻神(First)----链表

一.链表的概念 链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表的结构类似于一条链子,因此得名。 相比于传统的数组,链表具有以下特点: 1. 动态增长: 链表的…

J17资本合伙人SKY LAI确认出席Hack .Summit() 2024区块链开发者盛会

J17资本合伙人SKY LAI确认出席由 Hack VC 主办,并由 AltLayer 和 Berachain 联合主办,与 SNZ 和数码港合作,由 Techub News 承办的Hack.Summit() 2024区块链开发者盛会。 J17资本合伙人SKY LAI负责管理公司的Web3基金,投资领域涵盖…

vivo 在离线混部探索与实践

作者:来自 vivo 互联网服务器团队 本文根据甘青、黄荣杰老师在“2023 vivo开发者大会"现场演讲内容整理而成。 伴随 vivo 互联网业务的高速发展,数据中心的规模不断扩大,成本问题日益突出。在离线混部技术可以在保证服务质量的同时&…

第104讲:数据库分库分表的意义与实现策略(MyCat)

文章目录 1.分库分表的目的2.分库分表的拆分策略2.1.垂直拆分2.2.水平拆分 3.Mycat水平拆分的分片规则 1.分库分表的目的 互联网中的应用程序,随着公司的发展,应用系统的使用人数、数据量都再持续增长,数据库层面就会产生一定的瓶颈。 如果…

Transformer之Residuals Decoder

The Residuals 我们需要提到的编码器架构中的一个细节是,每个编码器中的每个子层(self-attention,,ffnn)周围都有一个残余连接,然后是 layer-normalization 步骤。 如果我们要可视化向量和与 self attention 相关的 layer-norm 运算&#x…

基于视觉识别的自动采摘机器人设计与实现

一、前言 1.1 项目介绍 【1】项目功能介绍 随着科技的进步和农业现代化的发展,农业生产效率与质量的提升成为重要的研究对象。其中,果蔬采摘环节在很大程度上影响着整个产业链的效益。传统的手工采摘方式不仅劳动强度大、效率低下,而且在劳…

图像处理基础——频域、时域

傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。 一、什么是频域 时域 时域是信号在时间轴随时间变化的总体概括;频域是把时域波形的表达式做傅立叶等变化得到复频域的表达式,所画出的波形就是频谱图&a…

golang 函数式编程库samber/mo使用: IO

golang 函数式编程库samber/mo使用: IO 如果您不了解samber/mo库, 请先阅读第一篇 Option 在函数式编程中,副作用和纯函数是最常见的概念。 IO用来封装IO这类副作用。 什么是副作用 副作用是在计算结果的过程中,改变了系统状态…

Docker技术概论(8):Docker Desktop原生图形化管理

Docker技术概论(8) Docker 原生图形化管理 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:…

字节序转换函数

目录 为什么要字节序转换?网络协议指定通讯字节序为大端字节序转换函数主机字节序转换为网络字节序hton1 (host to network l是length指长整型)htons (host to network s是short指短整型)两个函数的代码案例 网络字节序转主机字节序ntoh1ntohs 为什么要字节序转换&a…

【报名指南】2024年第九届数维杯数学建模挑战赛报名全流程图解

1.官方报名链接: 2024年第九届数维杯大学生数学建模挑战赛http://www.nmmcm.org.cn/match_detail/32 2.报名流程(电脑与手机报名操作流程一致) 参赛对象为在校专科生、本科生、研究生,每组参赛人数为1-3人(指导老师不…

【MySQL】数据查询——DQL基本数据库查询

目录 查询语法1. 查询表中所有的数据行和列,采用“*”符号2. 查询表中指定列的数据。3. 在查询中使用别名,使用“AS”关键字。4. 在查询中使用常量列:如果需要将一些常量的默认信息添加到输出结果中,以方便统计或计算。可以使用常…

解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(一)

本系列文章简介: 本系列文章将深入探究Spring Cloud LoadBalancer的工作原理和应用场景,并揭示其背后的神奇之处。通过解密这个魔法密卷,我们将能够了解如何构建具有高效、可靠性的负载均衡系统,以及如何在微服务架构中实现优化的…

Unity 预制体与变体

预制体作用: 更改预制体,则更改全部的以预制体复制出的模型。 生成预制体: 当你建立好了一个模型,从层级拖动到项目中即可生成预制体。 预制体复制模型: 将项目中的预制体拖动到层级中即可复制。或者选择物体复制粘贴。…

Shell之字符处理

一、字符处理 1.1 cut命令 命令格式: cut [选项] 文件名 选项: -f 列号: 提取第几列-d 分隔符: 按照指定分割符进行分割,默认的分割符是制表符,注意分割符不能使用空格。示例: # 每个字段已…

如何选择垃圾收集器安全点安全区

如何选择垃圾收集器&安全点&安全区 如何选择垃圾收集器 优先调整堆的大小让服务器自己来选择如果内存小于100M,使用串行收集器如果是单核,并且没有停顿时间的要求,串行或JVM自己选择如果允许停顿时间超过1秒,选择并行或…

AWS ECS Fargate禁止公网访问

当在AWS ECS(Elastic Container Service)上运行任务时,默认情况下,ECS会自动为每个任务分配一个公有IP地址。然而,并不是所有的情况下都需要或希望任务具有公有IP地址(NAT或公网拉取镜像需要)。在某些情况下,你可能希望ECS任务只能通过私有IP地址访问,并且不暴露到公共网…

Jenkins自动化部署之流水线模式部署

文章目录 任务类型Pipeline流水线项目声明式的Pipeline脚本式Pipeline 示例脚本生成Tools配置示例 高级Pipeline Script from SCM 任务类型 在Jenkins中,有不同类型的任务(项目)适用于不同的构建需求。以下是一些常见的Jenkins任务类型&…

Vue.js 案例

Vue.js 是一个构建数据驱动的 web 界面的渐进式框架。它是目前前端开发领域非常热门的技术之一,因为它易于上手,功能强大,且与其他库或已有项目整合度高。 下面是一个简单的 Vue 项目实战步骤,帮助你了解如何使用 Vue.js 来创建一…

MYSQL03高级_新增用户、授予权限、授权底层表结构、角色理解

文章目录 ①. 登录服务器操作②. 用户的增删改③. 修改用户密码④. MySQL8密码管理⑤. 权限列表及原则⑥. 授予查看回收权限⑦. 底层权限表操作⑧. 角色的理解 ①. 登录服务器操作 ①. 启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下: mysql –h hostname|hos…