抽象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的小伙伴就知道这两部分是什么了,没看过的也可以作为参考

java 复制代码
@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的注解写法是怎么样的(非注解内容)

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

相关推荐
半盏茶香10 分钟前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
Evand J1 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
LucianaiB1 小时前
探索CSDN博客数据:使用Python爬虫技术
开发语言·爬虫·python
Ronin3051 小时前
11.vector的介绍及模拟实现
开发语言·c++
计算机学长大白2 小时前
C中设计不允许继承的类的实现方法是什么?
c语言·开发语言
suweijie7682 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
公贵买其鹿3 小时前
List深拷贝后,数据还是被串改
java
PieroPc3 小时前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel
2401_857439696 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
SoraLuna6 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos