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

韩顺平0基础学java——第19天

p396-406

final关键字

1.final修饰的为“常量”,需要给初始值。1可以直接定义时赋值,2在构造器中,3在代码块中。

注意静态代码块只能访问静态变量。

2.如果final修饰的关键字是静态的,那就不能在构造器中赋值,只能1定义时,2.在静态代码块中。

        因为构造器不能static,但是静态的在类加载的时候就要生成了,而构造器是在创建对象的时候才调用!

3.final类不能继承,但是可以实例化对象~

4.如果类不是final类,但是含有final方法,则该方法不能重写,但是可以继承。即仍然遵守继承机制。

5.一般来说,如果已经是一个final类了(不能被继承了),里面的方法就不用final了

6.final不能修饰构造器

7.final往往和static搭配,效率更高:不会导致类的加载,底层编译器做了优化 

8.包装类都是final的,不能被继承(如String,Integer,Double)

9.传入参数也可以用final修饰

抽象类

父类的一些方法声明了,但是没有实现,即没有方法体,这个方法就是抽象方法。

当一个类中存在抽象方法时,需要将该类声明为抽象类

设计模式用的比较多

抽象类细节

1.抽象类不能被实例化

2.抽象类不一定要包含abstract方法

3.一旦包含了abstract方法,则必须把类声明为abstract类

4.abstract只能修饰类和方法,不能修饰别的

5.抽象类可以有任意成员(抽象类还是个类)

6.抽象方法不能有方法体

7.如果一个类继承了抽象类,则它必须实现抽象类的所有方法,除非它自己也声明为abstract类

8抽象方法不能使用private、final、和static来修饰,因为这些关键字都是和重写违背的

抽象类最佳实践:模板设计模式

程序执行期间会动态绑定!根据运行类型来找方法。

接口

接口就是给出一些没有实现的方法,封装到一起,到某个类型要使用的时候,在根据具体的需求来把方法写出来。

interface 接口名{

        属性

        方法

}

class 类名 implements 接口名{

        自己属性

        自己方法

        必须实现的接口的抽象方法

}

小结:jdk7之前,接口中所有方法都没有方法体,即都是抽象方法,jdk8之后,接口可以有默认实现方法,要求用default修饰,如default public void kkk(){}。jdk8之后还可以有静态方法

如果一个类implements一个接口,那么必须将该接口的所有方法都实现。

接口的使用细节

应用场景:我要制造飞机,只需要把功能、规格定下来即可,然后让别人实现。(统一一个入口)

细节:

1.接口不能被实例化

2.接口中所有的方法都是public方法(就算你不写它也是public的),接口中的抽象方法可以不用abstract修饰。

3.一个普通类实现接口,就必须将连接接口的所有方法都实现:快捷键alt+enter

4.抽象类实现接口,可以不用实现接口的方法。(即抽象类本身是允许存放抽象方法的!)

5.一个类同时可以实现多个接口.

6.接口中的属性只能是final的,而且是public static final int a = 1;

相关文章:

韩顺平0基础学java——第19天

p396-406 final关键字 1.final修饰的为“常量”,需要给初始值。1可以直接定义时赋值,2在构造器中,3在代码块中。 注意静态代码块只能访问静态变量。 2.如果final修饰的关键字是静态的,那就不能在构造器中赋值,只能…...

嵌入式学习——Linux高级编程复习(目录IO、软硬连接、makefile)——day38

1. 目录IO 目录IO是指在计算机程序中对文件目录进行操作的一系列输入输出功能。这些操作允许程序创建、读取、修改和删除目录结构。在Unix/Linux系统和类似系统中,目录被视为特殊的文件,可以对其进行打开、读取、写入(修改)和关闭…...

makefile与进度条

Linux项目自动化构建工具-make/makefile make是一个命令, makefile是一个文件,保存依赖关系和依赖方法。‘ touch Makefile/makefile mybin:mytest.c//依赖关系 目标文件:依赖文件列表 文件列表的文件之间以空格分隔 gcc -o mybin mytest.…...

操作系统总结

进程和线程的区别 本质区别: 进程是资源调度以及分配的基本单位。线程是 CPU 调度的基本单位。 所属关系:一个线程属于一个进程,一个进程可以拥有多个线程。地址空间: 进程有独立的虚拟地址空间。线程没有独立的虚拟地址空间&…...

SpringCloud整合OpenFeign实现微服务间的通信

1. 前言 1.1 为什么要使用OpenFeign? 虽说RestTemplate 对HTTP封装后, 已经⽐直接使⽤HTTPClient简单⽅便很多, 但是还存在⼀些问题. 需要拼接URL, 灵活性⾼, 但是封装臃肿, URL复杂时, 容易出错. 代码可读性差, ⻛格不统⼀。 1.2 介绍一下微服务之间的通信方式 微…...

老师必备!一文教你如何高效收集志愿填报信息

高考志愿填报季,对于每一位老师来说,无疑是一场信息收集与管理的硬仗。如何在众多的志愿信息中,高效、准确地掌握每位学生的志愿意向? 高考志愿填报的重要性。不仅是学生人生的一个重要转折点,也是老师教育生涯中的一次…...

创建 MFC DLL-使用DEF文件

本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系本人将于及时删除 利用“MFC动态链接库”项目模板可以创建MFC DLL。DLL文件与可执行文件非常相似,不同点在于DLL包含有导出表(Export Table)。导出表包含DLL中每个导出函数的名字…...

如何将HTTP升级成HTTPS?既简单又免费的方法!

在当今数字化时代,网络安全已成为用户和企业关注的焦点。HTTPS作为一种更加安全的网络通信协议,正逐渐取代传统的HTTP成为新的标准。对于许多网站管理员和内容创作者来说,如何免费升级到HTTPS是一个值得探讨的问题。本文将详细介绍一些免费的…...

数据仓库之核心模型与扩展模型分离

在数据仓库的设计和实施过程中,核心模型与扩展模型分离是一种常见的策略,旨在提高数据仓库的灵活性、可维护性和扩展性。这种分离策略的主要优势和实施方法如下: 核心模型(Core Model) 核心模型是数据仓库中稳定、共…...

大龄职场人的春招机遇:技术岗位主导,高薪与挑战并存

随着6月毕业季的临近,大批年轻人即将涌入人才市场,为职场注入新鲜血液。然而,这也意味着一些职场人可能面临被“优化”的风险。近几年,职场环境呈现出明显的年轻化趋势,企业更倾向于招聘具有创新活力的青年人才&#x…...

家宽动态公网IP,使用docker+ddns 实现动态域名解析

官方地址:https://github.com/jeessy2/ddns-go 安装docker docker pull jeessy/ddns-godocker run -d --name ddns-go --restartalways --nethost -v /opt/ddns-go:/root jeessy/ddns-go然后访问ip端口 配置时注意如下...

【力扣刷题 动态规划】LeetCode 139 单词拆分、LeetCode 300 最长递增子序列 ✌

文章目录 1. 单词拆分2. 最长递增子序列 1. 单词拆分 题目链接 &#x1f34e; 解题思路&#xff1a; class Solution {bool dp[310] {false};public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> myset;for(auto& str :…...

【位运算】【前缀和】个人练习-Leetcode-1177. Can Make Palindrome from Substring

题目链接&#xff1a;https://leetcode.cn/problems/can-make-palindrome-from-substring/description/ 题目大意&#xff1a;给出一个字符串s&#xff0c;每次query给出l, r, k&#xff0c;要求判断子串s[l:r1]在经过k次操作后是否能变为回文串。一次操作可以将子串内的一个字…...

最小相位系统

最小相位系统 1、传递函数 一个线性系统的响应。 比如一个RC低通滤波器&#xff1a; 交流分量在电容的充放电中被滤除掉&#xff0c;通过设置电容器的电容值&#xff0c;以及电阻值&#xff0c;能够控制这种滤除能力&#xff0c;这个参数为RC。 电容的电抗为 1 / j w C 1/j…...

css系列:进度条

前言 技术来源于需求&#xff0c;近期遇到了做语音的需求&#xff0c;有个调整语速和音量的进度条&#xff0c;UI组件库的进度条大部分不支持拖动和点击修改当前进度&#xff0c;所以自己手写了一个。 实现思路 MDN文档介绍 <input type"range"> - HTML&am…...

QT中为程序加入超级管理员权限

QT中为程序加入超级管理员权限 Chapter1 QT中为程序加入超级管理员权限1. mingw编译器2. MSVC编译器3. CMAKE Chapter2 如何给QT程序添加管理员权限(UAC)的几种方法1、Qt Creator中方案一&#xff1a;&#xff08;仅适用于使用msvc编译器&#xff09;方案二&#xff1a;&#x…...

共识算法之争(PBFT,Raft,PoW,PoS,DPoS)

文章目录 共识算法拜占庭容错技术&#xff08;Byzantine Fault Tolerance&#xff0c;BFT&#xff09;PBFT&#xff1a;Practical Byzantine Fault Tolerance&#xff0c;实用拜占庭容错算法Raft协议POW(Proof of Work)工作量证明机制POSDPoS&#xff08;Delegated Proof of St…...

抽象的java入门1.3.0

前言&#xff1a; 在1.2.0版本中我们介绍了public class hello {}并从中提取出两个新概 修饰符和作用域 public class hello {public static void main(String[] args) {System.out.println("Hello World");} } 正片&#xff1a; 这一期把剩余的内容刨析出来 pub…...

【Oracle生产运维】表空间可用性告警排查处理

1 前言 在生产环境中&#xff0c;一般设置表空间告警阈值是90%&#xff0c;在接到监控报警后&#xff0c;并不是需要立刻对表空间进行扩容。 决定是否扩容主要看表空间最近的增量是多少&#xff0c;假如剩余10%的空间还能支持1个月的增量&#xff0c;那就不需要急着扩容。如果…...

mac Network: use --host to expose

本地启动无法访问&#xff0c;这个不是权限问题是mac 主机端口安全策略&#xff0c;现在我们只需要开启端口自动检测就可以 npm run dev --host 网络&#xff1a;未暴露 方案一 1、执行 npm run dev -- --host 方案二 1、请在 vite.config.js server: {host: true } 1…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...