当前位置: 首页 > news >正文

【Java零基础入门篇】第 ④ 期 - 继承(三)

【Java零基础入门篇】第 ④ 期 - 继承(三)


博主:命运之光
专栏:Java零基础入门

在这里插入图片描述

学习目标
1.掌握继承性的主要作用、实现、使用限制;
2.掌握this和super的含义及其用法;
3.掌握方法覆写的操作;
4.掌握final关键字的使用;
5.掌握类变量、实例变量和局部变量的含义和用法;
6.掌握static和final修饰符的作用;

目录

  • 【Java零基础入门篇】第 ④ 期 - 继承(三)
    • 成员变量与局部变量
      • 成员变量—实例变量
      • 成员变量—类变量
      • 局部变量
    • 实例方法与类方法
      • 类(静态)方法 和 实例方法总结:
    • static代码块
    • final修饰符
    • 对象的初始化顺序


成员变量与局部变量

编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间对象,其方法才可以供外部调用

成员变量—实例变量

定义在类中的变量成员变量,类的成员变量有两种:一种是实例变量,一种是类变量

成员变量—类变量

如果想让一个类的所有实例共享数据,就用类变量。

变量前有关键字static,则为类变量。存储在公共区,属于类所有,所有该类的对象共享这一个变量。

局部变量

定义在方法中的变量叫做局部变量。
局部变量

  • 形参(方法、构造器中定义的变量)
  • 方法局部变量(在方法内定义)
  • 代码块局部变量(在代码块内定义)

注:

1.局部变量除形参外,均需显式初始化(赋值)后才能使用;
2.局部变量的生存周期只存在于方法内方法调用结束,局部变量也就不存在了

实例方法与类方法

🍓实例方法:定义方法时,不使用static修饰,属于对象所有。
🍓
类方法:定义方法时,使用static修饰,是无须创建类的对象
就可以调用的静态方法,静态方法可以通过类名来调用属于类所有所有对象可以共用

实例方法调用: 对象名.方法();
类方法调用: 对象名.方法();或者 类名.方法();

注意:在static方法(类方法)内部只能访问类的static修饰的属性(类变量)或方法,不能访问类的非static的结构(非staitic的属于对象,需先创建对象才能访问)。

类(静态)方法 和 实例方法总结:

  1. 类方法属于类所有,第一次加载类的时候就存在于类的内存中了,不用创建对象就能使用。
  2. 类方法中只能使用类变量(静态变量),因为他们都是在类加载时就存在了。
  3. 类方法中不能使用实例变量,因为实例变量必须在创建了对象后才存在于对象的内存里。
  4. 实例方法是对象创建后才存在,有了实例方法后,类变量和实例变量肯定都存在了,所以实例方法可以使用类变量和实例变量。

static代码块

🍓🍓从上述内容中,可以看出在类体内、方法外面只能定义成员变量,不能写普通java代码。
实际上有一种情况,可以写static代码块。格式如下:
**static { **
普通java代码;
}

利用静态代码块可以对一些static变量进行赋值
🍓以 “static{” 开始,到 “}” 结束,中间可以写普通java代码;
🍓这整段代码可以放在类体内,方法外面,称为static代码块;
🍓static代码块的执行是在加载类的时候执行,不需要对象。

final修饰符

Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。①final标记的类不能被继承。提高安全性,提高程序的可读性。
final标记的方法不能被子类覆写
final标记的变量(成员变量或局部变量)即称为常量名称大写,且只能被赋值一次。

  • final标记的成员变量必须在声明时或在每个构造器中或代码块中显式赋值,然后才能使用。
  • final double MY_PI = 3.14;

无论是类变量、实例变量还是局部变量,使用final修饰符,则该变量初始化后,它的值就不能再改变了,因此也可以称为常量。

对象的初始化顺序

🍓🍓类变量(静态变量)、实例变量、类方法(静态方法)、实例方法、静态代码块、构造方法等的执行顺序称为对象的初始化顺序
1.无继承的执行顺序为:
(1)类变量和static代码块。
(2)实例变量。
(3)构造方法。
其中1)只执行一次(2)、(3)要根据创建的对象个数决定,创建几个对象就重复执行几次。
2.有继承的执行顺序为:
(1)父类的静态变量(类变量)和静态代码块(只执行一次);
(2)子类的静态变量(类变量)和静态代码块(只执行一次);
(3)父类的实例变量(根据创建对象的个数决定,每创建一个对象执行一次);
(4)父类的构造方法(根据创建对象的个数决定,每创建一个对象执行一次);
(5)子类的实例变量(根据创建对象的个数决定,每创建一个对象执行一次);
(6)子类的构造方法(根据创建对象的个数决定,每创建一个对象执行一次);
在这里插入图片描述

相关文章:

【Java零基础入门篇】第 ④ 期 - 继承(三)

【Java零基础入门篇】第 ④ 期 - 继承(三) 博主:命运之光专栏:Java零基础入门 学习目标 1.掌握继承性的主要作用、实现、使用限制; 2.掌握this和super的含义及其用法; 3.掌握方法覆写的操作; 4.…...

Python Selenium搭建UI自动化测试框架

自动化测试是软件测试中非常重要的一部分,可以提高测试效率和测试覆盖率。在UI自动化测试中,Selenium是非常流行的工具。本文将介绍如何使用Python和Selenium搭建UI自动化测试框架。 一、环境准备 在开始搭建UI自动化测试框架之前,需要先安装…...

开发大语言模型需要数据?算法?算力?

开发大语言模型的关键是什么。最近看到不少文章为了流量,甚至连 5G 通讯都说成了是开发大语言模型的关键 其实从前面的原理介绍,不难看出,大语言模型的其中一个关键点是数据。 关键一:数据​ 训练数据主要是所谓的语料库。今天的很多语言模型的语料库主要有以下几种: …...

CSS选择器的常见用法

目录 1、CSS编写方式 2.CSS选择器 1.标签选择器 2.类选择器 3.id选择器 4.后代选择器 3.CSS属性 CSS叫做"层叠样式表",作用就是装饰网页.类似于我们平时所说的化妆。 字体、大小、间距、颜色、位置、边框、背景等等统称为样式,用来描述一个网页。 …...

Oracle EBS修改密码

FNDCPASS修改密码 用户名必须出现在FND_USER或FND_ORACLE_USERID表中。FNDCPASS实用程序和ALLRACLE功能是为应用程序用户/模式设计的。 对于FND_USER或FND_ORACLE_USERID中不存在的用户,可以使用alter命令更改密码。 查询用户是否存在FND_USER或FND_ORACLE_USERI…...

《花雕学AI》33:如何用XMind制作AI思维导图、鱼骨图和组织结构图

思维导图是一种有效的思维工具,它可以帮助我们整理信息,激发创意,提高效率。思维导图是一种以中心主题为核心,以分支结构为形式,以关键词和图像为内容的图形表示法。它可以让我们一目了然地看到知识的层次和逻辑&#…...

【rust】| 06——语言特性 | 所有权

系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础 | 变量(不可变?)和常量 【rust】| 03——语法基础 | 数据类型 【rust】| 04——语法基础 | 函数 【rust】| 05——语法基础 | 流程控制 【rust】| 06——语言特…...

AUTOSAR入门

简介 AUTOSAR(AUTomotive Open System ARchitecture)是一种汽车软件架构标准,由德国大陆、博世、宝马等汽车及零部件制造商共同发起,拥有广泛的行业参与。其目标是为了解决汽车电子和软件系统日益复杂的问题,提高可重…...

运维高可用架构的 6 大常规方案

在介绍高可用架构的方案之前,先说一下什么是高可用架构,高可用架构应具备但不限于以下特征: 主从切换 很好理解,当其中一台机器的服务宕机后,对于服务调用者来说,能够迅速的切换到其他可用服务,…...

Java设计模式-桥接模式

简介 桥接模式(Bridge Pattern)是一种结构性设计模式,它的主要作用是将抽象部分和实现部分解耦,使它们可以独立变化而不会互相影响。桥接模式最早由GoF(Gang of Four)提出,在《设计模式》一书中…...

计及N-k安全约束的含光热电站电力系统优化调度模型【IEEE14节点、118节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

欧拉函数详解

文章目录 欧拉函数定义性质计算公式求某个数欧拉函数值线性筛求区域内欧拉函数 欧拉函数 定义 在[1,n]的范围内所有与n互质的数字的个数。 我们用 φ ( n ) \varphi(n) φ(n)来表示数字n的欧拉函数的值,例如: φ ( 4 ) 2 \varphi(4)2 φ(4)2&#xf…...

手把手教你如何将安卓手机数据导入iPhone!【详解】

案例:安卓数据导入苹果手机 【大神们,刚换了新的苹果手机,原本的安卓手机数据怎么导入新手机?】 想要换用iPhone,但是又不想丢失安卓手机里的重要数据怎么办?如何将安卓手机数据导入iphone?本文…...

怎么轻松地搞定Win11系统备份任务?

“我是一个电脑小白,不是很懂电脑的一些操作。我刚买了一台新电脑,它装的是Win11系统,我害怕它出现什么问题,听朋友说可以通过备份的方法保护系统,这是真的吗?有谁知道该怎么进行Win11系统备份吗&#xff1…...

MySQL集群

目录 主从复制 主从复制流程: 为什么要有relay log中继日志? 为什么要有主从复制,好处? 实际生产环境中。如果对MySQL数据库的读写都在一台数据库服务器中操作,无论是再安全性、高可用性,还是高并发性等…...

关于Kerberos认证的一些攻击手法学习总结

Kerberos认证流程 前言 本文主要分享最近学习的关于域内Kerberos认证的一些攻击手法,以自我的理解为主,从原理理解切入到基本工具利用来阐述,个人的理解分析较为啰嗦,嫌太兀长的可以跳着看就好,还请各位谅解。如有错误…...

STL-deque容器

双端数组,可以对头端进行插入删除操作 deque 容器和 vecotr 容器有很多相似之处,比如: deque 容器也擅长在序列尾部添加或删除元素(时间复杂度为O(1)),而不擅长在序列中间添加或删除元素。deque 容器也可…...

❤ go语言和java语言的优缺点

❤ go语言和java语言的优缺点对比 对比GOJAVA介绍Java是一种流行的面向对象的编程语言,它的语法类似于C,并且具有丰富的类库和工具。Java的可移植性很好,可以在多种平台上运行。Go是一种新兴的编程语言,它比Java更加简洁和易学&a…...

安全成就未来|Fortinet Accelerate 2023·中国区巡展首站启幕

Fortinet Accelerate 2023中国区巡展 年度网络安全盛会 Fortinet Accelerate 2023中国区巡展,昨日在深圳拉开帷幕,开启15城巡展的“首城之站”。本年度巡展主题“安全成就未来”,Fortinet与中企通信、亚马逊云科技等生态合作伙伴&#xff0c…...

输入URL到显示界面的整个过程

以如下这个比较简单的网络拓扑模型作为例子,探究中间发生的整个过程: 1 HTTP 浏览器做的第一步工作就是要对 URL 进行解析,从而生成发送给 Web 服务器的请求信息。下图展示了一条长长的URL里各个元素代表什么: 所以整个长长的URL…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...