自学内容网 自学内容网

抽象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接口文档一样,一个词对应解释,还能减少多余的容错

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


原文地址:https://blog.csdn.net/c_yanxin_ru/article/details/143841419

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!