java基础之面向对象

面向对象

什么是面向对象?

面向对象相对于面向过程来说的话,就是两种不同的处理问题的角度。

  • 面向过程:更注重事情的每一个步骤及顺序
  • 面向对象:更注重事情有哪些参与者,并且各自需要做什么
    (一群人都同时参与处理一件事情,而处理事情的过程中,每一个人扮演了什么角色,这个角色做了哪些事情)

案例:
一个人去洗衣服。
面向过程:

1.打开洗衣机
2.放入衣服
3.加入洗衣服
4.清洗
5.烘干

面向对象:

人:
    1.打开洗衣机
    2.放入衣服
    3.加入洗衣服
洗衣机:
    1.清洗
    2.烘干

优点:
1.直接高效,易于复用、拓展、维护

面向对象的三大特性

1.封装

意义:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项。内部细节对外部调用透明,外部调用无需修改或者关心内部实现。
高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅对外暴露少量的方法用于使用。

⚠️注意:你想要的东西,我可以给你,但是你不需要知道我是通过怎样的方式拿到的。你只需要知道我可以给你就行。
  • 1.javabean的属性私有,提供getset对外访问,因为属性的赋值或者获取逻辑只能由javabean本身决定,而不能由外部胡乱修改。

    private String name;

    public void setName(String name) {
        this.name = "万水千山——"+name;
    }

⚠️注意:该name有自己的命名方式,明显不能通过外部直接赋值。
  • 2.orm框架
    操作数据库时候,我们不需要关心链接是如何建立的,sql是如何执行的,只需要引入mybatis,调方法即可。
    封装的好处:代码的安全性

2.继承

意义:继承基类的方法,并做出自己的改变或者拓展。子类共性的方法或者属性直接使用父类的,而不需要自己再定义,只需要拓展自己的个性化的。

3.多态

意义:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。
多态出现的三个条件,缺一不可:
1.继承,
2.方法重写,
3.父类引用指向子类对象。

父类类型 变量名=new 子类对象;
变量名.方法名();

无法调用子类特有的功能
也就是说明,这个方法在父类中存在,并且被子类重写。

4.抽象

父类为子类提供一些属性和行为,子类根据业务需求实现具体的行为。
抽象类使用abstract进行修饰,子类要实现所有的父类抽象方法否则子类也是抽象类。

posted @ 2022-07-20 00:32  King-DA  阅读(18)  评论(0)    收藏  举报