关于面向对象

131 阅读4分钟

面向对象

封装

面向对象的三个特征封装,继承,多态
什么是封装:

就是将不想对外暴露的属性隐藏起来,对外提供公共的访问方式(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变量是引用类型: 地址值不能发生改变,内容是可以发生改变的

常量的命名规范 单个单词全部大写 多个单词用下划线分隔并分别大写