Java面向对象OOP思想概述
OOP思想(Object Oriented Programming)
类和对象
在面向对象中,类和对象是最基本、最重要的组成单元
类:类可以说是一个模板,它描述了一类对象的行为和状态
对象:对象是类的一个实例,有对应的状态和行为
类是做什么用的呢:模拟现实,封装数据和代码
假如说生活中常见的动物狗,它也可以说是一个类,那么具体的对象例如:中华田园犬、哈士奇、哈巴狗等,每一个只狗都可以说是一个对象,都有它相应的特征(属性)和行为(方法),特征比如狗的颜色、名字等,行为比如会叫、游泳、吃饭等
总的概括来说:类是描述了一类具有相同特征(属性)和行为(方法)的一组对象的集合
对象的特征在类中表示为类的属性,比如狗的颜色、名字、种类等,哈士奇和哈巴狗都是狗,但是可能他们的名字或者颜色不同
对象的行为在类中是类的方法,比如狗都有的行为会叫,那么“会叫”就是类的方法
下面列举一些现实中的示例,方便理解类和对象
| 类 | 对象 |
|---|---|
| 人 | 正在考试的韩梅梅、上课的学生小明、打王者的张三 |
| 动物 | 一只正在打架的狗、一只睡觉的猫、一条水里的鱼 |
接口
什么是接口?
java与模式这本书中举得例子很形象:家里面常用的插座,我们可以把电风扇的插头拔下来,把自己电脑的充电插头插上去,这就是说,这些电器都是可插入构建,它们之所以是可插入的,是因为它们都具有和插座相匹配的插头。
那么所谓的接口,实际上就相当于插座,可插入构建就是我们用的这些电器,接口是实现构建的可插入性的关键
接口是做什么用的?
1:类之间的交互规范

2:定义功能使用者和功能提供者之间的接口
为什么要用接口?
1:隔离变化
2:接口是对可插入性的保证
抽象类
抽象类是做什么用的:包容变与不变
抽象类仅提供一个类型的部分实现,可以同时有抽象方法和具体方法,抽象方法可以说是变化的部分,具体的方法是不变的一部分
OOP三大特性
封装
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问,要访问该类的代码和数据,需要通过接口控制,封装可以让代码更容易维护和理解
封装的优点:
1:封装可以减少耦合
2:封装的类内部的代码可以随意的修改
3:隐藏实现的细节,直接调用接口即可
继承
继承是java面向对象编程技术的一块基石,继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为,或者子类覆盖父类的行为,重新实现自己的行为
继承的特性:
1:子类拥有父类非 private 的属性、方法
2:子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
3:子类可以用自己的方式实现父类的方法
4:Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类
5:提高了类之间的耦合性
多态
多态就是同一个行为具有不同的表现形式,同一个接口,不同的实例实现可能会出现不同的结果
多态为我们提供了什么:一种实现变化的方式
多态的优点:
1:消除类型之间的耦合关系
2:可替换
3:可扩充
4:灵活、简化
OOP复用的形式
类与类之间的关系:
1:继承

2:持有
组合,类2持有类1的实例
类2使用类1

Java面向对象OOP思想概述的更多相关文章
- LY.JAVA面向对象编程思想概述
面向对象 2018年7月5日 逆袭之旅DAY09 2018年7月5日 逆袭之旅DAY09 2018-07-07
- 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装
接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...
- JAVA面向对象-----内部类的概述
JAVA面向对象-–内部类的概述s 将类定义在另一个类的内部则成为内部类.其实就是类定义的位置发生了变化. 在一个类中,定义在类中的叫成员变量,定义在函数中的叫成员函数,那么根据类定义的位置也可以分为 ...
- java面向对象的思想(java三大特性)
用通俗易懂的语言来理解java面向对象的思想 大家都知道,java是面向对象的编程,掌握面向对象的编程思想是掌握java编程语言的核心,但是很多人在面向对象方面都存在或多或少的误区,有的是刚学完C语言 ...
- Java面向对象的思想
面向对象的思想 1.面向对象的思想的特点: ①符合人们的日常思考习惯 ②能将复杂的问题简单化 ③将原来的执行者变为了现在的指挥者 面向对象的思想,所谓的对象,其实就是实体.对于实物的描述,通常有两个方 ...
- 问渠那得清如许?为有源头活水来。——java面向对象的思想
20169205 2016-2017-2 <移动平台应用开发实践>第2周学习总结 教材学习内容总结 本次作业要求的部分主要是Java高级语言实现面向对象编程的基本方法,其中所介绍的面向对象 ...
- java面向对象编程思想的理解
1.我们总说java是一门面向对象编程的语言,那什么是面向对象呢? 我是这样理解的,对象是事物存在的实体,如,猪.狗,花早等都是对象,对象由两部分组成.面向对象编程的三大特点:继承,多态,类是封装对象 ...
- 面向对象oop思想
OOP核心思想:封装,继承,多态. 理解: 对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象.而每继承性是对具有层次关系的类的属性和操作进行共享的 ...
- JAVA面向对象-----接口的概述
接口的概述 **接口(interface):**usb接口,主要是使用来拓展笔记本的功能,那么在java中的接口主要是使用来拓展定义类的功能,可以弥补java中单继承的缺点. class Pencil ...
随机推荐
- 从几个问题开始理解CFS调度器
本文转载自从几个问题开始理解CFS调度器 导语 CFS(完全公平调度器)是Linux内核2.6.23版本开始采用的进程调度器,它的基本原理是这样的:设定一个调度周期(sched_latency_ns) ...
- Java ThreadPoolExecutor详解
ThreadPoolExecutor是Java语言对于线程池的实现.池化技术是一种复用资源,减少开销的技术.线程是操作系统的资源,线程的创建与调度由操作系统负责,线程的创建与调度都要耗费大量的资源,其 ...
- js实现复制粘贴
项目中经常会遇到点击按钮复制订单号.订单id等内容到粘贴板中的需求.可是通常我们都是用Ctrl + c或右击复制的,别操心,js也是有复制命令的,那就是document.execCommand('co ...
- Spark和Spring整合处理离线数据
如果你比较熟悉JavaWeb应用开发,那么对Spring框架一定不陌生,并且JavaWeb通常是基于SSM搭起的架构,主要用Java语言开发.但是开发Spark程序,Scala语言往往必不可少. 众所 ...
- 将项目加载到tomcat中的时候报错:Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
转自:http://jingwang0523.blog.163.com/blog/static/9090710320113294551497/ 最近在用eclipse做项目,新建项目时什么都贪新,用最 ...
- Docker 镜像加速教程
原文链接:https://fuckcloudnative.io/posts/docker-registry-proxy/ 在使用 Docker 和 Kubernetes 时,我们经常需要访问 gcr. ...
- python进阶(11)生成器
生成器 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成.但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据. ...
- 用go实现常见的数据结构
目录 1 golang常见数据结构实现 1.1 链表 1.2 可变数组 1.3 栈和队列 1.3.1 原生切片实现栈和队列 1.3.1.1 切片原生栈实现 1.3.1.2 切片原生队列实现 1.3.2 ...
- mpvue 开发微信小程序搭建项目
首先 mpvue 是一款基于vue的框架,mpvue 修改了 Vue.js 的 runtime 和 compile 实现,可以运行在小程序的环境中. 第一步:安装 vue-cli vue-cli是vu ...
- xss和实体编码的一点小思考
首先,浏览器渲染分以下几步: 解析HTML生成DOM树. 解析CSS生成CSSOM规则树. 将DOM树与CSSOM规则树合并在一起生成渲染树. 遍历渲染树开始布局,计算每个节点的位置大小信息. 将渲染 ...