关键字详解

1.用于定义访问权限修饰符的关键字

面向对象程序三大特性:封装、继承、多态。

1.1 访问权限符 

Java 中主要通过类和访问权限来实现封装: 类可以将数据以及封装数据的方法结合在一起 ,更符合人类对事物的认知,而访问权限用来控制方法或者字段能否直接在类外使用 Java 中提供了四种访问限定符:

比如:
public :可以理解为一个人的外貌特征,谁都可以看得到
default: 对于自己家族中 ( 同一个包中 ) 不是什么秘密,对于其他人来说就是隐私了
private :只有自己知道,其他人都不知道
说明
protected 主要是用在继承中
default权限指:什么都不写时的默认权限
访问权限除了可以限定类中成员的可见性,也可以控制类的可见性

1.1.1 protected 关键字

为了实现封装特性, Java 中引入了访问限定符,主要限定:类或者类中成员能否在类外或者其他包中被访问。  

1.2 用于定义类、函数、变量修饰符的关键字

1.2.1 static修饰成员变量

Java 中,被 static 修饰的成员,称之为静态成员,也可以称为类成员,其不属于某个具体的对
象,是所有对象所共享的
static 修饰的成员变量,称为静态成员变量 ,静态成员变量最大的特性: 不属于某个具体的对象,是 所有对象所共享的
【静态成员变量特性】
1. 不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中
2. 既可以通过对象访问,也可以通过类名访问,但一般更推荐使用类名访问
3. 类变量存储在方法区当中
4. 生命周期伴随类的一生 ( 即:随类的加载而创建,随类的卸载而销毁 )

1.2.2 final 关键字

final关键可以用来修饰变量、成员方法以及类。

1. 修饰变量或字段,表示常量 ( 即不能修改 )
2. 修饰类:表示此类不能被继承
3. 修饰方法:表示该方法不能被重写 ( 后序介绍 )

1.2.3 abstract关键字

在打印图形例子中, 我们发现, 父类 Shape 中的 draw 方法好像并没有什么实际工作, 主要的绘制图形都是由 Shape的各种子类的 draw 方法来完成的. 像这种没有实际工作的方法, 我们可以把它设计成一个 抽象方法(abstract method), 包含抽象方法的类我们称为 抽象类(abstract class)

1.在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。

注意:抽象类也是类,内部可以包含普通方法和属性,甚至构造方法

2.抽象类特性

  • 抽象类不能直接实例化对象
  • 抽象方法不能是 private 的
  • 抽象方法不能被final和static修饰,因为抽象方法要被子类重写
  • 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用 abstract 修饰
  •  抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类
  • 抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量

1.3 用于定义类与类之间关系的关键字

1.3.1 extends

继承

1.3.2 implements

接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。
在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。

1.接口语法规则
public interface 接口名称{
// 抽象方法
public abstract void method1(); // public abstract 是固定搭配,可以不写
public void method2();
abstract void method3();
void method4();
// 注意:在接口中上述写法都是抽象方法,跟推荐方式4,代码更简洁
}

提示:
1. 创建接口时, 接口的命名一般以大写字母 I 开头.
2. 接口的命名一般使用 "形容词" 词性的单词.
3. 阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性.

2.接口使用

接口不能直接使用,必须要有一个"实现类"来"实现"该接口,实现接口中的所有抽象方法。 

public class 类名称 implements 接口名称{
// ...
}

注意:子类和父类之间是extends 继承关系,类与接口之间是 implements 实现关系。

3.接口特性
  • 接口类型是一种引用类型,但是不能直接new接口的对象 
  •  接口中每一个方法都是public的抽象方法, 即接口中的方法会被隐式的指定为 public abstract(只能是public abstract,其他修饰符都会报错)
  • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现
  • 重写接口中方法时,不能使用默认的访问权限
  • 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量
  • 接口中不能有静态代码块和构造方法
  • 接口虽然不是类,但是接口编译完成后字节码文件的后缀格式也是.class
  • 如果类没有实现接口中的所有的抽象方法,则类必须设置为抽象类
  • jdk8中:接口中还可以包含default方法。

注意:

在Java中,类和类之间是单继承的,一个类只能有一个父类,即Java中不支持多继承,但是一个类可以实现多个接口。 

继承表达的含义是 is - a 语义, 而接口表达的含义是 具有 xxx 特性 

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

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

相关文章

5月15日,机器人任务挑战赛(无人协同系统)第二期培训即将开启!

一.大赛培训通知 本月起,卓翼飞思实验室将针对机器人任务挑战赛(无人协同系统)赛项内容开启赛事培训计划,采用“线上线下”相结合的培训模式,围绕赛事关键技术,让您轻松应对比赛。本期培训为第二期&#x…

Go微服务: 日志系统ELK核心架构设计

微服务日志系统建设 1 )为什么需要日志系统 业务发展越来越庞大,服务器越来越多各种访问日志,应用日志,错误日志量越来越多,无法管理开发人员排查问题,需要到服务器上查日志 2 )Elastic Stack…

惠普打印机无线网络连接设置

休息一下,灌个水。这次没多少内容,具体步骤惠普官网上都有,唯一增加的是对安装过程中踩的坑做了一个说明。 一.打印机无线网络连接设置步骤 惠普打印机设置无线网络连接,共16个步骤。 1. 在电脑上打开任意浏览器&am…

HAProxy系列文章二《Patroni+ETCD+PG14+HAProxy的安装部署》

瀚高数据库 目录 文档用途 详细信息 文档用途 本文主要介绍Patroni架构下单点HAProxy的安装部署,通过单点HAProxy实现数据库的负载均衡。本文为HAProxy系列文章之一,其他相关文章请点击文档下方的相关文档链接进行详细查看,文章内不在赘述。…

Spring MVC(四) 数据校验

在开发过程中有一环必不可少的部分就是数据校验,用户在页面中填写的数据通过表单提交时,前端的JS可以做一些是否合法性的验证,比如是否为空、两次密码是否一致、格式是否正确等等验证。当数据到了后台控制器,为了确保程序的健壮性…

内网环境ubuntu设置静态ip、DNS、路由,不影响网络访问

内网环境通常是有线的,通过服务器的ip、mac、dns地址访问网络才生效的,如果ip地址变了,就不能访问网络了。 如果你的ip地址变了,或者要防止ip变更影响网络访问,就要设置 1、依次点击右上角的电源-设置,在打…

公司里的“卷王”,是主动卷还是迫于无奈?

先来唠唠 “卷” 这个词是近几年流行起来的网络用语,它是内卷的简化形式,“内卷”本来是一个名不见经传的普通词语,经网络流传,很多人就用其来指代非理性的内部竞争或“被自愿”竞争。 在现代职场,有一群人被戏称为&…

三分钟快速上手SpringSecurity框架

导入依赖框架 web 框架(spring-boot-starter-web) <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> springSecurity 框架(spring-boot-starter-security) <de…

基于单片机的空气质量检测系统设计(51+4G版)-设计说明书

设计摘要&#xff1a; 本设计是基于单片机的空气质量检测系统设计涉及以下主要功能&#xff0c;旨在监测甲烷和一氧化碳的浓度&#xff0c;并在浓度过高时采取相应措施&#xff0c;以确保室内空气质量的安全。该系统使用传感器对甲烷和一氧化碳的浓度进行检测。传感器将收集到…

人物介绍模板 PSD 源文件免费获取

免费获取 下载链接在最后&#xff01; 下载链接在最后&#xff01; 下载链接在最后&#xff01; 下载链接在最后&#xff01; 下载链接在最后&#xff01; 链接&#xff1a;https://pan.baidu.com/s/1sq3e6djMdZt76Sh_uqVxWg 提取码&#xff1a;naun

AniPortrait详细讲解以及完整搭建流程(有问题留言)

AniPortrait是一款真实感人像动画的音频驱动合成的AI程序。 下面是它的github源码: GitHub - Zejun-Yang/AniPortrait: AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait AnimationAniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animati…

TiDB学习1:TiDB体系架构概览

目录 1. TiDB体系结构 2. TiDBsever 3. TiKV 4. PD(Placement Driver) 5. TiFlash 1. TiDB体系结构 水平扩容或者缩容金融级高可用实时 HTAP云原生的分布式数据库兼容MySQ 5.7 协议 2. TiDBsever 处理客户端的连接SQL语句的解析和编译关系型数据与 kv 的转化(insert语句)S…

线上3D博物馆搭建简单吗?有何优势?有哪些应用场景?

随着科技的飞速发展&#xff0c;传统的博物馆参观方式正在经历一场前所未有的变革&#xff0c;在科技的“加持”下&#xff0c;不少博物馆凭借强大的技术、创意和美学实践&#xff0c;频频“出圈”&#xff0c;线上3D博物馆逐渐崛起&#xff0c;这不仅丰富了人们的文化体验&…

C++|多态性与虚函数(1)功能绑定|向上转换类型|虚函数

目录 什么是多态性&#xff1f; 概念 分类 向上类型转换 功能的早绑定和晚绑定 绑定 绑定与多态的联系 编译时多态&#xff08;功能的早绑定&#xff09; 运行时多态&#xff08;功能的晚绑定&#xff09; 一般而言 实现功能晚绑定——虚函数 虚函数定义的说明 什么…

springboot jar包下config logback外配置文件不生效

描述 与jar 包同级的config目录下放置配置文件 检查1 确定配置配置文件名称为logback-spring.xml 检查2 确定logback-spring.xml 内容正确 检查3 开发环境为 生产环境&#xff08;外配置环境下&#xff09;

寻求发展+兼顾陪读|企业高管赴美国乔治梅森大学做访问学者

E经理拟去美国访学&#xff0c;想达到3个目的&#xff1a;结合本专业方向&#xff0c;扩展至跨学科研究领域&#xff1b;考察市场&#xff0c;寻求新的发展契机&#xff1b;携孩子出国读书&#xff0c;兼顾陪读&#xff0c;并希望尽早出国。最终我们为其落实的乔治梅森大学访问…

会员网站如何创建具有不同仪表盘结构的用户帐户页面

用户帐户页面是中央用户仪表盘&#xff0c;用户可以在其中添加和编辑信息、发布和编辑帖子以及保存收藏夹项目。本教程介绍如何使用“内容”和“重写”模板模式设置帐户页面、为帐户页面创建子页面以及设置个人资料菜单等。 在本教程中&#xff0c;我们将介绍如何使用招聘网站…

PSAI超强插件来袭:一键提升设计效率!

无需魔法&#xff0c;直接在PS中完成图生图、局部重绘、线稿上色、无损放大、扩图等操作。无论你是Windows还是Mac用户&#xff0c;都能轻松驾驭这款强大的AI绘图工具&#xff0c;这款PSAI插件让你的设计工作直接起飞&#xff01; 在之前的分享中&#xff0c;我为大家推荐过两…

Wiley数据库文献哪里比较全?去哪里下载比较高效

Wiley出版社1807年创建于美国&#xff0c;是一家具有超过200年历史的全球知名的出版机构&#xff0c;面向专业人士、科研人员、教育工作者、学生、终身学习者提供必需的知识和服务。 Wiley及旗下的子品牌出版了超过500位诺贝尔奖得主的作品。Wiley Online Library为全学科期刊全…

价格战开卷!字节发布豆包大模型,比行业便宜99.3%

豆包大模型正式亮相 5月15日&#xff0c;在2024春季火山引擎Force原动力大会上&#xff0c;字节跳动自研豆包大模型正式亮相。 &#xff08;图源&#xff1a;证券时报&#xff09; 火山引擎是字节跳动旗下云服务平台&#xff0c;据火山引擎总裁谭待介绍&#xff0c;豆包大模型…