面向对象的三大特征

    技术2022-07-11  123

    MOUSE 面向对象的三大特征

    1.封装:将共用的 ,重复的功能进行封装

    封装是对象和类概念的主要特性。

    封装(也称数据隐藏).将数据和方法(即操作数据的过程)组合起来。并对对象的使用者隐藏数据的实现方式。只能通过对象的方式与数据和方法进行交互。

    在Java中类中成员的属性有:public> protected> default> private,这四个属性的访问权限依次降低。

    publicprotecteddefaultprivate全局√子类√√同包√√√同类√√√√
    ``` 将信息的属性实行私有性关键字采用 private /** *将sex, name, age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。 */ public classCar { // 属性 private String brand;// 品牌 private String color;// 颜色 private int speed;// 速度 } 对上面的属性进行公开访问,也是创建赋值取值的方法,Java语言提供了 `this` 关键字来区分类的变量(成员变量)和传入参数变量(局部变量)的区别。 this表示当前正在运行的对象。例如 /** * 汽车类 */ public class Car { // 属性 private String brand;// 品牌 private String color;// 颜色 private int speed;// 速度 // 行为 public void run() { System.out.println(brand + "车会跑"); } // 提供一些公开的方法 // get/set方法 public void setBrand(String brand) { this.brand = brand; } public String getBrand() { return this.brand; } public void setColor(String color) { this.color = color; } public String getColor() { return this.color; } public void setSpeed(int speed) { this.speed = speed; } public int getSpeed() { return this.speed; } }

    2.继承:共性抽取一个父类,让子类继承

    ​ public class 子类 extends 父类{

    ​ }

    我们生活中有很多继承的例子:比若说宝马车属于车的一种,宝马车有一般车的特征及行为,那么在 JAVA 语言中就可以这样认为,宝马车继承车,宝马车是子类,车是父类;学生和老师都属于人类,有人的一般特性,所以在 java 语言里可以说学生和老师继承人类。 继承是指子类可以复用父类的属性和方法,Java的继承是单继承,每个子类只有一个直接父类。Java的继承通过extends关键字实现。

    Java 不支持多继承,但支持多重继承。

    子类包含与父类同名方法的现象称为方法重写,也称为方法覆盖。

    重写:当子类拥有和父类相同的方法(方法名,参数列表相同),则说子类重写了父类的方法。
    public class Main { public static void main(String[] args) { Father son = new Son(); son.print(); } } class Father{public void print() { System.out.println("father"); } } class Son extends Father{public void print() { System.out.println("son"); } }

    多态:多态是面向对象最重要的特征。使用中就是重载重写

    重写:当子类拥有和父类相同的方法(方法名,参数列表相同),则说子类重写了父类的方法。

    例子: public class Main { public static void main(String[] args) { Father son = new Son(); son.print(); } } class Father{public void print() { System.out.println("father"); } } class Son extends Father{public void print() { System.out.println("son"); } }

    重载:一个类中,如果有两个方法的方法名相同,但参数列表不同,可以说一个方法是另一个方法的重载。

    注意2点:1.方法名相同 2.参数列表不同(参数列表为:参数的类型,参数的个数)

    重载例如:

    public class Main { public static void main(String[] args) { Father f= new Father(); f.print(); f.print(5); } } class Father{public void print() { System.out.println("father"); }public void print(int x) { System.out.println(x); } }

    接口:接口并不是类。接口是对类的一组需求的描述,实现这个接口的类必须遵循描述的格式。

    jdk 1.7 1.接口遵循大驼峰命名规则

    ​ 2.使用 interface 关键词修饰

    ​ 3.接口中只能有 final 常量和抽象方法(a. 常量使用final 修饰表示不可变 b. 常量全名全是大写和下划线来区分

    ​ 4.方法必须是 public.默认就是 public

    jdk 1.8 1.可以有默认方法,使用 default 来修饰
    2.静态方法public
    public interface HelloWorld { //常量 ​ final int MAX_NUM = 10; ​ //抽象方法 ​ default void defaultMethod(){ ​ System.out.println("我是默认方法") ​ } ​ static void staticMethod(){ ​ System.out.println("我是静态方法") } } //常量

    ​ final int MAX_NUM = 10;

    ​ //抽象方法

    ​ default void defaultMethod(){

    ​ System.out.println(“我是默认方法”)

    ​ }

    ​ static void staticMethod(){

    ​ System.out.println(“我是静态方法”)

    }

    }

    Processed: 0.010, SQL: 9