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

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

相关推荐
亓才孓2 小时前
[JDBC]批处理
java
春日见2 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
锐意无限2 小时前
Swift 扩展归纳--- UIView
开发语言·ios·swift
低代码布道师2 小时前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
宋小黑2 小时前
JDK 6到25 全版本网盘合集 (Windows + Mac + Linux)
java·后端
念何架构之路2 小时前
Go进阶之panic
开发语言·后端·golang
7哥♡ۣۖᝰꫛꫀꪝۣℋ2 小时前
Spring-cloud\Eureka
java·spring·微服务·eureka
亓才孓2 小时前
[Properties]写配置文件前,必须初始化Properties(引用变量没执行有效对象,调用方法会报空指针错误)
开发语言·python
傻乐u兔2 小时前
C语言进阶————指针3
c语言·开发语言
老毛肚2 小时前
手写mybatis
java·数据库·mybatis