【Java学习】6.面向对象

初学,肯定有很多理解错误或者表达错误的各种各样的错误的地方,发现错误还请多多指教!!!!!!!

类和方法
类是指:“class”
方法是指包括main在内的许多方法。。。
一个项目里面最好只有一个类一个main方法
【灵魂书法】
在这里插入图片描述
类包括【属性】和【方法】。

比如:

在这里插入图片描述我理解的类和对象:
我要研究【动物】的生活习性,通过我养的【一个动物-猫】来观察。
【动物】是一类,但是【我养的猫】就是具体的对象。
动物的生活习性有很多,这是这一个类的属性。
比如:【睡觉时间】【居住地点】【食物】【天敌】。
但是我观察我的猫就可以把我的猫的具体属性写出来。
构造器
构造器是给对象的属性默认值值的一种特殊方法。
它不写返回值类型,系统默认有一个构造器。
以student为例,如果直接输出小明的名字,会得到“null”
输出小明的age,会得到“0”
new关键字的本质是调用一下构造器。
这是构造器在工作,构造器可写可不写。写就可以自己规定默认值,不写就是系统的默认值。
【这是无参构造器,如果要写有参构造器,就需要把无参构造器写上】
点【alt+insert】的【Constructor】可以生成构造器,选择哪一个属性就可以生成哪一个。如果想生成无参构造器,则选择页面下方的【Select None】
在这里插入图片描述而使用有参构造器之后,调用new时可以使用规定的格式直接赋值。
在这里插入图片描述
封装
将属性私有。
private,对应于public。
不使用private的属性可以在new关键字之后直接通过【对象名.属性】进行使用,使用private则不可以,需要提供一些public的get和set方法。
get:获得这个数据
set:对这个数据设置值(赋值)
【alt+insert】可以选择获得这两种方法。
由于它的本质还是方法,所以可以自己添加语句,比如判断数据是否现实合法(比如判断年龄会不会过大过小),提高程序的安全性。

在这里插入图片描述

在使用了get和set方法后,使用如下:

在这里插入图片描述

继承
学生是人的一部分,所以学生可以继承人的特性。但是学生会有自己的一些属性,所以叫做“拓展”。
学生叫做子类,人叫做父类。
父类可以有多个子类,但是子类只能有一个父类。
【点ctrl+H可以查看继承类的关系】
用extends表示。

在这里插入图片描述

子类可以继承父类的方法。在父类构造的public方法和属性,在子类对象里可以调用。

在这里插入图片描述

私有的private方法和属性不能直接调用。
【用set和get还是可以继承属性】

在这里插入图片描述

子类里可以用【super】调用父类的属性和方法,而自身的属性和方法用【this】。
super不能调用private。

在这里插入图片描述

重写
前提:
1.需要有继承关系;是子类重写父类的方法。
2.参数列表必须相同
3.修饰符的范围可以扩大,public

静态方法的调用只和对象的类有关。
虽然new的都是子类,但是输出结果还是由前面的类有关。
叫做父类的引用指向子类。
在这里插入图片描述
非静态方法可以“重写”,static不可以;final不可以;private不可以
光标在子类的方法上,点【ctrl+insert】
就会全是子类了。

在这里插入图片描述多态

多态是方法的多态,属性没有多态。
需要父类和子类的继承关系;方法需要重写,父类引用指向子类对象。

在这里插入图片描述

父类的对象不能直接调用子类的方法。

子类对象能调用的方法都是自己的或者重写父类的。

instanceof
先new一个对象
判断后类是不是在该对象的类型的继承线里。

在这里插入图片描述
类的类型转换的问题
子类转换成父类可以直接转换。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_51692337/article/details/111875794