抽象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的注解写法是怎么样的(非注解内容)

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

相关推荐
骆晨学长8 分钟前
基于springboot的智慧社区微信小程序
java·数据库·spring boot·后端·微信小程序·小程序
LyaJpunov9 分钟前
C++中move和forword的区别
开发语言·c++
AskHarries13 分钟前
利用反射实现动态代理
java·后端·reflect
@月落13 分钟前
alibaba获得店铺的所有商品 API接口
java·大数据·数据库·人工智能·学习
程序猿练习生14 分钟前
C++速通LeetCode中等第9题-合并区间
开发语言·c++·leetcode
liuyang-neu19 分钟前
力扣 42.接雨水
java·算法·leetcode
z千鑫22 分钟前
【人工智能】如何利用AI轻松将java,c++等代码转换为Python语言?程序员必读
java·c++·人工智能·gpt·agent·ai编程·ai工具
一名路过的小码农24 分钟前
C/C++动态库函数导出 windows
c语言·开发语言·c++
m0_6312704026 分钟前
标准c语言(一)
c语言·开发语言·算法
万河归海42827 分钟前
C语言——二分法搜索数组中特定元素并返回下标
c语言·开发语言·数据结构·经验分享·笔记·算法·visualstudio