文章目录
- 1. 类
- 2. 成员变量
- 3. 行为
- 4. 属性
- 5. zhangDog.name 以及 zhangDog.sleep()解析
- 6. this
- ① 提出问题
- ② 解决方案
- ③ 进一步完善:引入this
- 7. 注销账号
- 8. 空指针异常
- 9. 内容出处
1. 类
我们的目的是不是要给狗写一个程序,而且要让所有狗都能用,所以我们之前也提到说在正式编码之前需要先思考一下这些狗的共性(例如:年龄、姓名等),有时也需要考虑一下特性(例如:李阿姨家的狗是一个二哈,经常把家里弄得一团糟,这是它的专属特性,其它一些温顺的狗是不会发疯的。李阿姨专门拜访你,让你帮忙记录一下她家的狗什么时候发疯),也就是说我们需要考虑一下狗类应该具有的属性。
狗是动物的一个品类。因此我们把从对象中抽离和设计出来的特征放到一个地方,我们把这个地方叫作类。
类:所有狗都具备这些属性(共性、特性)。也就是说这些属性的叠加表明了某个生物就是某个品类的生物,例如:张大爷家的宠物就是一条狗。
2. 成员变量
变量我们很好理解,例如:年龄、种类,这些都是变量。
什么是成员?例如:小明家一共有三口人,他爸、他妈还有他。他们中的每个人都是家庭的一个成员,这三个成员的结合构成了一个家庭。
什么叫成员变量?类中的所有变量都叫作成员变量,它们每一个都是类的重要组成部分。正是因为它们组成和构成了类,所以我们这么命名。
狗的名字、年龄、品种、食物等信息都是一个宠物狗重要的组成部分,因此狗类中与之对应的每一个变量都是当前类的一个成员变量。
3. 行为
行为:就是动作
狗能有什么举止行动啊?不就是吃喝拉撒睡吗。所以在上述代码中,我们定义的一些方法(也就是c语言中说的函数),像吃饭啊、睡觉啊、生病啊、抓狂啊,都可以称之为行为。
4. 属性
属性:类中成员变量和方法的总称。不管是共性(例如:姓名、年龄、吃饭等),还是特性(例如:抓狂等),都可以称之为当前类的一个属性。
5. zhangDog.name 以及 zhangDog.sleep()解析
对象名.属性:就是实例可以设置属性。简单来说不就是张大爷注册完以后,给他家狗起了个名字吗;不就是王阿姨把她家狗的年龄输进去以后提交了么
6. this
① 提出问题
张大爷和王阿姨分别记录了一下自家狗的行为,过几天去翻了一下记录,发现只有什么狗吃饭、狗睡觉之类的。问题是,那个时间段谁在吃饭?谁又在睡觉啊?
② 解决方案
我们在输出狗的行为之前先输出一下狗的名字
这样一来,我们是不是就能清楚地看出来那个时间段,张大爷家的狗在睡觉,王阿姨家的狗在吃饭了。
③ 进一步完善:引入this
this.name可以使表达更加清楚。this指的就是调用对象(即当前调用的是哪条狗)
7. 注销账号
张大爷说我现在感觉你的APP不好用,有点问题,我现在不想用了。然后你就跟张大爷说:大爷,那你把账号注销一下吧。
编译一下,发现没有任何异常。
8. 空指针异常
c语言中空指针的概念
大爷过几天又来找你了,说想再看看之前的记录。
代码报错:主线程中有一个错误,空指针异常。
你跟大爷说,不行啊,程序报错 – 存在空指针异常
大爷说,我听不懂,啥叫空指针异常啊?
就是说,您都把这个账号给注销了,系统里已经找不到你家狗的信息了。
凡是今后遇到空指针异常问题,那你肯定是操作了一个不存在的对象的属性
9. 内容出处
java