抽象java入门1.5.3.2——类的进阶(中)

前期回顾:抽象java入门1.5.3.1——类的进阶icon-default.png?t=O83Ahttps://blog.csdn.net/c_yanxin_ru/article/details/140858898?spm=1001.2014.3001.5501
总结:
在代码溯源中,我发现了一个奇怪的东西,就是OUT不是类中类(不是常规类的写法)

问题:OUT究竟是什么,是什么机制

简单判断,目前可以验证的两条完全没有问题!

第一:这个out可以被访问,可以说明它的访问权限是公共——public关键词没问题

第二:类可以直接调用,可以说明它带有——static关键词没问题

zhengpian(正片)

在前面的内容中,我们将类和对象进行了一个区分

类(class)、类方法(static function)

对象(object)、对象方法(obj function)

类是如何构造对象并使用对象方法的

在那条代码上,并没有使用new关键字(预留标识符)去构建对象,根据理论(公式)

不是对象就是类,这明显是一个类,然后我们找到源码

新知识

第一个:新的修饰符

第二个: instantiate(实例化)

第三个:新的构造函数方法

第四个:java文件(带过,要不然内容太多了)

先看到第一句代码 public final class system { }

《不是名义上的第一句,是我们需要看的第一句》

公式

权限修饰符 : public private

类修饰符:class

类函数修&变量饰符:static

作用域:{}

形参:()

标识符(变量、预留标识符、关键字、类名等等)

公式的使用

public final class system { }

public 权限修饰符中的公共权限修饰符

final 尚未添加的无名修饰符

class 类修饰符

system 标识符

{} 作用域

公共权限修饰符 + 无名修饰符 + 类修饰符 + 标识符 + 作用域 —— 组成了语句一

标识符相比大家可能是第一次听

复习(小课堂)时间

先来一个爆论,标识符 = 实例化 = 量 = 数学(不是指描述的内容)

它们都有一个共同的特定,它们之下可以具体划分成很多内容

第一个要讲的就是数学,123456是里面的,加减乘除基本运算符是里面的,函数是里面的

第二个要讲的就是量,量可以分为常量,变量

第三个要讲的就是实例化,它包括了类,公共权限构造函数,对象

第四个就是本次的重点,它可以细分为预留标识符我们统称说的关键词,函数名,变量名,常量名,等等,只要是名都可以统称为标识符

如果把标识符定义拿出来,你会发现,这家伙不就是变量名吗?不就是函数名吗?

定义:以下划线_,字母,数字组成,不能以数字开头,不能是关键词(预留标识符)

不就是变量名的定义吗?函数名的定义吗?有一些高大上的词语,其实学会后也就没觉得高大上了,标识符这个名词听着,没有细学的,一上来就要被你唬住。但是呢,把定义说完,一瞬间,B格掉了一半《不就是一个变量名吗,叫这么专业

用专业的话来说(不是很专业,人话有东西但不多),标识符就和我们的文字一样,我们是怎么理解语句的,通过文字

我有一个苹果,试着理解一下这句话

.

.

.

.

.

.

你可能的理解:《作者手里有一个苹果》,《作者有一个苹果》,《这人吃苹果》

我这个字,文描述的是第一视角

但是在读者眼里,我这个字,文自动的变成了作者,是不是,要不然你怎么知道作者有一个苹果呢

用语文里的内容,读者读的这句话叫陈述句

我们每次在使用字的时候,会自动地去调用文

每次在使用标识符的时候,会自动去地调用定义,像不像

这里可以配合上《类的进阶上中的内容·流程控制中的顺序结构》

计算机在运行的时候,每一个标识符是怎么运行的?

先看到标识符,然后进到对应的数据库里(函数库或者jar包里)读出对应的定义

一条语句里中,我们可以理解成,它全都是由标识符组成,其中的定义会自动去寻找,当然怎么寻找这里会涉及到新知识中的第四点,本期不做过度分析

第一个新内容

说了这么多废话,核心问题final这个标识符(预留标识符、关键词)在这句语句中是什么定义

官方的定义有三种:

        > 修饰变量

        > 修饰符类

        > 修饰符函数

那么我们首要解决的问题是,public final class system {} 是什么语句,又到了我们公式发力了,没有(),意味着不是函数,它还带有class这个类修饰符,说明system是一个类,完美

公式

函数公式,因为没有修改,这里的类修饰符更具体点叫类函数修&变量饰符

final的定义就出来了:表示该类是无法被任何其他类继承的,意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美而不需要进行修改或扩展。

翻译一下,这个类以及加入了进化,进化到最终形态了,jojo,不做人拉

而且final在做形容词时,可以翻译成:最终的;最后的

我们就可以清晰的知道了final修饰类的时候,这个类具有什么属性了,无法继承,最后一代,生不出儿子。。。生不出儿子确实是最后一代。。。没毛病

第二个新内容

看到这句

Don't let anyone instantiate this class 

不要让任何人实例化这个类

private system

《实例化》

这是一个熟悉又陌生的词,本系列文章中第一次出现,熟悉在哪?

实例化:用类创建对象的过程称为实例化

具体点就是:类,通过构造函数,去构造对象的一个完整过程

熟悉是因为,作者总是隐藏了一个前提,那就是只有类才能产生对象,在不了解这个前提下,你会觉得很陌生

实例化我们知道了,是类通过构造函数生成对象的过程

去实例化呢?

你有没有想法呢?

通过最简单的语言去描述

Q:删除

A:在没有写的时候,java编译器会自动生成一个公共权限修饰符修饰的构造函数

Q:不让其他人能用

A:嗯,用什么手段呢?

Q:我知道权限修饰符可以让别人访问到,还知道一个叫private的私人权限

A:那答案是不是明了

哦,原来我们可以修改构造函数的权限来做到限制,那是不是意味着函数也可以这么做,变量也可以这么做,变量、函数,那可被权限修饰符修饰标识符都可以通过去修改权限去限制

抽象出来的其实是一个权限修饰符的新用法,而不是instantiate实例化

我们来一个小测试,代码如下

按理论,我们是无法使用构造函数,去构造对象的,看报错了

图下是公共访问权限

举一反三试试,变量,用这个是因为可以省去构造一个对象

运行代码

换成私人访问权限

直接报错

理论可行 —— 理论为:限制外人使用,可以修改权限,当然其实是私人访问权限的本质

官方jar包,自己的两个小测试均成功了

补充(量)

字段,这一概念早在之前就已经涉及了但是因为没有用到也就自然跳过了,现在出现了,那就给它补充完整!

字段这一词和变量,常量,各种乱七八糟的量有共同的描述内容——即元素——代词(量),如图

发现一个细节没,字段,常量,变量的大小,这里指的是描述的内容

量最大,其次变量,常量,最小的字段

量描述的是一切

这一切里面又可以分为三大类——常量,变量,未知量

字段?补充一个前提

量代称字段,简单点,量名中的名就是字段,那它不是最大吗?

内容是比较它们大小的元素,而名只是个代词,不对大小进行描述

public static final PrintStream out = null;PrintStream out //out 类型为PrintStream的字段名out

为了以后我们的文章统一将变量名,常量名统称为——某某类型的字段名为xxx

Q:字段名有啥用呢?

A:这就不得不提及到不一样java入门的核心了,编程语言的发展无限趋近于自然语言

用字典就能让你知道字段名有什么用,这就和官方提供的API接口文档一样,一个词对应解释,还能减少多余的容错

核心问题,还未解决,敬请期待

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

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

相关文章

蓝桥杯每日真题 - 第17天

题目:(最大数字) 题目描述(13届 C&C B组D题) 题目分析: 操作规则: 1号操作:将数字加1(如果该数字为9,变为0)。 2号操作:将数字…

Ease Monitor 会把基础层,中间件层的监控数据和服务的监控数据打通,从总体的视角提供监控分析

1. 产品定位 Ease Monitor 有如下的产品定位: 关注于整体应用的SLA。 主要从为用户服务的 API 来监控整个系统。 关联指标聚合。 把有关联的系统及其指示聚合展示。主要是三层系统数据:基础层、平台中间件层和应用层。 快速故障定位。 对于现有的系统…

3D Gaussian Splatting 代码层理解之Part2

现在让我们来谈谈高斯分布。我们已经在Part1介绍了如何根据相机的位置获取 3D 点并将其转换为 2D。在本文中,我们将继续处理高斯泼溅的高斯部分,这里用到的是代码库 GitHub 中part2。 我们在这里要做的一个小改动是,我们将使用透视投影,它利用与上一篇文章中所示的内参矩阵…

一道算法期末应用题及解答

1.印刷电路板布线区划分成为n m 个方格,确定连接方格a 到方格b 的最短布线方案。 在布线时,只能沿直线或者直角布线,为避免交叉,已经布线的方格做了封锁标记,其他线路不允许穿过被封锁的方格,某…

揭开广告引擎的神秘面纱:如何在0.1秒内精准匹配用户需求?

目录 一、广告系统与广告引擎介绍 (一)广告系统与广告粗分 (二)广告引擎在广告系统中的重要性分析 二、广告引擎整体架构和工作过程 (一)一般概述 (二)核心功能架构图 三、标…

freertos任务调度学习

首先创建任务,创建好任务后,开启任务调度器,任务才能执行 1.开启任务调度器 2.启动第一个任务 3.任务切换

初始ArKTs 2

一.类 1.1 声明 类声明引入一个新类型,并定义其字段、方法和构造函数。 定义类后,可以使用关键字new创建实例 可以使用对象字面量创建实例 在以下示例中,定义了Person类,该类具有字段firstname和lastname、构造函数和方法full…

在云服务器搭建 Docker

操作场景 本文档介绍如何在腾讯云云服务器上搭建和使用 Docker。本文适用于熟悉 Linux 操作系统,刚开始使用腾讯云云服务器的开发者。如需了解更多关于 Docker 相关信息,请参见 Docker 官方。 说明: Windows Subsystem for Linux&#xff…

【IDER、PyCharm】免费AI编程工具完整教程:ChatGPT Free - Support Key call AI GPT-o1 Claude3.5

文章目录 CodeMoss 简介CodeMoss 的模型集成如何安装和配置 CodeMossIDER 插件安装步骤 CodeMoss 的实战使用AI 问答功能代码优化与解释优化这段代码解释这段代码 文件上传与对话联网查询与 GPT 助手联网查询GPT 助手 提升开发效率的最佳实践结语更多文献 CodeMoss 简介 CodeM…

编译报错:protoc did not exit cleanly. Review output for more information.

目录标题 解决“protoc did not exit cleanly”的报错问题检查.proto文件的语法 解决“protoc did not exit cleanly”的报错问题 今天做的项目需要用到grpc,然后需要编写proto然后编译后实现grpc的具体方法! 结果编译的时候报了protoc did not exit cl…

语义分割(semantic segmentation)

语义分割(semantic segmentation) 文章目录 语义分割(semantic segmentation)图像分割和实例分割代码实现 语义分割指将图片中的每个像素分类到对应的类别,语义区域的标注和预测是 像素级的,语义分割标注的像素级的边界框显然更加精细。应用&#xff1a…

【竞技宝】LOL-传奇杯:姿态飞机TP绕后一锤定音

北京时间2024年11月19日,英雄联盟第二届传奇杯正在如火如荼的进行之中。昨天迎来小组赛第四个比赛日,本日一共进行了七场小组赛的对决,那么在昨日上半场的四场比赛中,登场的各支队伍都取得了什么样的表现呢?接下来小宝为大家带来小组赛day4上半场的比赛战报。 OP(宁王队) 0-1 …

网络安全之信息收集-实战-1

请注意,本文仅供合法和授权的渗透测试使用,任何未经授权的活动都是违法的。 实战:补天公益src“吉林通用航空职业技术学院” 奇安信|用户登录https://www.butian.net/Loo/submit?cid64918 域名或ip:https://www.jlth…

【后端】版本控制

版本控制 1. 什么是版本控制? 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理…

【YOLOv11改进[注意力]】引入DA、FCA、SA、SC、SE + 含全部代码和详细修改方式

本文将进行在YOLOv11中引入DA、FCA、SA、SC、SE魔改v11,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 一 DA、FCA、SA、SC、SE ① DA 论文:Dual Attention Network for Scene Segm

【数据结构】链表解析与实战运用(1.8w字超详细解析)

目录 引言 链表概念及结构 链表的优缺点 链表的分类 1.单向或者双向 2.带头或者不带头 3.带循环或者非循环 单链表接口函数的实现 接口函数一览 创建空节点&打印链表 尾部插入 头部插入 尾部删除 头部删除 查找 在pos位置之后插入节点 在pos位置之前插入节…

(微信小程序)基于Spring Boot的校园失物招领平台的设计与实现(vue3+uniapp+mysql)

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

【Linux课程学习】:Linux的调试器-gdb的使用(常见指令,cgdb)

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 安装cgdb: 基本环境 1检查gdb是否…

【WRF-Urban】URBPARM.TBL参数解释及内容

【WRF-Urban】URBPARM.TBL参数解释及内容 URBPARM.TBL参数解释URBPARM.TBL参考 参考WRF-Urban教程-Urban Canopy Model URBPARM.TBL参数解释 各个城市相应的城市参数差异很大(例如,有些城市的道路可能很宽但建筑物很矮,而其他城市的道路可…

DBeaver 连接 OceanBase Oracle 租户

DBeaver 是一款通用的数据库工具软件,支持任何具有JDBC驱动程序的数据库。DBeaver 需要 Java 运行环境的支持。截稿时 DBeaver 24.0.0 版本默认提供的 OceanBase 驱动是连接 MySQL 的,想连接 Oracle 租户需要新建一个驱动器使用。 下载数据库驱动包 1、…