OOP(面向对象)

大纲
1.面向对象的基本概念
1).客观存在的任何一种事物,都可以看做为程序中的对象
2).使用面向对象思想可以将复杂的问题简单化
3).将我们从执行者的位置,变成指挥者

2.类与对象
    类是对现实生活中一类具有共同属性和行为的事物的对象
    对象是能够看得到摸得着的真实存在的实体
    总结:类是对象的描述,对象是类的实体

3.类和对象的定义格式
    类的组成:属性和行为
        属性:在代码中通过成员变量来体现(类中方法外的变量)
        行为:在代码中通过成员方法来体现(没有static关键字修饰的方法)

    类的定义
        
        | public class 类名{
        |             //成员变量
        | 
        |            //成员方法
        | ​}


4.对象与内存分析
    垃圾回收
        当堆内存中,对象或数组产生的地址,通过任何方式都不能被找到后,就会被判定为内存中的垃圾。垃圾会被java垃圾回收器,空闲的时候自动进行清理


成员变量和局部变量
    什么是成员变量和局部变量
        成员变量:类中方法外的变量
        局部变量:方法中的变量

    成员变量和局部变量的区别
        区别                                  成员变量                                                                        局部变量
        | 类中位置不同             类中方法外                                                           方法内或者方法声明上(形参)
        | 内存中位置不同       堆内存                                                                                栈内存
        | 生命周期不同           随着对象的存在而存在,                             随着方法的调用而存在
        |                                          随着对象的消失而消失                                  随着方法的调用完毕而消失
        | 初始化值不同           有默认的初始值                                                 没有默认初始值,必须先定义,赋值,
        |                                                                                                                             才能使用            


访问权限修饰符
    private关键字
        是一个权限修饰符
        可以修饰成员(成员变量和成员方法)
        被private修饰的成员只能在本类中才能访问

    针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
        提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
        提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰


5.封装性
6.构造方法
7.this关键字
    局部变量和成员变量如果重名,Java使用的是就近原则
    this关键字的作用:
        可以调用本类的成员(变量、方法)解决局部变量和成员变量的重名问题

    概念
        this:代表所在类的对象引用
        方法被哪个对象调用,this就代表哪个对象


8.值传递与引用传递
9.对象的一对一关系
10.static关键字
11.main方法分析
12.代码块
13.单例设计模式
14.对象数组与管理

面向过程:什么事情都需要自己亲历亲为
面向对象:先有类后有对象
概念:
| 在学习面向对象之前,我们可以先了解一下面向过程。
| 面向过程是一种编程思想,它强调的是过程,意思是我们做任何事,都需要亲力亲为。
| 面向对象也是一种编程思想,相对于面向过程,我们的身份可以由原来问题的执行者变为指挥者,进而把生活中很多复杂的问题变得简单化。
| 面向过程强调的是过程,比如,把大象装冰箱,一共分3步:
| 第1步:打开冰箱门
| 第2步:把大象放进去
| 第3步:关上冰箱门
| 而面向对象强调的是结果,比如:
| 谁负责把大象装进去?
| 有没有发现,如果是面向对象的话,干这件事的主体并不是你自己,你变成了一个指挥者?
| 再比如,衣服脏了,我们可以让女盆友帮忙洗,不需要关注中间过程是怎么洗的,就可以拿到干净的衣服,当然,这首先需要有一个对象(加油哦)~
| 还有,当我们想吃一道菜,其实并不需考虑这道菜是怎么做的,怎么送达的,只需点菜即可.传菜和做菜都有具体的对象来完成具体的功能.我们不需要关注实现的过程,只需要关注结果就好。

类和对象的概念:
| 例如:到一个商城找一个销售员说你要买一台洗衣机,对于销售人员而言他并不知道具体你要买的是哪种型号的洗衣机,
| 所以在此时对于洗衣机来说表示的是可以实现洗衣功能的一类对象。----抽象类
| 例如:你到商城找到一个销售员说你要买一台西门子型号叫U001价格为4999的样品洗衣机
| 所以此时我们说的洗衣机就是一个具体的事物—对象

静态特征
动态特征

对象面向对象的基本概念。
    类对于的一个具体的事物

三大特性
封装
隐藏对象的属性和实现细节,仅仅对外提供公共的访问方式
| 好处:1.提高安全性 2.提高重用性
| ​
private关键字
| 是一个权限修饰符,用来修饰成员变量和成员方法,被私有化的成员只能在本类中方位
封装常见的体现:
1.私有成员变量,提供setXxx和getXxx方法
2.将代码抽取到方法中,这是对代码的一种封装
3.将属性抽取到类中,这是对数据的一种封装

    封装的本质是一种思想体现

继承
    this关键字与super关键字
        super
            1.super调用父类的构造方法,必须在构造方法的第一个
            2.super必须只能出现在子类的方法或者构造方法中
            3.super和this不能同时调用构造函数(方法)

        两者的不同
            代表对象的不同
                this:本身调用者这个对象
                super:代表父类对象的引用

            前提
                this:没有继承也可以使用
                super:只能在继承条件才可以使用

            构造方法
                this();本类的构造
                super();父类的构造



    继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
    关键字
        extends
            扩展的意思


    Java只有单继承
    概念
        继承是类和类之间的一种关系,类和类之间的关系还有依赖、组合、聚合等
        继承关系的两个类
            子类(派生类)
            父类(基类)

        子类继承父类,使用关键字extends来表示
        子类和父类之间,从意义上讲是具有“is a”的关系


多态

构造方法
构建、创造对象的时候,所调用的方法
格式:
1.方法名与类名相同,大小写也要一致
2.没有返回值类型,连void都没有
3.没有具体的返回值(不能由return带回结果数据)

执行时机
    1.创建对象的时候调用,每创建一次对象,就会执行一次构造方法
    2.不能手动调用构造方法

作用
    可以给对象的数据进行初始化。比如:属性

注意事项
    1.构造方法的创建
        如果没有定义构造方法,系统将给出一个默认的无参构造方法
        如果定义了构造方法,系统将不再提供默认的构造方法

    2.构造方法的重载
        如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

    3.推荐的使用方式
        无论是否使用,都手动书写无参数构造方法和带参数构造方法

本质
一类的方式组织代码,以对象的组织(封装)数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值