• 第二小节之面向对象下


    继承:描述书屋之间的所属关系,在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有的类被称作父类,子类继承了父类的特征(所有可继承的属性和方法)

    派生:父类派生出了子类

    子类是父类的特类,子类是父类型。一个子类对象可以看作一个父类、

    在java中类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类,多个类可以继承一个父类,可以多层继承,子类和父类是一种相对概念

    在调用子类中无参的构造方法,它会调用父类的无参的构造方法

    重写父类方法:

      在子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型

      不能使用比父类中被重写的方法更严格的访问权限:private、protected、public

    当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,在java中用super关键字用于访问父类的成员。

    super调用父类的构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次

    final关键字可用于修饰类、变量以及方法,表示最终的含义:

      1、final修饰的类不能被继承

      2、final修饰的方法不能被子类重写(只能继承,把方法锁定,以防止任何继承类修改它的含义)

      3、final修饰的变量(成员变量和局部变量)是常量(就用static生成一个内存区,不必浪费内存空间),只能赋值一次

      

    抽象定义:抽象就是从多个事物中将共性的、本质的内容提取出来

    抽象方法不需要方法体,抽象方法对应抽象类,类是抽象的只能作父类(abstract),不能用来创建对象,如果要创建对象,必须去把抽象方法具体化(即继承这个抽象类)

    抽象方法:abstract 函数类型 函数名(参数列表); //包含抽象方法的类必须声明为抽象类,但是抽象类可以不包含任何抽象方法,只需使用abstract关键字修饰即可

    abstract不与final、static连用

    接口(interface)是最纯粹的抽象类(类中的方法都是抽象的)

    interface 接口名{
      变量类型 变量名=常量值;
      方法类型 方法名();          
    }
    

      接口中定义的方法和变量名都包含一些默认修饰符:方法使用public abstract修饰,变量用public static final修饰

    接口与类:implements,可以实现多个接口,接口与接口之间用逗号隔开

    接口与接口:extends,可以继承多个接口,接口与接口之间用逗号隔开

    一个类在继承另一个类的同时还可以实现接口,此时,extends关键字必须位于implements关键字之前

     多态:一个名称多种实现

      1、重载(overload):定义多个名称相同参数不同的方法

      2、覆盖(override):在子类中定义与父类声明相同的方法(1、equals:比较两个对象的内容是否相同 2、==:判断两个对象是否为同一个对象的不同引用)

    java提供了一个关键字instanceof,它可以判断一个对象是否为某个类(或接口)的实例或者子类实例,语法格式为:对象(或者对象引用变量) instanceof 类(或接口)

    JDk中提供了一个Object类,它是所有类的父类,即每个类的父类,即每个类都直接或间接继承自该类

    hashCode()是object类中定义的一个方法,这个方法将对象的内存地址进行哈希运算,返回一个int类型的哈希值

    异常:以异常类(Throwable)的形式对这些非正常情况进行封装

      1、error:通常出现重大问题:如运行的类不存在或者内存溢出。不编写针对代码对其处理,仅修改程序本身是不能恢复执行的

      2、Exception:在运行时进行出现的一起情况,可以通过try——catch——finally(必须执行,除非遇到System.exit(),return都不行)解决

    Syetem.out.println() //黑体  System.err.println()  //红色

    Throwable常用方法:、
    String getMessage()  //返回此Throwable的详细消息字符串
    void printStackTrace()  //将此throwab及其追踪输出至标准错误流
    void printStackTrace(printStream s)  //将此throwa及其追踪输出到指定的输出流
    

    一个try可能带多个catch,try中含有多个不同异常分别对应多个catch处理1、写多个catch时,需要从子类写到父类的异常。2、写一个catch时,直接写Exception e

    catch代码块对异常处理完毕后,程序仍会向下执行,而不会异常终止,在try代码块中,发生异常语句后面的代码是不会被执行的。

    throws 用在函数上,后面跟异常类(在main函数抛出异常,不负责任,系统将强制关闭)

    throw用在函数内,后面跟异常对象

    包:package(需要注意:包的声明只能位于java源文件的第一行)

    如果用到一个包中的许多类使用“import 包名.&;”来导入改包所有类

    访问控制级别

           private     default    protected   public

    同一类中   1              1                1             1

    同一包            0              1                1              1

    子类中        0             0                1              1

    全局范围          0             0                 0              1

  • 相关阅读:
    Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) C. Destroying Array -- 逆向思维
    一种压缩图片的方法---Machine learning 之 K-Means
    【Codeforces】Codeforces Round #374 (Div. 2) -- C. Journey (DP)
    strcpy自实现
    Coursera公开课-Machine_learing:编程作业6
    【Codeforces】Codeforces Round #373 (Div. 2) -C
    【Codeforces】Codeforces Round #373 (Div. 2)
    【Leetcode】376. Wiggle Subsequence
    Coursera公开课-Machine_learing:编程作业5
    C++实现日期类(Date类)
  • 原文地址:https://www.cnblogs.com/0405mxh/p/10124431.html
Copyright © 2020-2023  润新知