首页 > 编程语言 >Java 学习笔记4

Java 学习笔记4

时间:2022-08-17 00:15:13浏览次数:61  
标签:Java 面向对象 对象 子类 多态 笔记 学习 继承 父类

面向对象&面向过程

面向过程思想

  • 步骤清晰简单,一步接一部
  • 面向过程适合处理一些简单的问题

面向对象思想

  • 物以类聚,分类的思维模式,先思考问题会解决哪些问题,然后对问题进行分类。最后,才对某个分类下的细节进行面向过程的思索。
  • 面向对象适合处理复杂的问题,适合需要多人协作的问题。

面向对象的三大特性

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

三大特性:封装、继承、多态

从认识论的角度是先有对象后有类。对象是具体的事务,类是抽象的,是对对象的抽象。

从代码运行角度是现有类后有对象。类是对象的模板。

创建与初始化对象

  • 使用关键字new初始话对象
  • 类中的构造器也成为构造方法,在创建对象时必须调用。且必须和类同名,没有返回类型,也不写void
  • 一旦定义了有参构造方法,必须手动定义无参构造,否则报错

封装

  • 该露的露,该藏的藏:我们程序设计的追求是高内聚,低耦合。高内聚指类内部的数据操作细节自己完成,不允许外部干涉;低耦合指仅暴漏少量的方法供外部使用。
  • 封装(数据的隐藏)。通常,应禁止直接访问一个对象中数据的实际表示,应该通过接口访问,这称为信息的隐藏。
  • 属性私有,get/set。

继承

  • 继承的本质是对某一批类的抽象,从而实现对先实世界的建模。
  • extends 的意思是扩展。子类是父类的扩展。
  • Java中只有单继承。
  • 继承是类间的一种关系,除此之外,还有依赖、组合、聚合等。
  • 继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
  • 子类和父类之间,从意义上应该具有“is a”关系。
  • Object(任何一个类都继承的父类)、super(指向父类)、方法重写(重写都是方法,跟属性无关)。
  • 继承只能继承父类中public修饰的属性和方法。

多态

  • 同一个方法根据发送对象的不同而采取多种不同行为的方式
  • 一个对象的实际类型是确定的,但可以指向对象的引用类型有很多
  • 多态存在条件:有继承关系,子类重写父类方法,父类引用指向子类对象
  • 多态是方法的多态,属性没有多态
  • instanceof (类型转换)引用类型的转换,判断一个对象是什么类型

标签:Java,面向对象,对象,子类,多态,笔记,学习,继承,父类
From: https://www.cnblogs.com/ahtam/p/16593460.html

相关文章

  • Day4 (复习:Java中的方法)
    Java方法何为方法?java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引......
  • 个人学习-Linux-IO多路复用
    LinuxI/O的多路复用参考链接:[1]confirmwz博客:Epoll原理解析https://blog.csdn.net/armlinuxww/article/details/92803381;[2]hechen知乎专栏:一文看懂IO多路复用https:......
  • Java SE 9 模块化示例
    JavaSE9模块化示例作者:Grey原文地址:JavaSE9模块化示例说明JavaSE9引入了模块系统,模块就是代码和数据的封装体。模块的代码被组织成多个包,每个包中包含Java类和......
  • Java笔记第十三弹
    函数式接口有且仅有一个抽象方法的接口适用于Lambda使用的接口@FunctionalInterface//表示函数式接口函数式接口作为方法的参数publicclassMain{publicstati......
  • 816笔记(动画)
    三大系列总结element.offsetWidth返回自身包括padding,边框,内容区的宽度,返回值不带单位element.clientWidth返回自身包括padding,内容区的宽度,不含边框,返回值不带单位......
  • 2022-08-16 第六小组 高佳誉 学习笔记
    DQL数据库查询语言重点,DQL是我们每天都要接触编写最多也是最难的SQL,该语言用来查询记录,不会修改数据库和表结构。构建数据库创建一张student表:DROPTABLEIFEXISTSst......
  • javaScript BOM
    window 代表浏览器窗口window.alert() //弹窗window.innerHeight //浏览器内部高window.innerWidth //浏览器内部宽window.outerHeight //浏览器外部高wind......
  • vue学习之------动态组件
    vue提供了一个组件的占位符 ————<component:is="组件名"></component>,用来实现动态切换组件的显示与隐藏父组件中:  如果希望切换组件时,不要销毁组件,可以......
  • DW组队学习——深入浅出PyTorch笔记
    本篇是针对DataWhale组队学习项目——深入浅出PyTorch而整理的学习笔记。由于水平实在有限,不免产生谬误,欢迎读者多多批评指正。安装PyTorch安装Anaconda这里为了避免手......
  • Java面试知识点总结
    基础篇一、什么是JavaJava是一门面向对象的高级编程语言,不仅吸收了C++语言的各种优点,比如继承了C++语言面向对象的技术核心。还摒弃了C++里难以理解的多继承、指针等概念......