你就是上帝:Jv程序员,请你站在上帝或神的角度
1.万物皆有裂缝
- 按照西方文化(宗教神话,古希腊、古罗马等),上帝创建了人;
- 创建人之前,还创建了人的居所或地盘/栖息地(伊甸园)和宇宙万物;
- 总之,上帝创建了一切;
- 据说,人生来是高贵的,因为上帝是爱人类的,上帝是按着自己的样子,创建了人,伊甸园据说是一个乐园,上帝让人生来几乎拥有一切,无忧亦无虑,因为似乎一切皆足,无须烦忧;而且上帝为了让他创建的第一个人类亚当,不会寂寞,在他熟睡时,取了他一根肋骨,创建了世上的第一个女人,叫夏娃,作为他的伴侣。而且,据说,上帝造人,当初上让人青春不老、永生不死的。
- 创建人之前,还创建了人的居所或地盘/栖息地(伊甸园)和宇宙万物;
- 但其实,我说的什么乐园、什么拥有一切,用的都是几乎、似乎,是据说,因为上帝是至少留了一手的(其实到底留了几手,人是难以想像的)
- 有一个说法,就是上帝创建整个世界、创建天地万物,包括创建人,都是留了Bug(漏洞)的,而且Bug还不老少,比如亚当和夏娃生来都是瞎子,夏娃是亚当的软肋做的,所以夏娃是柔弱的,亚当是少了一根胁骨的,而且伊甸园里有一个禁忌,就是有一棵树上的果子是不能吃的,叫禁果,据说这个禁果,其实就是苹果。而且人类的始祖亚当和夏娃,还禁不起蛇的欺骗和诱惑,最后吃了禁果。所以,看似完美的人类和人类拥有的一切,其实是漏洞百出的。
- 当然,至于吃了禁果,结果就是亚当和夏娃眼睛从天然瞎,到心明眼亮,看见了对方,原来人是没有穿衣服的,大家都是原始人,上帝造人太完美,造得太漂亮,完美和漂亮也是一个Bug,亚当和夏娃都被对方的身体所诱惑,两人就此做起爱来,那一个性福快乐,自不当说,从此过上了没有羞没臊的生活。
- 总之,据说年轻的男女一想见,就想拥抱在一起,搞事情,这是一个Bug,或者某些Bug,所谓Bug,就是漏洞。与其说是亚当和夏娃偷吃禁果,罪不当赎,或者说蛇太坏,不如说是上帝暗暗伏了伏笔和所谓的祸根,让人的命运终将如此,据说,上帝为了惩罚人类,就剥夺和收回了人永生不死和青春不老的能力或本领,并将让人做爱之后,女人会怀孕和生孩子,让人世世代代受到惩罚、感受到生老病死的各种痛苦。
- 说这么多,总之就是上帝造人,是留了一手的,人是有Bug的;上帝造人尚且有Bug,人之外的其它世间的万事万物,当然也是有Bug的,这个东西,就是漏洞,用另外一句话来说,就叫:万物皆有裂缝。
2.对象和器
- Java程序世界中的万事万物,叫作:对象;中国人的万事万物,叫作:器。
- 中国古代圣人、贤士曾有过:道、器之辨。道是虚,器是实。道是理,器是物。世间的一切,道之外的,就是器。
- 站在中国人的角度,万物皆有裂缝,是很好理解的,你看一下 “器” 这个字,就知道了,这个器有四张嘴呀,这4个口,包着裹着一个犬字,就形成了一个器字,不是吗,这4个口,就是裂缝,是显而易见的裂缝,是大大的裂缝啊 #要不,你看认真看一下这个字:器
- 而对于Java来说,有一句话说得好,叫:万物皆对象。
- Java程序员,天天在new对象,那么,你有没有想过,站在上帝或神的角度,想过“万物皆有裂缝”这件事情呢?
- 你有没有想过,Java的对象,也有四张嘴,四个开口,有种种裂缝呢?
3.Java对象的裂缝
-
Java中的对象,就是Java程序世界中的万物、事物或物件,是具象。
我们在创建对象时,采用的语法是new Xxx(…):- 这个new,代表创造、新建,或新生的意思
- Xxx表示的类名,但其实是类的构造器,英文叫Constructor,也叫构造方法,小括号中的…,叫作入参或构造器的参数列表。
-
其实,new是好理解的,Xxx(…)却是有深意的,从设计角度讲,所谓的构造器和它的传参功能,说白了,就是一种开放性、某种外部决定论及其方法论的体现,这是形而上的部分或哲学化的部分。
-
对象是什么样子,或者最初是什么样子,不是由它自己决定的(叫像人生来不是由自己决定的,是由他爹他妈决定的一样),往往是由new创建时候决定的,()这个小括号,就像一张嘴,一个开口,像一条巨大的裂缝。
-
其实,构造器,大体上,有三种:无参构造,全参构造和定参构造。
-
Lombok插件为此提供了三个注解,分别为:@NoArgsConstructor,@AllArgsConstructor和@RequiredArgsConstructor
-
西方基督教讲究“道成肉身”,如果说这三种构造器(Java也叫重载方法),是对象生来就有的三条裂缝,3个开口或豁口的话。从中国的器字讲,因为还有一个豁口。
-
是的,构造器,是对象创建时初始化用的。其实对象创建之后,通常还会有一个口子,这就是人为的口子,叫属性存取器,即setter/getter。
-
所以,无论是对象创建之初或创建之时,还是创建之后,对象往往都是有裂缝的,大体上讲,Java的对象也是有裂缝的,这些裂缝决定了对象的基因和变数,就像人的命运的外部化,环境决定论的观点一样,对象的很多性质(属性),也是由外部决定的,从方法论上讲,就是苍蝇不盯无缝的蛋,对象或其属性(成员变量)被外部操作或决定,是因为它有裂缝,这些裂缝,是由其方法或函数(正式说法叫成员方法或构造方法)决定的,主要由两类方法决定:一类叫构造器,一类叫存取器。这两类方法,具体可以分为四种情形,分别叫:无参构造(器)、全参构造(器)、定参构造(器)和get/set存取器(getter/setter)。
-
现在来归纳一下:
1.构造器:constructor
1.1 无参构造器:NoArgsConstructor 【1】裂缝一
1.2 有参构造器
1)全参构造器:AllArgsConstructor 【2】裂缝二
2)定参构造器:RequiredArgsConstructor #定,即指定、特定的意思 【3】裂缝三
2.存取器:setter/getter 【4】裂缝四
1)存写器:setter,形式:setXxx();
2)读取器:getter,形式:getXxx()
- 中文的一些翻译方式或叫法:
- 方法,有时也直接叫函数
- 构造器,也叫构造方法
- 无参构造,也称空参构造,不带任何参数的构造方法;
- 有参构造,也称带参构造;
- 全参构造,也有人称满参构造;
- 定参构造,一般也叫:指定必需参数的构造方法;
- 总之,就是国人的一些叫法,能理解、知道是怎么回事就行。
- 需要注意的是,我们在编写类时,如果我们什么构造方法都不写,默认编译器会为我们添加一个无参构造
4.软肋
- 其实,Java中的对象,还有一个东西,那就是继承,在你定义类的时候,即便你不显式继承任何其它的类,你也会继承一个称为根类的类,叫Object。换句话说,Object存在的问题,也会存在你定义的类上,即便你什么都不写,这就叫基因。Object是一切类的父类或超类,你写的类,会继承它的优点,也会继承它的不足。它是你强大的原因,也是的初生时就带有的病根。这就叫软肋。
好了,最后来我们来看张图,你是不是看到了裂缝,看到了好大的一个坑,也看到了神留在时空中无痕之痕,你看到那条缝了吗?什么都不存在,也是一种存在,上帝看得一清二楚,但可能对你是透明的,你只有闭上双眼,睁开第三只眼睛的时候,才能洞察一切,再次睁开眼睛,你才能学会会心一笑,并带上一丝狡黠