类与对象
类:描述一类事物
要在软件里面表示一个事物
使用成员变量描述事物的属性
对象:
一个具体的事物或个体
创建对象的语法:
类名 变量名= new 类名();
构造方法
1.方法名必须和类名一直
2.没有返回值类型
3.每一个类都有一个默认的公共无参数的构造方法,一旦显示的写了构造方法以后,默认的就不存在
构造方法的作用:
1.创建对象
2.传值,创建对象的同时赋值
static关键字
static:关键字 修饰符
* 类里面的成员有哪些
* 成员变量
* 方法
* 内部类(暂时不研究)
* 成员变量:被所有对象所共享
* 静态成员变量:访问方式类名.字段名
* 方法:static修饰的方法访问方式不一样,类名.方法名();
封装
封装:使用一个修饰符private 私有的
1.把成员变量私有化(使用private修饰)
2.给私有的成员变量提供getter 和setter方法
this
this是一个对象
thi所在的方法正在被谁调用,this就是指代哪个对象
作用:
1.解决成员变量和局部变量的二义性
2.在同一类中构造方法的相互调用(不适用于前面两个理论)
注意点:在构造方法的相互调用额时候 必须写在第一行.
继承
1.继承:提高代码的复用性
2.泛化:把多个子类共同的属性和方法抽取到父类的过程
3.特化:在一个父类的基础上拓展子类特有的属性和行为
在类名后边加上 extends 关键字 类名
继承的特点:
1.在java里面 一个类只能显示的基础一个类(单继承)
2.java里面支持多层级继承
3.一个类如果没有显示的继承自任何类,隐式的继承Object.
(从多层级的思路出发 ,所有的类都是Object的子类)
子类可以继承的内容:
非私有化的字段和方法.(从访问层面出发)
访问权限
![权限表](https://img-blog.csdnimg.cn/20191230095556674.png)
super
super:可以看成是父类对象,但是不持有父类对象的地址
作用:
1.可以区别父类属性和子类属性重名 的问题
2.在子类中调用父类的方法
3.调用父类的构造方法
在子类的构造方法中的第一行 super()
子类在创建对象的同事隐式的在调用父类无参数构造方法
多态
多态:编译时类型和运行时类型不一致的情况 ,叫做多态
坊间说法:使用父类类型(或接口) 接收其子类对象(实现类对象)
类型的强制转换
大转小
小的数据类型 变量名= (小的数据类型)大的数据类型;
小转大(多态的写法)
final
1.外部类:可以 ---类不可以被继承
2.普通方法:可以 --- 不能被覆写
3.成员字段:可以 ---一旦赋值不能更改(如果为引用数据类型,地址值不能更改)
4.局部变量:可以 ---一旦赋值以后不能更改(如果为引用数据类型,地址值不能更改)
5.内部类:可以 [ 暂时不学 ]
6.构造方法:不可以