OOP(面向对象编程)


1.封装


(定义私有的属性,用公共的方法访问    意义:隐藏细节,对外提供接口)

狭义:将属性私有化向外提供公共的访问的方法
广义:将公共的代码提取,重复使用


 什么时候使用封装?
        ①编写实例类时
        ②重复调用代码时
优点:调用者不能随意修改属性的内容

2.继承(extends)

   继承提高了代码的重复率
        1.继承的条件:
          ①.继承时要满足is-a的关系(子类继承父类)
          ②.不能为了部分继承关系来使用继承
        (只能单继承 不能多继承 一个子类只能有一个父类,父类可以有多个子类)
优点:提高代码的可重用性,起到扩展功能的作用!


        2.方法重载条件overload:
            ①.同一类中方法名相同
            ②.参数列表不同
            ③.(返回值 修饰符不同)/与返回值无关


        3.方法重写override:
           ①目的:父类中的方法无法满足子类需求
           ②扩展父类的方法super关键字 使用super 进行父类方法调用

                    子类想要调用父类中的构造方法时可以使用super关键字(Super方法要写在第一行)
                    当调用子类的构造方法时先调用的父类的构造方法(先父后子)
           ③this关键字就代表当前这个对象

        条件:

            ①不能私有化
            ②在子类存在方法与父类的方法名字相同,而且参数个数与类型一样,返回值也一样
            ③访问修饰符子类重写的方法不能小于父类的方法
        4.构造方法:
            ①无返回值
            ②无void
            ③方法名类名保持完全一致
        (调用new就是调用无参的构造方法)
            

3.多态


⭐① 多态的基础是继承  继承的基础是封装
     ②多态的好处:可以使用父类  表示所有的子类对象  也就是一个类 具有多种形态
     ③存在条件:继承   方法重写   父类引用指向子类对象


        1.向上转型(将子类对象赋给父类引用):
            优点:直接转换;
            缺点:不能直接调用子类中独有的方法
                (注:子类声明成父类对象 编译时认为是父类对象    在程序运行时还是子类对象
                        使用多态表现的时候调用方法只可以使用子类和父类中都有的方法,不可以使用子类中单独声明的方法)
        2.向下转型(强制转换)(父类转子类):
           优点:可以使用子类中独有的方法
           缺点:类型转换异常ClassCastException


4.访问修饰符


    ①private表示私有,只有自己类能访问
    ② default(friendly)表示没有修饰符修饰,只有同一个包的类能访问
    ③protected表示可以被同一个包的类以及其他包中的子类访问
    ④public表示可以被该项目的所有包中的所有类访问

优先级:public>protected>default>private

5.抽象类

①abstract修饰的类

 ②用abtract修饰的方法就是抽象方法
(写一些公共的方法)
A.abstract加到方法前表示抽象的方法,加到类之前表示的是抽象类
B.抽象的方法是没有方法体的,只做方法的声明,等待子类必须重写该方法
C.抽象的方法不可以写到普通类中,必须写到抽象类
D.抽象的类中可以定义普通方法,普通方法不用重写
E.抽象类是不可以被实例化,但是仍然可以书写构造方法,这样目的就是为了继承的特性
F.一个类继承了抽象类要么实现父类中所有的抽象方法,要么这个类也是抽象类
1.抽象类里面可以有具体的的方法
2.抽象类有构造方法,但是不可以new
3.子类继承了一个抽象类  必须重写抽象方法 如果不重写子类变成抽象类
4.抽象类里可以没有抽象方法
好处:让所有子类必须实现父类的抽象方法


6.接口


    特点:
                ①.可以多实现,继承多个接口
                ②.接口中没有构造方法
                ③.接口中的变量默认是使用public static fainal(静态常量)进行修饰的
    1.接口条件:实现了接口  就必须实现接口中的方法,接口是一种规范
    2.目的:开闭原则(可添加类  但是不能修改原有的代码)


7.异常


        ⭐捕获异常的时候必须按照从小到大的顺序捕获
        try{}

        catch(){}

        finally{}
catch代码块可以省略  Finally 可以省略   但是这两个不能同时省略
1.Throw和Throws的区别
        Throw写在方法体里,后面只能跟一个异常的对象

        Throws写在方法名的后面,后面可以跟异常的类名,并且可以跟很多的异常类

2.Error:致命异常
⭐Throwable是所有异常的父类

3.代码中会出现的异常:
        Exception:运行时异常
        NullPointerException 空指针异常
        ArithmeticException 算数异常
        ArrayIndexOutOfBoundsException 数组下标越界异常
        InputMismatchException输入异常
        ClassCastException 类转换异常
        DateFormateException 日期转换异常
        ClassNotFoundException 类找不到异常

    非运行时异常(编译异常)

4.异常类的种类


5.日志的级别:
    DEBUG - debug 调试级别的日志
    INFO - info正常级别的日志
    WARN - warn警告级别的日志
    ERROR - error错误级别的日志
    FATAL - fatal致命级别的日志
    ⭐程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值