学习JAVA的第八天(基础)
目录
多态
前提
形式
测试类
调用成员的特点
优势
劣势
包
注意事项:
final关键字
常量
命名规范:
注意事项:
权限修饰符
分类
代码块
局部代码块
构造代码块
静态代码块
抽象类
抽象类:
定义格式
抽象方法:
定义格式
注意事项
多态
同类型的对象,表现出不同形态
前提
有继承关系
有父类引用指向子类对象
有方法重写
形式
父类类型 对象名称 = 子类对象;
测试类
public class Test {public static void main(String[] args) {//创建3个对象 学生 老师 管理员Student s = new Student();s.setName("张三");s.setAge(18);Teacher t = new Teacher();t.setName("李四");t.setAge(50);Administrator a = new Administrator();a.setName("王五");a.setAge(30);register(s);register(t);register(a);}public static void register(Person p) {p.show();}
// 学生的信息为:张三,18
// 老师的信息为:李四,50
// 管理员的信息为:王五,30
}
调用成员的特点
变量调用:编译看左边,运行也看左边
方法调用:编译看左边,运行看右边
优势
在多态形态下,右边对象可以解耦合,便于扩展和维护。
定义方法时,使用父类做参数,可以接收所有子类,体现多态的扩展性和便利
劣势
不能调用子类的特有功能,使用时需要进行强制类型转换。转换时使用instanceof关键字进行判断
包
包就是文件夹,用来管理不同功能的java类,方便后续的代码维护
包名取名规则:见名知意
注意事项:
使用同一包中的类,不需要导包
使用java.lang包中的类,不需要导包
如果同时使用两个包的同名类,需要用全类名
final关键字
| 修饰对象 | 作用 |
|---|---|
| 方法 | 表明该方法是最终方法,不能被重写 |
| 类 | 表明类是最终类,不能被继承 |
| 变量 | 叫做常量,只能被赋值一次 |
常量
常量一般作为系统的配置信息,方便维护,提高代码可读性。
命名规范:
单个单词:全部大写
多个单词:全部大写,单词之间用下划线隔开
注意事项:
final修饰的变量是基本数据类型,那么变量存储的地址值不能发生变化。
final修饰的变量是引用数据类型,那么变量存储的地址值不能发生变化,对象内部可以改变
权限修饰符
权限修饰符:用来控制一个成员被访问的范围
作用:可以修饰成员变量,成员方法,构造方法,内部类
分类
| 修饰符 | 同一个类中 | 同一个包中其他类 | 不同包下的子类 | 不同包下的无关类 |
|---|---|---|---|---|
| private | √ | |||
| 空(默认) | √ | √ | ||
| protected | √ | √ | √ | |
| public | √ | √ | √ | √ |
代码块
- 局部代码块
- 构造代码块
- 静态代码块
局部代码块
用于限定变量生命周期,提高内存利用率。
构造代码块
写在成员位置的代码块,优先构造方法执行的。
静态代码块
需要static关键字修饰,随着类的加载而加载,并且自动触发,只执行一次。
抽象类
抽象类:
如果一个类中存在抽象方法,那么该类必须被声明为抽象类
定义格式
public abstract class 类名{}
抽象方法:
将共性的行为抽取到父类之后。由于每个子类执行的内容不一样,所以在父类中不能确定每个子类的方法体
定义格式
public abstract 返回值类型 方法名(参数列表);
注意事项
- 抽象类不能实例化
- 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
- 可以有构造方法
- 抽象类的子类需要重写抽象类中的所有抽象方法,或者子类也是抽象类
相关文章:
学习JAVA的第八天(基础)
目录 多态 前提 形式 测试类 调用成员的特点 优势 劣势 包 注意事项: final关键字 常量 命名规范: 注意事项: 权限修饰符 分类 代码块 局部代码块 构造代码块 静态代码块 抽象类 抽象类: 定义格式 抽象…...
【硬件相关】IB网/以太网基础介绍及部署实践
文章目录 一、前言1、Infiniband网络1.1、网络类型1.2、网络拓扑1.3、硬件设备1.3.1、网卡1.3.2、连接线缆a、光模块b、线缆 1.3.4、交换机 2、Ethernet网络 二、部署实践(以太网)1、Intel E810-XXVDA21.1、网卡信息1.2、检查命令1.2、驱动编译 2、Mella…...
【JavaEE】_Spring MVC项目之建立连接
目录 1. Spring MVC程序编写流程 2. 建立连接 2.1 RequestMapping注解介绍 2.2 RequestMapping注解使用 2.2.1 仅修饰方法 2.2.2 修饰类与方法 2.3 关于POST请求与GET请求 2.3.1 GET请求 2.3.2 POST请求 2.3.3 限制请求方法 1. Spring MVC程序编写流程 1. 建立连接&…...
【JavaEE进阶】 Spring AOP源码简单剖析
文章目录 🍃前言🍀Spring AOP源码剖析⭕总结 🍃前言 前面的博客中,博主对代理模式进行了一个简单的讲解,接下来博主将对Spring AOP源码进行简单剖析,使我们对Spring AOP了解的更加深刻。 🍀Sp…...
Redis--内存回收机制详解
什么是内存回收机制? 众所周知Redis之所以性能高是因为数据都存在内存中,内存是很宝贵的,Redis的内存回收机制本质就是处理达到过期时间的key-value,以及当内存到达最大使用值时候触发的内存淘汰策略。 Redis数据删除的策略有哪些…...
win安装卸载python3.13
一、安装 访问python官网:https://www.python.org/ 点击“Downloads” 点击“Windows” 找到自己要下载的版本和位数,比如我这个是3.13版本、64位的安装包 下载好了之后,双击安装包 勾选“Add python.exe to PATH”:把python环…...
APIFox-自动获取登录状态操作
APIFox-自动获取登录状态操作 概述 作为纯后端开发码农,每次接口开发完的调试很重要,因此每次重复的手动获取登陆状态Token或者直接放行就太麻烦了。 APIFox提供了前置操作,可以很方便的自动获取登录状态,节省大量重复劳动时间。…...
【NDK系列】Android tombstone文件分析
文件位置 data/tombstone/tombstone_xx.txt 获取tombstone文件命令: adb shell cp /data/tombstones ./tombstones 触发时机 NDK程序在发生崩溃时,它会在路径/data/tombstones/下产生导致程序crash的文件tombstone_xx,记录了死亡了进程的…...
CentOS7 Hive2.3.8安装
CentOS7 Hive2.3.8 安装 建议从头用我的博客,如果用外教的文件到 一、9)步骤了,就用他的弄完,数据库不一样,在9步骤前还能继续看我的 一、 安装MySQL 0.0)查询mariadb,有就去0.1),没有就不管…...
代码随想录算法训练营第四十四天 完全背包 、零钱兑换 II 、组合总和 Ⅳ
代码随想录算法训练营第四十四天 | 完全背包 、零钱兑换 II 、组合总和 Ⅳ 完全背包 题目链接:题目页面 (kamacoder.com) 解释一、01背包 一维 :为什么要倒序遍历背包? 首先要明白二维数组的递推过程,然后才能看懂二维变一维的…...
【经验】vscode 鼠标拖曳不能选中整行文字,只能选中纵向矩形范围
1、问题描述 不知道昨天操作vscode设置界面时,误选择了啥,导致鼠标拖曳不能选中整行文字,只能选中纵向矩形范围,现象如下: 2、解决方法 1)打开设置界面 点击左下角按键,选择“设置” 2&…...
Redis--事务机制的详解及应用
Redis事务的概念: Redis事务就是将一系列命令包装成一个队列,在执行时候按照添加的顺序依次执行,中间不会被打断或者干扰,在执行事务中,其他客户端提交的命令不可以插入到执行事务的队列中,简单来说Redis事…...
路由器端口映射如何配置?
在网络通信中,路由器是一个重要的设备,它负责将数据包从一个网络传输到另一个网络。路由器的端口映射配置是一种重要的设置,可以使外部网络中的计算机通过访问路由器上的特定端口与内部网络中的计算机进行通信。本文将介绍什么是路由器端口映…...
力扣34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
Problem: 34. 在排序数组中查找元素的第一个和最后一个位置 文章目录 题目描述思路复杂度Code 题目描述 思路 Problem: 二分查找常用解题模板(带一道leetcode题目) 直接套用上述中的寻找左、右边界的二分查找模板即可 复杂度 时间复杂度: O ( l o g n )…...
【每日一题】3.2 求逆序对
题目描述 给定一个长度为 n的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 i个和第 j个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。 输入格式 第一行包含整数 n…...
NTP时间源服务器(NTP网络时钟)助力智慧医院数字化
NTP时间源服务器(NTP网络时钟)助力智慧医院数字化 NTP时间源服务器(NTP网络时钟)助力智慧医院数字化 目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态。 随着计算机网络应用的不断涌现,计算机的时…...
Benchmark学习笔记
小记一篇Benchmark的学习笔记 1.什么是benchmark 在维基百科中,是这样子讲的 “As computer architecture advanced, it became more difficult to compare the performance of various computer systems simply by looking at their specifications.Therefore, te…...
Linux中的动静态库
目录 一、静态库 (1)静态库的优缺点: (2)Linux下静态库的创建和执行 1.直接编译编辑 2.指定路径和库名 3.用LIBRARY_PATH环境变量来配置路径 二、动态库 (1)动态库的优缺点 ÿ…...
C/C++基础语法
C/C基础语法 文章目录 C/C基础语法头文件经典问题链表链表基础操作 秒数转换闰年斐波那契数列打印n阶菱形曼哈顿距离菱形图案的定义大数计算 输入输出格式化输入输出getline()函数解决cin只读入一个单词的问题fgets读入整行输出字符数组(两种方式puts和printf&#…...
Home Assistant:基于Python的智能家居开源系统详解
Home Assistant:基于Python的智能家居开源系统详解 在数字化和智能化的时代,智能家居系统成为了现代家庭的新宠。它们能够让我们更加方便地控制家中的各种设备,实现自动化和个性化的居住体验。其中,Home Assistant作为一款基于Pyt…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
