首页 > 其他分享 >面向对象

面向对象

时间:2022-10-06 22:34:38浏览次数:38  
标签:子类 接口 方法 面向对象 catch 父类 异常

初识面向对象

  1. 面向过程

    • 步骤简单清晰,第一步做什么,第二步做什么

    • 面向过程适合处理一些较为简单的问题

  2. 面向对象(Object-Oriented Programming ,OOP)

    • 分类思维方式

    • 适合处理复杂问题

  3. 面向对象本质

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

  4. 三大特性

    • 封装

    • 继承

    • 多态

方法回顾和加深

  1. 修饰符

 /*
 修饰符 返回值类型 方法名(){
  //方法体
  return 返回值;
 }
 */
  1. return 结束方法,返回一个结果

  2. 方法名 注意规范,见名知意

  3. 静态方法 非静态方法

  4. 值传递 引用传递

对象的创建分析

  1. 创建和初始化对象

    使用new关键字创建对象

  2. 构造器与构造方法

    • 必须与类名相同

  3. 构造器作用

    • 使用new关键字,本质是在调用构造器

    • 用来初始化值

    (alt + insert 生成构造器)

面型对象三大特征

封装
  1. 程序设计要追求 “高内聚,低耦合”

  2. 属性私有,get/set

  3. 意义

    • 提高程序安全性,保护数据

    • 隐藏代码的实现细节

    • 统一接口

    • 系统可维护性增加

继承
  1. 继承本质就是对一批类的抽象,从而实现对现实世界更好的建模

  2. extands的意思是“扩展”,子类是父类的扩展

  3. JAVA中只有单继承,没有多继承

  4. this 当前类

    • 代表对象不同

      • this:本身调用者这个对象

      • super:代表父类对象的应用

    • 前提

      • this:没有继承也可以用

      • super:只能在继承条件下可以使用

    • 构造方法

      • this(): 本类构造

      • super():父类构造

  5. super 父类的东西

    • super调用父类的构造方法,必须在构造方法的第一个

    • super必须只能出现在子类的方法或者构造方法中

      • super和this不能同时调用构造方法

  6. 子类无参构造自动调用父类无参构造

  7. 重写(方法重写)

    • 需要有继承关系,子类重写父类的方法

      • 方法名必须相同

      • 参数列表必须相同

      • 修饰符 :范围可以扩大但是不能缩小 public>protected>default>private

      • 抛出的异常:范围,可以被缩小,但不能被扩大

        ClassNotFoundException --> Exception(大)

    • 为什么需要重写:

      • 父类的功能子类不一定需要,或者不一定满足

        Alt + Insert override

多态
  1. 即同一方法可以根据发送对象的不同而采用多种不同的行为方式

  2. 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多种(父类,有关系的类)

  3. instanceof

  4. 类型转换

    • 父类引用指向子类的对象

    • 把子类转换为父类,向上转型

    • 把父类转为子类,向下转型(强制转换)

    • 方便方法的调用,减少重复的代码

  5. 注意事项

    • 多态是方法的多态,属性没有多态

    • 父类和子类,有联系 类型转换异常ClassCastException

    • 存在的条件:继承关系,方法需要重写 父类引用指向子类对象

  6. 不能重写的:

    • static方法,属于类,不属于实例

    • final常量

    • private方法

抽象类和接口

抽象
  1. abstract加在类前面 抽象类 类extends 继承 (接口可以多继承)

    • 抽象类不能new只能靠子类去实现它:约束

    • 抽象类里可以写普通方法

    • 抽象方法必须在抽象类中

  2. abstract加在方法前 抽象方法 只有方法名字,没有方法的实现

  3. 抽象类的所有方法

接口
  1. interface定义关键字 ,接口都需要有实现类

  2. 接口中的所有定义其实都是抽象的 public abstract

  3. 实现类接口的类就需要重写接口中的方法

  4. 作用

    • 约束

    • 定义一些方法,让不同的人实现

    • public abstract 方法

    • public static final 常量

    • 接口不能别实例化,接口中没有构造方法

    • implemrnts可以实现多个接口

    • 必须重写接口中的所有方法

内部类及OOP实战

内部类
  1. 在一个类的内部定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对与B类来说就是外部类

异常机制

英文名
  • Exception 异常

简单分类
  • 检查性异常

    • 最具代表性的检查异常是用户错误或问题引起的异常

  • 运行时异常

    • 运行异常是可能被程序员避免的异常

  • 错误

    • 错误不是异常,而是脱离程序员控制的问题

异常处理机制
抛出异常
捕获异常
  1. 假设要捕获多个异常:从小到大

     try{ //try监控区域
         System.out.println(a/b);
     }catch(Error e){ //catch(想要捕获的异常类型)捕获异常
         System.out.println("Error");
     }catch(Exception e){
         System.out.println("Exception");
     }catch(Throwable t){
         System.out.println("Throwable");
     }finally{  //处理善后工作
         System.out.println("finally");
     }
     //finally 可以不要   假设IO,资源,关闭

     

异常处理五个关键字
  • try

  • catch

  • finally

  • throw

  • throws

自定义异常
  1. 继承异常类 extends Exception

总结
  • 处理运行异常时,采用逻辑去合理规避同时辅助try-catch处理

  • 在多重catch块后面,可以加上catch(Exception)来处理可能会被遗忘的异常

  • 对于不确定的代码,也可以加上try-catch,处理潜在异常

  • 尽量去处理异常,切记只是简单的调用printStackTrace()去打印输出

  • 具体如何处理异常,要根据不同的业务需求和异常类型去决定

  • 尽量添加finally语句块去释占用的资源

标签:子类,接口,方法,面向对象,catch,父类,异常
From: https://www.cnblogs.com/cxzgemc/p/16758699.html

相关文章

  • 面向对象基础
    面向对象之对象与类的理解、创建面向对象独有功能、动静态方法、继承、名字查找顺序、经典类与新式类、派生方法派生,三大特性之封装、多态,property伪装、反射反射方法、......
  • 面向对象范式和面向过程范式的不同之处
    面向对象范式和面向过程范式的不同之处面向过程在面向对象的程序设计中,数据和数据上的操作是分离的,而且这种做法要求传递数据给方法。面向对象的范式重点在于设计方法......
  • 面向对象的特性
    一、继承(一)继承的概念生活中的继承,一般指的是子女继承父辈的财产。Python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法,具体如......
  • 面向对象-高级篇
    类变量:什么是类变量?一个可以被一个类所有对象共享的变量类变量关键字?static类变量语法?访问修饰符static数据类型变量名;[推荐使用]         ......
  • [金三银四面试季]Java面向对象高频面试题
      金三银四正是跳槽涨薪的好时节,波哥给大家整理了很多面试高频的问题,助力大家找到更好的工作哦,点点关注,感谢支持。面向对象面试题1.谈谈你对面向对象思想的理解?面向过程......
  • 面向对象
    一、理解面向对象(一)理解面向对象的举例为了方便了解,拿面向过程做一个对比面向过程:去超市--买菜--买肉--买米--回家--洗菜--切肉--炒菜--煮米饭--盛饭--开吃面向对......
  • java----面向对象(1)概念,类与对象的创建,构造器,创建对象和内存分析,以及小总结
    面向对象编程1.java的核心思想就是OOP面向过程思想:步骤清晰,第一步做什么,第二步做什么,适合处理一些较为简单的问题2.面向对象思想:分类的斯文模式,思考问题首先会解决问题......
  • 面向对象编程-正则表达式
    我相信不管是学什么语言,是哪个派路的对这几个字应该不会陌生吧,正则表达式终于让我给碰到了,之前看到了说实话那是真看不懂,一点头绪没有,猜我都猜不出是什么意思,今天终于把这个......
  • #yyds干货盘点#【愚公系列】2022年10月 Go教学课程 037-面向对象综合案例-微博
    一、面向对象综合案例-微博微博(Micro-blog)是指一种基于用户关系信息分享、传播以及获取的通过关注机制分享简短实时信息的广播式的社交媒体、网络平台。微博允许用户通过......
  • 面向对象的JAVA
    一个类的结构:  属性==成员变量==field==域、字段方法==成员方法==函数类和对象的关系:类是一个统属概念,对象是独立的个体publicclassClassTest{publicstatic......