0基础自学JAVA初期的难点分析——类和对象

这是一个长期更新的博客,我会在这里把自学JAVA时的困难一一列举并讲解,本人也并非是高手,其中的讲解只是抛砖引玉,望赐教。
我在这里的知识点讲解是遵循小学教学模式,也就是说我会用非常浅显易懂的话去讲解一个名词的意思,虽然这样会丢失大量细节信息,这样做的目的是为了让各位能迅速的理解这个词,知道这个词代表什么。这样才可以在后面更深入的去理解含义

我会在文末给出我自己在0基础学习JAVA的学习笔记,因为我后来也没有对笔记进行校验和编辑,会有些凌乱和错误,有些地方也没讲完,还有一些地方更是直接把网课的字幕直接复制到了笔记上,所以将就看吧。这个笔记不单单包括类和对象,也包括其他的基础知识和后面讲述的多线程和异常处理。以后我在其他地方放出的笔记也都是这个。


再次说明一下,授课其实和科普很相似,如果想真正的理解一门学科,必须要经过系统的学习。而普通人没有那么多的时间去系统学习这一门课,所以在科普中会大量引入“比如”、“就像”、“可以类比成”这样的词语。但是世界上没有两种东西是一模一样的,A 就像 B,一定会丢失A的一些细节信息。

在授课中,大部分人在讲师授课的领域是小白,那么如何向小白讲授这个领域的知识?只能是使用类比。
举个例子:
小朋友,我们今天的自然课是讲我们不常见的石榴。大家都没见过石榴,但是石榴 就像 橘子一样,都有一层皮在外面包裹,但是石榴的皮没有橘子厚,石榴可以吃的肉是一粒一粒的,是红色的,比黄豆小。这里有一张石榴的图片大家可以看一看。

在小学,我们虽然没有学到石榴到底是属于哪个科哪个属,种植方法,适合的温度湿度,植株在各个时期的形态。我们可以说尽管经过了学习,但是对石榴这个物种还是根本没有认识。但是我们大量的使用类比、比喻,让我们记住了石榴到底是长的什么样子。在以后可以一眼就认出来这个是石榴,需要扒皮吃。想要种石榴的话可以用中学和大学学到的知识种植。


首先说是0基础但是并非真的一点电脑知识都不掌握,这里掌握电脑知识指的是给你3000/5000/7000块钱让你配一台办公或者游戏用电脑,你可以轻松的搭配出来。这是最初级的电脑知识,如果这都不掌握,那就关掉本页面直接百度如何装机

本博客并不是从零讲解JAVA中的所有内容,JAVA中的大部分内容仍需你自己搜索视频/技术博客学习,这里推荐浙江大学的程序设计入门—Java语言,这个视频0基础也能听懂,是翁恺老师讲授的,这里在推荐一下。还有 黑马程序员—毕向东 这个也不错,这两个是初级的,讲授的内容并不高深
本博客全程使用Eclipse,如果不知道怎么下载安装的话请看请看浙江大学的程序设计入门—Java语言 中的第一节课,里面讲解了如何安装Eclipse
在这里插入图片描述

正文开始:
最开始学习JAVA的同学肯定第一节课就听老师讲,JAVA是面向对象的语言,是面向对象编程。JAVA里面都是类等等。
初次学习JAVA的同学肯定是一头雾水,这里要说的是,初次学习JAVA时,不要试图去理解面向对象是什么意思(就像在高中时候,高一时化学老师第一节课讲了阿伏加德罗常数/物质的量/莫尔,当你第一次接触到这些词的时候,无论老师怎么解释你还是云里雾里,半明白不明白。当你带着这些疑问继续学习之后,做了大量的练习题之后你会发现自己忽然明白了这些词的含义。就像是佛陀的顿悟一样。JAVA也是一样,不要一上来就试图搞清楚所有名词的含义,要不然你永远都学不会编程。有疑问没问题,不要怕带着疑问学就行。),要理解面向对象首先就要理解面向过程,要理解面向过程首先就要理解方法/变量/返回值。
在初次学习JAVA的时候我们要学习基本语法,当然这个基本语法是我自己创造的名词。所谓基本语法就是不管在JAVA里还是在C语言里,或者在其他编程语言里,尽管写法不同但是意思都相同

比如说:
JAVA语言输出hello word : System.out.print("Hello Word");
Python语言输出hello word : print('Hello World!')
C语言输出hello word :printf("Hello, World!");

这三句话的写法是不同的,但是他们的功能都是相同的,都是输出了hello word这句话。而且这三句话还挺像的。

所以首先就要学习的就是输出Hello Word这句话怎么写
在这里插入图片描述
中间的黑色框中的那句话就是输出了Hello Word。这个时候不要去管其他任何的东西,照葫芦画瓢把这句话打出来,这里的英文单词System是系统,out是出,print是输出,那么这句话就很好理解了,如果是要翻译的信达雅的话,那么这句话可以翻译成:从系统中输出Hello Word

那么之后我想输出数字呢?或者我想输出个我爱学习呢?更或者我想在里面写一个算术比如说580除以60呢?这就需要自己去写,自己去验证了。

基本数据类型,基本数据类型有如下几种:
byte(字节型)、short(短整型)、int(整型)、long(长整型)、float(单精度浮点型)、double(双精度浮点型)、boolean(布尔型)、char(字符型)
要理解基本数据类型都代表什么,比如说,int这个类型,int是整型,他在内存中占几个字节(占4个字节),能表示数字范围有多大(可表示-2的7次方到2的7次方-1之间的所有整数)。

学习完基本数据类型以后就要学习逻辑判断语句和循环语句了,逻辑判断是if-else语句和switch语句,循环是for语句。(当然还有其他的逻辑判断语句和循环语句,这里只列举了3个而已)
学习完学习逻辑判断语句和循环语句之后还要学习数组,数组之后就是学习方法了。方法就是函数,我们要学习什么是方法,怎么定义一个方法,如果定义了一个方法,那么怎么调用这个方法,这个方法里到底需不需要返回值。

以上所有的学习视频你都可以在浙江大学的程序设计入门—Java语言里面找到。

当你学习完以上内容之后,你就初步懂得了面向过程,那么这个时候,你需要一本书,名字叫做《Head First Java》,这本书有中文版,当然也有电子版。
从第28也开始看,把椅子大战看完,也就是看到第33页。
这时你就会初步的理解什么是面向对象,当然这个时候你还是没有真正的理解什么是对象,什么是类。依然是半明白不明白,这时依然不要去深究对象和类,继续往下学习

这之后你看的大部分视频就会教你如何编写一个类,如何运行你编写的这个类。这个类不会很难,本质就是让你理解什么是类,什么是对象。不管你看的是什么视频,都需要把视频看完在看我下面写的话。

我相信你已经看完视频了,那么我来解释一下你的疑问——面向对象中用类来描述事物的属性和功能,对事物进行抽象便是抽象为一个类。 对象是类的一个具体实例。这句话我分开来解释。

面向对象中用类来描述事物的属性和功能
面向对象 这个词在现阶段你可以简单的理解为在 JAVA编程中,那么这句话就变成了 在JAVA编程中用类来描述事物的属性和功能
我们再来看 用类来描述事物的属性和功能。 我们先不管什么是类。我们先看什么是属性和功能?比如说你是一个人,一个人可以有哪些属性呢?你的年龄,工作地点,出生日期,有没有头发,男人还是女人这些都是属性。当然如果你玩游戏你也可以在现阶段把JAVA里的属性理解成游戏里属性,比如说你的力量是多少,血量是多少,智力是多少,敏捷是多少,蓝是多少,是什么职业,这些都是属性。功能就是说你是一个人,一个人有哪些功能呢,你可以唱、跳、RAP、篮球、吃饭、谈女朋友(当然程序员是不可能有女朋友的)。
把功能和属性写到一起,写到一起了就变成一个类了
在这里插入图片描述
这里我把属性和功能写到了一起,这就是一个类。这个类的名字就是txst。

对事物进行抽象便是抽象为一个类。 这句话是什么意思呢? 对事物的抽象 就是把事物共有的属性和功能提取出来,这句话就可以写成把事物共有的属性和功能提取出来写在一起就变成了一个类。当然也可以把事物共有的属性单独抽取出来也可以成为一个类。事物共有的功能单独抽取出来同样也可以成为一个类。
在上面的图片中我们可以知道,任何一个人都有上面图片中的特征,这些是所有人都有的共性特征。

那么第一句话就可以写成: 在JAVA编程中用类来描述事物的属性和功能,把事物共有的属性和功能提取出来写在一起就变成了一个类。 ( 当然这么写是有一些不准确的)。

那么第二句话: 对象是类的一个具体实例 这句话在0基础学习JAVA的时候是非常难理解的。我们先把这句话拆分,分别看 对象具体实例 是什么意思
首先是 具体实例 ,我们在看上面的图片,当我们拿着上面的图片去外面找一个和图片中符合的人的时候,就会发现满大街的人都符合上面图片的要求,任何一个人都有年龄、性别、职业、也都会唱歌,这可不行,我只想找一个特定的符合我审美的,那么就在图片的基础上定义年龄是20岁,性别女,职业是偶像,有头发,唱歌唱的是鸡你太美,这样就定义到一个具体的人,这个人就是菜徐坤。
具体实例 从一方面可以理解为往类中传入具体参数使类变成一个具体的东西。

从另一方面来理解可以看下面的图
在这里插入图片描述
这里定义了一个人的各个身体部件,那么这个就是人的类。

下图的15行所代表的意思就是 对象是类的一个具体实例 。上面图片定义人的类可以想象成一个造人的工厂,里面有人的各个躯体的部件,但是这些部件是零散的放在工厂的仓库中,第15行执行了,工厂就把躯体组装起来,一个人就造出来了。造出了一个人,这个人就是类的具体实例
在这里插入图片描述
你有可能看了上面的解释虽然有些明白了,但是对类和对象还是有些不清楚,这个时候你需要多写代码,通过练习来加强对类和对象的理解。

JAVA学习笔记: https://pan.baidu.com/s/1m8NKWUs5kFcmmkudKC-5RQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值