抽象java入门1.5.2

前言:

坑留下来是为了补的

正片:

一、面向对象特性

二、面向对象编程详细展开

这些没有加粗的方法究竟来源哪?

在上一期的提示中,我们说了这些方法来源于面向对象编程的一个特性

验证:

第一步:我们先调用这个方法

观察:import关键词没有增加,说明这些方法是java内部的

第二步:Crtl + 左键 方法

观察:我们来到了这个方法的出处,源头

由两部分组成

Q:放屁,上面的绿色是什么,不应该是三部分吗

A:绿色的是文档注释,剩下的看不懂,不看,无视掉

***************************************************************************************************

补充:如何实现文档注释

IDEA        /** + 回车会自动补充

处理猴

内容:想法

文档化:点一下就知道了

那怎么写出和官方一样的注释呢?

第一步:/** + 回车     -----    创建文档注释

第二步:写下我们的内容

第三步:文档化

第四步:太丑了,没有官方文档的美观

先看看官方是怎么写的

如果你学过前端,你就知道这玩意的美观程度是由HTML标签实现的,既然美观程度还需要再去学HTML

那那那,下面这种中文至少要会吧

就当记几个英语单词

@param        形参

@apiNote   api-note  —— 接口说明

@implSpec        impl-Spec ——实现,要求

@return               返回值

@see                请参阅

******************************************************************************************************

绿色的部分现在我们知道了是什么,就是一大串注释

看过1.5.0~1.5.1的小伙伴就知道这两部分是什么了,没看过的也可以作为参考

@IntrinsicCandidate
public native int hashCode();

@intrinsicCandiDate 这是一个注解

public native int hashcode();

是函数吗?

函数公式:访问权限修饰符 + 返回值类型 + 函数名 + 参数 + 函数体

publi + native + int + hashCode + ();结束了

第一个疑问:native是什么?

第二个疑问:没有花括号,意味着没有函数体

第三个疑问:公式不应该会出错,那为什么IDEA的提示框里会以方法的形态显示呢

一个萝卜一个坑,挨个解决

第一个坑:native

公式:访问权限修饰符 + 未知的修饰符(native) + 返回值类型 + 函数名 + 参数 + 函数体

函数名就是一个简单的名词,名称代词,不需要赋予太高深的定义

未知的修饰符(native)的翻译如下

出生国的;出生地的;土生土长的

                                                                                                             -------翻译来源剑桥词典

第一点:形容词   换个名词代词   修饰符

第二点:浓缩就是精华,不仅可以减少大脑内存,还能增加枚举速度

三个词语太多了 ,(过程省略......)

花了我两亿万个脑细胞所总结的词  ——  伴生

举例:人剩下来的那一刻,伴生的器官还没有发育良好

 native        ——        伴生

java语言诞生那一刻,伴生的方法带有native修饰符

那么非伴生方法可以用native修饰符吗

很显然,我们不能直接使用native修饰符去进行修饰函数名

第二个坑:没有花括号,意味着没有函数体,它还能算函数吗

在第一个坑中,我们已经知道了这个native是什么意思,但是这个函数没有方法体它能算函数是我们的第二个坑

注意,它还有注解@IntrinsicCandidate,Ctrl + 鼠标左键点进去

public + @interface + IntrinsicCandidate + { }

这,这,这,好眼熟 

前者是 public + @interface + IntrinsicCandidate + { }  后者是 public + class + user + {}

补小坑:这是java文件四大分类中的两大分类

好吧,五大类

我们先接触的是最基本的载体 —— class

其次是 —— @interface

让我们手动新建一个注解

怎么用它

@注解名

验证,CTRL + 鼠标左键 点击,会跳转到原文件

有前面学的特别好的人就知道会问,public是权限修饰符,我们权限修饰符学了两个,另一个能用吗?

毛选实践论中说了,先认识,再实践,最后区分,现在我们还是第一个阶段,先认识,现在我们认识到的是

第一:注解中必须有修饰符 @interface

第二:注解中必须有注解名 (类名)

第三:注解的修饰符只能是public

第四:调用注解只需要@注解名

可是到这一步,也仅仅是知道了怎么创建注解,怎么调用注解,怎么使用注解我们还不知道!

先来一个hell word,试试看

报错了,这个时候,我们看看官方对注解的定义注解可以用于类、方法、变量、参数和包等,并且可以通过反射获取注解内容

第一:注解是可以有内容的,但是内容不能是hello wrod,也就是方法的调用

第二:注解的内容是可以通过反射这个机制来获取的

第三:java文件,java方法,java变量等等都可以调用注解,通过反射获取注解内容

注解是java文件,java文件可以调用注解

问题:@Target的注解写法是怎么样的(非注解内容)

@Retention的注解写法是怎么样的(非注解内容)

这期先到这里,剩下的坑下一篇中解决

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

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

相关文章

区块链空投之空投合约

关于 solidity、空投、智能合约 空投作为区块链行业最大的惊喜之一,很多人都是通过空投才接触到了这一领域。 甚至有很多专业薅空投羊毛的专业玩家。行业内有句话,小薅养活妻儿、大薅… 文章目录 前言空投到底是什么空投什么?空投合约代码空投步骤代码解析代码详解前言 今…

代码随想录算法训练营第23天|39. 组合总和、40.组合总和II、131.分割回文串

打卡Day23 1.39. 组合总和2.40.组合总和II3.131.分割回文串 1.39. 组合总和 题目链接:39. 组合总和 文档讲解: 代码随想录 这道题和昨天做的组合之和由两个区别:被选的元素没有数量限制,同时被选的元素可以无限重复,…

【嵌入式开发之标准I/O】流的刷新、定位以及格式化输出、输入

流的刷新 int fflush(FILE *fp); 成功时返回0;出错时返回EOF。 将流缓冲区中的数据写入实际的文件。 Linux下只能刷新输出缓冲区,输入缓冲区丢弃。 如果输出到屏幕使用fflush(stdout)。 流的定位 流的定位:ftell()函数 long ftell(FILE *stream)…

JavaScript:节流与防抖

目录 一、前言 二、节流(Throttle) 1、定义 2、使用场景 3、实现原理 4、代码示例 5、封装节流函数 三、防抖(Debounce) 1、定义 2、使用场景 3、实现原理 4、代码示例 5、封装防抖函数 四、异同点总结 一、前言 …

信息检索(39):Condenser: a Pre-training Architecture for Dense Retrieval

Condenser: a Pre-training Architecture for Dense Retrieval 摘要1 引言2 相关工作3 方法3.1 前提3.2 Transformer 编码器的问题3.3 Condenser3.4 Transformer 编码器的 Condenser 4 实验4.1 预训练4.2 句子相似度4.3 开放域问答检索4.4 Web search 检索 5 注意力分析6 结论 …

Adobe Premiere Pro(Pr)安装包软件下载

一、简介 Adobe Premiere Pro(简称Pr)是由Adobe公司开发的一款功能强大的视频编辑软件。它支持多平台使用,包括Windows和Mac系统,并且拥有良好的兼容性和高效的性能。Premiere Pro不仅提供了视频剪辑、特效添加、音频处理等基本功…

《从C/C++到Java入门指南》- 9.字符和字符串

字符和字符串 字符类型 Java 中一个字符保存一个Unicode字符,所以一个中文和一个英文字母都占用两个字节。 // 计算1 .. 100 public class Hello {public static void main(String[] args) {char a A;char b 中;System.out.println(a);System.out.println(b)…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 二进制游戏(200分)- 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

npm install时报错 reason: connect ETIMEDOUT

在VS code中导入新项目,执行npm install时报错: npm warn old lockfile Could not fetch metadata for antv/coord0.1.0 FetchError: request to https://registry.npmjs.org/antv%2fcoord failed, reason: connect ETIMEDOUT 150.242.56.251:443 npm w…

大数据之路 读书笔记 Day8 数据存储

回顾: 大数据之路 读书笔记 Day7 实时技术 简介及流式技术架构 大数据之路 读书笔记 Day6 离线数据开发之数据开发平台 数据存储 1 数据类型 实时任务在运行过程中,会计算很多维度和指标,这些数据需要放在一个存储系统中作为恢复或者关联使…

微信小程序开发:DOM 相关 API 使用详解

在微信小程序开发中,与传统的网页开发相比,由于安全性和性能考虑,访问 DOM(文档对象模型)是受限的。然而,微信小程序提供了一些特定的 API,使开发者能够处理和操作视图层,实现丰富的…

Transformer之Vision Transformer结构解读

论文地址 代码地址 写在前面 什么是Transformer呢?就是把符号向量化为Token, 再和位置编码求和或者做阿达玛积,最后送入一定层数的Attention Block构成的Encoder和Decoder,就完成了Transformer的基础功能。 那么,把上…

C基础函数——内存分配(未完)

在C语言中,内存管理是非常重要的一部分。C语言提供了几种不同的函数用于动态内存分配和释放,这些函数允许程序在运行时根据需要分配和回收内存。以下是C语言中常用的几个内存管理函数: malloc() void malloc(size_t size); 这个函数用于请求…

C++中枚举(enum)的用法和限制

在C中,枚举(enum)是一种用户定义的类型,它允许程序员为整数常量指定易于阅读的名字。枚举类型是由一组命名的整型常量组成的类型,每个常量都表示该类型的一个有效值。枚举在编程中常用于表示一组固定的值,如…

MySQL:mysql的数据类型

MySQL 作为一个流行的关系型数据库管理系统,支持多种数据类型以满足不同的数据处理和存储需求。正确理解和使用这些数据类型对于提高数据库性能、确保数据完整性和准确性至关重要。 MySQL 数据类型 数据类型定义了列中可以存储什么数据以及该数据怎样存储的规则。…

idea2019版本创建JavaWeb项目并配置Tomcat步骤

一、创建JavaWeb项目 1.新建项目File->New->Project 2. 选择JavaWeb应用在New Project窗口中选择Java后勾选Java EE中的Web Application后点击next即可 3.设置项目名称后点击finish即可 4.至此项目创建完成,检查文件是否齐全,开始配置Tomcat 二、…

IDEA工具中Java语言写小工具遇到的问题

一:读取excel时遇到 org/apache/poi/ss/usermodel/WorkbookProvider 解决办法: 在pom.xml中把poi的引文包放在最前面即可(目前就算放在最后面也不报错了,不知道为啥) 二:本地maven打包时,没有…

base SAS programing学习笔记(read raw files2)

使用COLUMN input和FORMATTED input读入固定位置的外部文件;如下图所示, 1.COLUMN input (按列数读入外部文件数据) 使用column input 不需要按从左到右的顺序读取外部文件的数值,可以是任意读取,也可以重…

LeeCode Practice Journal | Day18_Binary Tree06

530.二叉搜索树的最小绝对差 题目:530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 题解:代码随想录 (programmercarl.com) 验证搜索树的进阶,二叉树中的双指针,思考过程中发现容易弄混递归向下传播和向上回…

STM32F103定时器中断详解

目录 目录 目录 前言 一.什么是定时器 1.1 STM32F103定时器概述 1.2基本定时器 1.2通用定时器 1.3高级定时器 1.4 三种定时器区别 基本定时器(Basic Timer) 通用定时器(General-Purpose Timer) 高级定时器(Advanced Ti…