OOP面向对象学习笔记(1)---基础概念

一:什么是对象?

世间万物皆对象,包括有形的和无形的。

二:对象的组成是什么?

  1. 元素:是对象的数据模型,用于描述对象。如一个人(对象)的年龄,身高等等。
  2. 行为:是对象的行为模型,用于描述对象做什么。如一个人(对象)可以吃饭、学习等等。

三:什么是面向对象编程?

在编程的时候数据结构都通过对象的方式进行存储。

四:为什么使用面向对象?

  1. 对象的描述方式更加贴合真实世界,有利于大型业务的理解,使我们思路开阔。
  2. 能够对代码进行更好地复用,精简代码。

五:面向对象的实质?

把要解决的问题都用对象的方式解决。

六:面向对象的基本思路?

识别对象--->识别对象的属性--->识别对象的方法

七:面向对象的基本原则?

高内聚、低耦合。可以增加程序的可复用性、可移植性、可读性、健壮性等。

高内聚:类内的各个元素只完成职责内的事情,即类内部的属性,方法不参与其他事情,只负责类内。

低耦合:各个类只完成自己分内的事情,不干涉其他类,也不受其他类干涉。

但是,类与类之间的交互是不可避免的,尽可能使用单独的接口(比如外交部)与外界进行交互。

举例:各个国家是不同的对象,比如中国是一个对象,美国是一个对象,这两个对象之间不相互干涉内政,各自完成各自国家的事情。(高内聚、低耦合)

              但是,各个国家之间也会有一些沟通、交流,这时候就有专门的外交部。单独的接口

 举例:对象只负责一项特定的职能,职能可大可小。如NBA球员没有明星的“艺名”属性。

               对象之间可以看到彼此之间的一些属性,一些方法。如各部门之间各司其职,沟通找中间人。

时间: 2024-11-05 21:48:32

OOP面向对象学习笔记(1)---基础概念的相关文章

OpenFlow Switch学习笔记(一)——基础概念

OpenFlow Switch v1.4.0规范是在2013年10月14号发布,规范涵盖了OpenFlow Switch各个组件的功能定义.Controller与Switch之间的通信协议Open Flow Protocol等.下文主要是基于个人理解整理的一些学习笔记,理解不到位的地方还请大家多多指教. 一.基础概念图: 首先我们先看下Open Flow Switch的整体结构,以便有一个初步的感性认识,如下图所示: 从上面架构图中,我们可以看到Open Flow Switch主要是由以下几个部

Elasticserach学习笔记-01基础概念

本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. 原文出处:https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html ElasticSearch有几个核心概念,了解它们将有助于我们的整个学习过程. 近乎实时(NRT)Elasticsearch是一个近乎实时的搜索平台.这意味着从你为一个文档建立索引到该文档可被检索

OOP面向对象学习笔记(2)---基础实践

一:构造函数与析构函数 构造函数:在类被实例化时自动调用的一个函数.主要用来初始化. 析构函数:程序运行结束时(或者对象被销毁时)自动调用的最后一个函数.主要用来释放资源等. code next... 1 <?php 2 class Test { 3 public function __construct($obj) { 4 echo "hello " . $obj . "<br>"; 5 } 6 public function __destruc

Java快速教程--vamei 学习笔记(基础篇)

链接:http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html java快速教程第1课 从HelloWorld到面向对象 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/14/2958654.html java快速教程第2课 方法与数据成员 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/25/2964430.html java快

面向对象学习笔记

abstract:抽象类或方法的关键字注意事项:一个类中至少有一个抽象方法不允许有大括号主要意义就是规范方法,要求必须按照抽象中的方法来写继承抽象类的类,必须重载完全抽象类的方法抽象类是不能被实例化的,因为本身没有意义 extends 继承的关键字 类中常用的关键字:final 被定义的类不能被继承,该类的方法不能被继承,相当于一个锁的功能self self::静态成员,相当于类名称::静态成员,和this是有区别的,$this访问类中的内容必须实例化,而self是直接可以访问类中的内容的,多用

cocos2dx游戏开发学习笔记1-基本概念

这里主要讲构建整个游戏需要的基本元素,很大部分都摘自cocos2dx官网. 1.Director 导演 导演,顾名思义,就是对整个游戏进行整体控制的. "Director"是一个共享的(单元素集)对象,负责不同场景之间的控制.导演知道当前哪个场景处于活动状态,允许你改变场景,或替换当前的场景,或推出一个新场景.当你往场景堆中推出一个新场景时,"Director"会暂停当前场景,但会记住这个场景.之后场景堆中最顶层的场景跳离时,该场景又会继续活跃.此外"Di

C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型--装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. int i = 10; Object obj = i; 三:将引用类型转换为值

[Golong]学习笔记(一) 基础知识

Go编程基础 Go的内置关键字(25个) 不多 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continute for import return var Go的注释方法(和js一样) 单行注释: // 多行注释: /**/ Go程序一般结构 common_structure.go 通过 pack

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P