当前位置: 首页 > news >正文

JAVA整理学习实例(一)面向对象

JAVA整理学习实例(一)面向对象

注:整理一下之前写的东西,然后在修修补补,水平有限,有错误的请指正。

前言

       基础部分的面试大部份是理论和一些语法细节,如果平时没有关注,在面试或者做面试题的时候,会难以下笔。所以理论的东西看过以后,要自己学会说出来,形成自己的语言,这样在面试的时候,才能更好的表达,也能和面试官更好的沟通,不会因为听不明白而引起歧义。


什么是面向对象?

    面向对象是相对于面向过程来说的。他们都是编程的一种思想。主要是为了把复杂的问题简单化。
    从生活中来说:对象就是生活中的各种事物,如:电脑,人类,茶杯,石头等。这些东西每一类都是一种对象(对象是对事物的抽象)。对于每一个对象来说它都有一些特征,和行为。比如石头,它的特征(属性)就有重量、体积、材质等等;而石头相对于人来说它不具有主动的行为,所以石头没有行为(方法)。而对于一个人来说他的特征(属性)会有年龄,身高,体重,性别等等,同时还有吃饭,运动,说话等行为(方法)。

    从代码层面来说:对象就是我们将某些功能封装在其中(包含属性和方法),然后在对象去实现具体的方法功能,我们只需要调用对象的方法就可以去处理具体的问题,这样就是面向对象。这样做可以将一个复杂的逻辑分成多个不同的对象,每个对象处理不同的功能,这样可以简化过程,符合人们思考习惯

举例:你是老板,你需要做一个网站,你只需要对产品说你要做什么业务,对设计说你要的画面,对工程师说你要什么功能。这样产品去分析业务,设计去设计画面,工程师去开发功能。他们三个就是对象。你只需要面向他们就可以,至于他们是如何工作,如何做出一个网站,老板完全不用关心。


面向对象的三大特征:

封装:
将对象的属性和方法实现细节都隐藏在对象中,只提供专门编写的公共方法提供给外部。
好处:

  • 封装可以使代码分离,降低程序复杂性,利于维护;
  • 提高复用性;
  • 保护私有属性,提高安全性。

继承:
继承主要是在已有的基础类上进行扩展。子类继承父类的特征和行为,使子类对象具有父类的属性和方法。
java只支持单继承,就是一个子类只能继承一个父类。


多态:
多态是同一个行为具有多个不同表现形式或形态的能力。
条件:

  • 继承关系:多个不同的子类继承父类。

    例:子类(Apple,Banana,Orange), 继承抽象的父类Fruit。

  • 实现关系:多个实现类实现同一个接口类。

    例:实现类(AppleImpl,BananaImpl,OrangeImpl), 实现父类FruitInterface。

  • 方法重写:一个方法可以被多次重写。

    例:方法A被多次重写A(a),A(b)。

  • 父类的引用指向子类的对象:创建对象的时候,父类的引用可以指向子类创建的对象。

    例:【父类 父类引用 = new 子类对象()】。

http://www.lryc.cn/news/219193.html

相关文章:

  • QT 实现解密m3u8文件
  • 论文阅读—— BiFormer(cvpr2023)
  • 理解 fopen的 rwa r+w+a+ 参数含义
  • 【强化学习】17 ——DDPG(Deep Deterministic Policy Gradient)
  • 驱动开发11-2 编写SPI驱动程序-点亮数码管
  • Java使用pdfbox进行pdf和图片之间的转换
  • 机器学习中的关键组件
  • 【JVM】JDBC案例打破双亲委派机制
  • 每天五分钟计算机视觉:池化层的反向传播
  • Docker的安装、基础命令与项目部署
  • Nodejs和npm的使用方法和教程
  • 机器学习---支持向量机的初步理解
  • 【unity实战】Unity实现2D人物双击疾跑
  • Spring面试题:(二)基于xml方式的Spring配置
  • XR Interaction ToolKit
  • spring-boot中实现分片上传文件
  • 【ICN综述】信息中心网络隐私安全
  • 基于STC12C5A60S2系列1T 8051单片机EEPROM应用
  • 手撕排序之直接选择排序
  • 洛谷 P1359 租用游艇
  • springboot中没有主清单属性解决办法
  • C/C++ static关键字详解(最全解析,static是什么,static如何使用,static的常考面试题)
  • windwos10搭建我的世界服务器,并通过内网穿透实现联机游戏Minecraft
  • 【实战Flask API项目指南】之七 用JWT进行用户认证与授权
  • 鸿蒙LiteOs读源码教程+向LiteOS中添加一个简单的基于线程运行时的短作业优先调度策略
  • axios的使用与封装详细教程
  • C++二叉搜索树
  • elasticsearch索引按日期拆分
  • 纯python实现大漠图色功能
  • debounce and throtlle