面向对象总结

类和对象

一组组相似事务的统称类,只要有相似点的就是同一类,类只强调方法的相似性
类的基本结构
属性:对象数据的描述
方法:对象的行为
构造方法:用于实例化对象
内部类:在类中声明的类(inner class)
块:分静态块与实例块
类的声明:(访问权限修饰符public.default(可忽略不写,为默认))(修饰符final.abstract.synchronized)class 类名{ 类体 }
类的作用:类就是一个模板,定义多个对象共同的属性和方法 如:学生类(张三,李四) 手机类(华为.oppo)
  属性方法构造方法和其他内容(可以是代码块**、静态代码块内部类)构成。
 其中方法的格式如下:

访问修饰符  返回值类型   方法名(形式参数列表){
	Java语句;… … …				//方法体
 }

构造方法

  构造方法的格式如下:

[修饰符] 类名(形参列表){
	//n条语句
}

构造方法的要点:

  • 构造器通过new关键字调用!!
  • 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。
  • 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!
  • 构造器的方法名必须和类名一致!

Object类

  Object类是所有的类的直接间接父类

  • 常用方法
    1.重写toString方法
      作用:用于显示对象的属性值,默认返回显示的是:完整的包名+类名+@+十六进制的整数。
    2.重写equals方法
      作用:用于去比较两个对象的属性值是否相同。

包机制

  声明包:使用 package关键字
  导入包:使用 import关键字

  • 要点:如果导入两个同名的类,只能用包名+类名来显示调用相关类:
    JDK常用的包
  • java.lang (不需要手动导入,默认导入java.lang包)
      ( 包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。)
  • java.awt
      ( 包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。)
  • java.net
      (包含执行与网络相关的操作的类。)
  • java.io
      (包含能提供多种输入/输出功能的类。)
  • java.util
      ( 包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。)

封装

封装是面向对象三大特征之一。对于程序合理的封装让外部调用更加方便,更加利于写作。同时,对于实现者来说也更加容易修正和改版代码。
1、封装不想让别人知道或者看到的东西2、封装属性、封装方法3、保护隐私
编程中封装的具体优点
(1)提高代码的安全性
(2)提高代码的复用性
(3)“高内聚”:封装细节,便于修改内部代码,提高可维护性。
(4)“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。
  封装的步骤:
    1.将属性进行private私有化
    2.提供公有的取值,赋值方法
    3.在赋值的方法中进行判断
  JavaBean规范:

   - 类使用public修饰
   - 属性使用private封装
   - 提供公有的getter,setter方法
   - 提供无参构造方法/构造器

继承

  意义:提高代码的复用性
  使用extends关键字实现继承
  继承一定要满足一个关系is-a的关系 “XX是XXX”
  方法重写(override)
  Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。
  目的:父类提供的方法,不能满足子类的需求,子类就可以对方法进行重写 (对方法体进行重新编写)。
    方法的重写需要符合下面的三个要点:1. “= =”: 方法名、形参列表相同。2. “≤”:返回值类型和声明异常类型,子类小于等于父类。3. “≥”: 访问权限,子类大于等于父类。
    实现的条件:
    1.在子类中
    2.方法的名称、参数的类型、个数和顺序与父类中的方法完全相同
    3.如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object.
  方法重载(overload)
    实现的条件:
    1.同一个类中
    2.方法的名称相同
    3.参数不同,类型是,个数,顺序不同
    4.与返回值类型和访问权限无关
  继承和组合
    1.我们可以通过继承方便的复用已经定义类的代码。还有一种方式,也可以方便的实现“代码复用”,那就是:“组合”。
    2.“组合”不同于继承,更加灵活。
“组合”的核心就是“将父类对象作为子类的属性”,然后,“子类通过调用这个属性来获得父类的属性和方法”。

  super关键字
   作用:

  • 可以用于区分父类和子类的同名属性
  • 调用父类的属性或父类的方法,super也可以省略不写
  • 调用父类的构造方法 super(), super(…),要求必须是子类构造方法中第一句代码

多态

  **要求:多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。
  意义:提高程序的可扩展性和可维护性
  概念:同一个方法调用,由于对象不同可能会有不同的行为。
  实现多态的步骤:
   1.继承父类
   2.重写子类
   3.父类引用,指向子类对象
  对象转型

  • 类型转换:子类转成父类
  • 类型转换:父类转成子类

抽象

  • 抽象方法
    概念:使用abstract修饰的方法,没有方法体,只有声明。
  • 抽象类
    概念:
      1. 1.有抽象方法的类只能定义成抽象类
      1. 2.抽象类不能实例化,即不能用new来实例化抽象类。
      1. 3.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
      1. 4.抽象类只能用来被继承。
      1. 5.抽象方法必须被子类实现。
    特征
      抽象类不能创建对象 ,不能 new
      可以含有0个或多个抽象方法
    要点
      1. 抽象方法和抽象类均必须用abstract来修饰。
      2. 抽象方法没有方法体,只需要声明不需实现。
      3. 抽象类可以包含属性、方法、构造方法。
      4. 抽象类不能实例化,及不能用new来实例化抽象类,只能用来被子类调用。
      5. 抽象类只能用来继承。
      6. 抽象方法必须被子类实现。抽象类的子类必须覆盖所有的抽象方法才能被实例化,否则还是抽象类

接口

定义

  • 接口中可以包含属性–>静态常量
  • 接口中可以包含方法–>抽象方法
  • 接口中可以包含非抽象方法–>default关键字,static关键字(JDK1.8)
  • 接口与接口的关系–》继承 -->java中的接口是多继承的
  • 类与接口的关系–>实现 implements
  • 即有继承,又有实现,谁在前谁在后?extends在前,implements在后
  • 如果父类与接口中有同名方法,不是完全相同的方法,要求父类与接口中的方法,在类中必须构成重载

面向对象总结的思维导图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值