面向对象概述
面向对象可以简单的理解成为:一个人想要完成一件事情,通过他人的功能进行实现;
举个例子:100只大象,放进冰箱里。 若使用的是面向过程的方式,则:①打开冰箱 ②放进大象 ③关闭冰箱 这样的步骤循环100次
然而使用面向对象则只需要两步: ①创建可以操作冰箱的对象 ②创建可以放入大象的对象 即可实现。
每一个对象都有其对应的属性、和方法
需要掌握权限修饰符,在类中起到决定性作用
类的封装
一个良好的类都必须要对其成员进行必要的封装,以保护成员的属性,不让类以外的程序直接访问和修改。所以我们在定义类的成员前面,都需要加上private关键字进行私有化。同时为了能让类中的成员可以被子类或者main函数中获取其中的值,需要在类中设置set/get方法将值return给调用的函数
class Person{
private String name;
private int age;
void say(){
system.out.println("姓名"+name+",年龄"+age);
}
void setName(String name){ //设置姓名方法
this.name = name;
}
void getName(){ //获取姓名方法
return name;
}
void setAge(int age){ //设置年龄方法
this.age = age;
}
void getAge(){ //获取年龄方法
return age;
}
}
类的继承
类的继承是面向对象中非常重要的一部分,在后续开发中,能够高效的编写程序
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或者子类从父类继承方法,使得子类具有父类相同的行为。
使用关键字extends来继承父类的属性和方法,Java中继承可以是:单继承、多重继承。但是不能是多继承,通俗一点说就是一个父亲有一个孩子,或者多个孩子;但是一个孩子不能有多个父亲,不符合常理
格式:
class 父类{
}
class 子类 extends 父类{
}
super与this 的区分
super适用于调用父类里的一些函数、方法或属性(运用父类) ;可以是方法、属性、构造方法
this 为了保证类的封装性完整、安全(运用在当前的类) ;只能是类的属性
注:super调用构造方法的代码,必须放在子类构造方法中的第一行
final关键字
锁定的功能,修饰符 可作用于:修饰属性、变量、类、方法(把要修饰的功能强制加上一个闭口) 变量–常量 | 属性–不能使用属性 | 类–无法继承 | 方法–无法使用方法
抽象类
抽象类必须使用abstract class声明
抽象方法:只声明而未实现的方法称为抽象方法(未实现指的是:没有“{}”方法体),抽象方法必须使用abstract关键字声明。
abstract class 类名{ //抽象类
public abstract void say() // 抽象方法,只声明而未实现
}
在抽象类的使用中有几个原则:
· 抽象类本身是不能直接进行实例化操作的,即:不能直接使用关键字new完成。 · 一个抽象类必须被子类所继承,被继承的子类(如果不是抽象类)则必须覆写(重写)抽象类中的全部抽象方法。