当前位置: 首页 > 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…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

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

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

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...