面向对象
封装
面向对象的三个特征:封装,继承,多态
什么是封装:
就是将不想对外暴露的属性隐藏起来,对外提供公共的访问方式(get,set方法)
封装的好处:
提高代码的复用性,增加安全程度
private关键字
private是一个修饰符,可以用来修饰类中的成员变量和成员方法,被修饰过的成员变量和方法只能在本类中使用,其它类中不能直接访问
this关键字
this的作用:
this可以用来区分局部变量和成员变量同名的问题
this代表什么:
代表当前对象,谁调用这个方法就代表谁
继承
static关键字
static翻译过来是静态的意思
作用于:
变量:静态变量在内存中只存一份,可作为所有对象的共享变量,只要修改了值,所有对象的值都被修改
方法:静态方法一般用于写工具类
工具类:以 util或者Utils结尾的类,构造方法私有化
类:静态内部类
注意事项:成员方法可以访问静态变量和静态方法,但是静态变量只能访问静态的
静态成员都应该用类名调用,不建议用对象调用
什么是继承:
在Java中继承就是将某些(B,C,D....)类中相同属性提取出来放入A类中,用extends关键字实现继承之后,那A类就成为这些类的父类,而这些类就会被称为A类的子类
为什么要用继承:
在使用封装的技术时,封装很多类,有些类会产生共性(重复代码),为了解决这个问题---继承
继承概念:
使用extends形成父子关系 使子类拥有父类的属性和方法去实现代码的复用。
Java中所有类的父类是 object
形式: 子类 extends 父类
单继承·多继承
父类中用private修饰的成员变量是会被子类继承的,但是不能直接访问,只能通过公共访问的成员方法对其进行访问
Java中只允许单继承,不能多继承,一个类的父类只能有一个,不能有多个;但是支持多层继承:
继承的优缺点:
优:提高代码复用性,便于维护
静态成员都应该用类名调用,不建议用对象调用
使用原则:1.存在共同性 2.两个类是 is a 关系
注意事项:
子类中所有构造方法的访问默认都会先访问父类的无参构造方法
当父类没有无参构造器时:1.在父类中添加无参构造 2.使用super关键字指定有参构造器
super和this的区别
this调用本类的构造器,忽略修饰符,必须放在构造器里面的第一行
super调用父类的构造器,只能调用公共的,必须放在构造器的第一行,必须在构造器里
this:调用的是本类的方法 ,super调用父类的方法
变量和方法访问特点
当父类成员变量与子类成员变量出现同名冲突时,优先访问子类的成员变量(就近原则)
方法重写
概念
子类中出现与父类方法签名(方法名和参数列表)一样的方法
为什么要重写方法
子类需要有别于父类方法的方法实现
override注解
用来检测当前的方法,是否是重写的方法,起到【校验】的作用
重写与重载的区别
重写用在子父类中,重载用在同一个类中
重写的方法签名相同,重载的方法签名不同
final关键字
含义:最终
作用对象:类,方法,变量
作用效果:1.修饰类: 该类不能被继承(不能有子类,但是可以有父类)
2.修饰方法: 该方法不能被重写
3.修饰变量: 表明该变量是一个常量,不能再次赋值
3.1变量是基本类型: 数据值不能发生改变
3.2变量是引用类型: 地址值不能发生改变,内容是可以发生改变的
常量的命名规范 单个单词全部大写 多个单词用下划线分隔并分别大写