码出高效_第二章 | 面向对象_上

目录

  • [一. OOP理念](#一. OOP理念)
    • [1. 概念辨析](#1. 概念辨析)
    • [2. 四大特性](#2. 四大特性)
      • [1. 抽象](#1. 抽象)
      • [2. 封装](#2. 封装)
      • [3. 继承](#3. 继承)
      • [4. 多态](#4. 多态)
  • [二. 初识Java](#二. 初识Java)
    • [1. JDK](#1. JDK)
      • [JDK 5-11的重要类、特性及重大改变](#JDK 5-11的重要类、特性及重大改变)
    • [2. JRE](#2. JRE)
  • [三. 类](#三. 类)
    • [1. 概述](#1. 概述)
    • [2. 接口和抽象类](#2. 接口和抽象类)
      • [1. 概念及相同点](#1. 概念及相同点)
      • [2. 不同点](#2. 不同点)
      • [3. 总结](#3. 总结)
    • [3. 内部类](#3. 内部类)
    • [4. 访问权限控制](#4. 访问权限控制)
      • [1. 由来](#1. 由来)
      • [2. public/private/无/private](#2. public/private/无/private)
      • [3. 推荐访问权限处理](#3. 推荐访问权限处理)
    • [5. this 与 super](#5. this 与 super)
    • [6. 类关系](#6. 类关系)
    • [7. 序列化](#7. 序列化)
      • [1. 序列化和反序列化](#1. 序列化和反序列化)
      • [2. 序列化方式](#2. 序列化方式)
  • 总结

一. OOP理念

1. 概念辨析

  • 面向过程编程: 是让计算机有步骤地顺序地做一件事,一种过程化的叙事思维。
    其结构相对松散,更强调如何流程化地解决问题。
  • 面向对象编程: 的思维更加内聚,强调高内聚、低耦合,先抽象模型,定义共性行为再解决实际问题。

2. 四大特性

抽象是所有特性的基础、从封装到继承最后到多态为层层递进。

1. 抽象

2. 封装

3. 继承

4. 多态

二. 初识Java

  • 1995年Sun公司首次发布Java语言。
  • 1996年Java开发工具包(即Java Development Kit 简称 JDKl.O)发布,这是 Java 发展的一个重要里程碑,标志着 Java 成为一门独立的 熟语言。
  • 随后Sun发布了Just in time 编译器(简称 JIT),不断进步的 JIT 技术使 Java 的执行速度接近甚至超过其他高级语言。
  • Java 语言拥有跨平台、分布式、多线程、健壮性等主要特点,是当下比较主流的高级编程语言。

1. JDK

最具划时代影响力的版本是JDK5 ,项目代号Tiger,成为工业级语言,在企业服务端得到极为广泛的应用。

JDK 5-11的重要类、特性及重大改变

2. JRE

JRE( Java Runtime Environment )即Java运行环境,包括 JVM、核心类库、核心配置工具等。

关于JVM

三. 类

1. 概述

2. 接口和抽象类

1. 概念及相同点

2. 不同点


3. 总结

3. 内部类

4. 访问权限控制

1. 由来

面向对象的核心思想之一就是封装 ,只把有限的方法和成员公开给别人,这也是迪米特法则的内在要求,使外部调用方对方法体内的实现细节知道得尽可能少

2. public/private/无/private


3. 推荐访问权限处理

5. this 与 super

6. 类关系


7. 序列化

1. 序列化和反序列化

内存中的数据对象只有转换为二进制流才可以进行数据持久化和网络传输。

常见使用场景:RPC框架的数据传输

2. 序列化方式

总结

面向对象编程思想把所有的有形或无形的事物都看作对象,并给对象赋予相应的属性和行为 建立对象之间的联系 使程序员更加立体、形象地解决编程领域的问题。

相关推荐
Lhappy嘻嘻6 小时前
Java IO|File 文件操作 + 字节流 / 字符流完整笔记 + 递归删除文件实战
java·笔记·php
伊玛目的门徒6 小时前
试用leetcode之典中典 二数之和问题
java·算法·leetcode
懒鸟一枚9 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
我命由我1234511 小时前
执行 Gradle 指令报错,无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
考虑考虑11 小时前
Sentinel安装
java·后端·微服务
凤凰院凶涛QAQ12 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
掘金_答案13 小时前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
猿与禅14 小时前
CosId 分布式 ID 生成器完全教程:从架构原理到生产落地
java·shardingsphere·雪花算法·分布式id·高性能·cosid·号段模式
MindUp14 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
NG47714 小时前
【软件设计与体系结构】-策略设计模式
java·设计模式·软件工程