面向对象

JavaScript的面向对象的特性

余生长醉 提交于 2019-12-22 14:28:24
JavaScript的面向对象的特性 什么是面向对象 使用对象时,只关注对象提供的功能,不关注其内部细节 面向对象是一种通用思想,不是只有编程才能用,任何事情都可以用 封装性 为了对代码更好的进行复用和维护 继承性 解决了代码复用问题,为了代码更简单的复用 多态性 多态的目的就是为了代码更灵活的复用,使子类继承的行为可以变化 来源: CSDN 作者: 浏星者 链接: https://blog.csdn.net/qq_45740562/article/details/103651056

Python

耗尽温柔 提交于 2019-12-21 12:05:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、概述 1、 面向过程编程 面向过程编程往往用一长段代码来实现指定功能,在开发过程中最常见的操作就是复制粘贴,即:将之前实现的代码块复制到现需功能处。 while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 内存占用 > 80%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 2、 函数式编程 将具有相同功能的代码写到一个函数中,当需要时,调用、执行这个函数 def 发送邮件(内容) #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 while True: if cpu利用率 > 90%: 发送邮件('CPU报警') if 硬盘使用空间 > 90%: 发送邮件('硬盘报警') if 内存占用 > 80%: 发送邮件('内存报警') 3、 面向对象编程 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计) 面向对象编程是一种编程方式,此编程方式需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能

面向对象设计原则之六:合成/聚合复用原则

眉间皱痕 提交于 2019-12-21 09:39:12
组合/聚集复用原则 组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP).组合和聚合都是对象建模中关联(Association)关系的一种.聚合表示整体与部分的关系,表示“含有”,整体由部分组合而成,部分可以脱离整体作为一个独立的个体存在。组合则是一种更强的聚合,部分组成整体,而且不可分割,部分不能脱离整体而单独存在。在合成关系中,部分和整体的生命周期一样,组合的新的对象完全支配其组成部分,包括他们的创建和销毁。一个合成关系中成分对象是不能与另外一个合成关系共享。 组合/聚合和继承是实现复用的两个基本途径。合成复用原则是指尽量使用合成/聚合,而不是使用继承。 只有当以下的条件全部被满足时,才应当使用继承关系。 1. 子类是超类的一个特殊种类,而不是超类的一个角色,也就是区分“Has-A”和“Is-A”.只有“Is-A”关系才符合继承关系,“Has-A”关系应当使用聚合来描述。 2 .永远不会出现需要将子类换成另外一个类的子类的情况。如果不能肯定将来是否会变成另外一个子类的话,就不要使用继承。 3 .子类具有扩展超类的责任,而不是具有置换掉或注销掉超类的责任。如果一个子类需要大量的置换掉超类的行为,那么这个类就不应该是这个超类的子类。 错误的使用继承而不是合成/聚合的一个常见原因是错误地把“Has-A”当成了“Is-A”.”Is-A

Python学习笔记-面向对象篇

断了今生、忘了曾经 提交于 2019-12-20 14:45:44
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 定义 #创建类 class Student1: pass #创建类,继承自object类 class Student1(object): pass #带构造方法的类以及对象方法调用 class Student2(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score)) ##实例化和调用 #实例化类 >>> bart = Student1() >>> bart <__main__.Student object at 0x10a67a590> >>> Student1 <class '__main__.Student'> >>> bart = Student2('Bart Simpson', 59) >>> bart.print_score() Bart Simpson: 59 #绑定属性 >>> bart.name = 'Bart Simpson' >>> bart.name 'Bart Simpson' 访问限制 双下划线 __ : 私有变量(解释器把双下划线改成了单下划线

设计模式——面向对象设计原则

对着背影说爱祢 提交于 2019-12-20 11:42:15
设计原则名称 设计原则简介 重要性 单一职责原则 类的职责要单,不能将太多的职责放在一个类中 四颗星 开闭原则 软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能 五颗星 里氏替换原则 在软件系统中一个可以接受基类对象的地方必然可以接受一个子类对象 四颗星 依赖倒转原则 要针对抽象层编程,而不要针对具体类编程 五颗星 接口隔离原则 使用多个专门的接口来取代一个统一的接口 两颗星 迪米特法则 一个软件实体对其它实体的引用越少越好,或者说如果两个类不必彼此直接通信,那个这两个类就不应当发生直接的相互作用,而是通过引一个第三者发生间接交互 三颗星 合成复用原则 在系统中应该尽量使用组合和聚合关联关系,尽量少使用甚至不使用继承关系 一、单一职责原则: 定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。就一个类而言,应该仅有一个引起它变化的原因。 二、开闭原则: 一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时侯,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改原代码的情况下改变这个模块的行为。 三、里氏替换原则 定义一:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型S是类型T的子类型。 定义二:所有引用基类(父类

面向对象:三个特征:封装,继承,多态。

有些话、适合烂在心里 提交于 2019-12-19 12:46:10
面向对象:三个特征:封装,继承,多态。 现实生活中的对象:张三 李四 王五。 类就是:对现实生活中事物的描述。 对象:就是这类事物,实实在在存在个体。 属性对应是类中变量,行为对应的类中的函数(方法)。 其实定义类,就是在描述事物,就是在定义属性和行为。属性和行为共同成为类中的成员(成员变量和成员方法)。 成员变量和局部变量的作用范围。 成员变量作用于整个类中。 局部变量变量作用于函数中,或者语句中。 在内存中的位置: 成员变量:在堆内存中,因为对象的存在,才在内存中存在。 局部变量:存在栈内存中。 例如:描述汽车(颜色,轮胎数)。描述事物其实就是在描述事物的属性和行为。 class Car { //描述颜色 Stringcolor = "红色"; //描述轮胎数 intnum = 4; //运行行为。 voidrun() { System.out.println(color+".."+num); } } class CarDemo { publicstatic void main(String[] args) { //生产汽车。在java中通过new操作符来完成,就是在堆内存产生一个实体。 将已有车的颜色改成蓝色。用该对象做使用。在java的方式是:对象.对象成员 newCar().num = 5; newCar().color = "blue"; newCar().run();

这是博客

情到浓时终转凉″ 提交于 2019-12-19 02:18:54
s是 早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。面向对象是指一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的集合。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。 [2] 起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。 [2] 面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。 [2] 面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成

Java面向对象之类和对象

浪尽此生 提交于 2019-12-17 19:57:34
Java是一种面向对象的程序设计语言(Object Oriented Programming:OOP),面向对象的程序设计语言中有类和对象的概念,它们在概念上有什么区别呢?   这往往是一个令面向对象的初学者感到迷惑的问题。      下面的解说虽然针对的是Java语言,但对所有面向对象的程序设计语言都通用。      什么是类      在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。   举一个浅显的例子。Person(人)是对地球上所有具有特殊智能的生物包括你,我,他,张三,李四等的抽象。   “你”,“我”,“他”,“张三”,“李四”等等都属于“人”这一类所包含的个体。      Java语言中对类Person的定义往往如下:   public class Person {    private String name; //属性:姓名    private int height; //属性:身高    private int weight; //属性:体重          public Person() {}    public Person(String name, int height, int weight) {    this.name = name;    this.height = height;    this.weight =

Java面向对象-3.main、代码块

这一生的挚爱 提交于 2019-12-16 01:46:20
main主方法: class Main { public static void main ( String [ ] args ) { //new String[0] //int[] arr = new arr[0]; //String[] args = new String[0]; System . out . println ( args . length ) ; //args可以修改和上面一样就行 main ( ) ; //完整写法为Main.main(); } public static void main ( ) { //主方法重载 System . out . println ( "111111111111" ) ; } } 主方法解释: public被jvm调用,访问权限足够大 static被jvm调用,不用创建对象,直接类名访问 void被jvm调用,不需要给jvm返回值 main一个通用的名称,不是关键字,但是被jvm识别 String[] args以前用于接受键盘录入数据,现在不用了 当一个类中所有的方法都是静态的,需要再多做一步,将构造方法私有private 类名(){},目的是不让其他类创建本对象。 math类: 在java.long包下,所以不需要导包 获取随机数的方法:public static double random():返回带正号的double值

面向对象六大设计原则

丶灬走出姿态 提交于 2019-12-16 01:45:20
设计原则和设计模式的关系 面向对象的分析设计,需要遵循六大设计原则,这些设计原则大都会从思想上指导面向对象分析设计的正确方向,掌握这些原则能帮助我们更好的理解面向对象的概念,也能更好的理解设计模式。因为在实际开发中,也需要综合考虑业务需求、功能、实现难度、系统性能、时间与空间等很多方面的问题,所以很少做到完全遵守,总是在有意无意的违反一些或者是部分设计原则,这时便需要综合权衡其利弊。 设计模式是针对某个场景下某些问题的某个具体的解决方案。也就是说设计模式就是这些设计原则的一些具体的体现,因此设计模式也是应该遵守这些原则的。所以,学习设计模式,首先要学习的就是设计原则。 六大设计原则 单一职责原则——SRP 开闭原则——OCP 里式替换原则——LSP 依赖倒置原则——DIP 接口隔离原则——ISP 迪米特原则——LOD 六大设计原则关系图 1. 1.单一职责原则 (Single Responsibility Principle) 单一职责原则,简称SRP,定义是应该有且仅有一个类引起类的变更,即:一个类只负责一个职责。 优点: 类的复杂性降低,实现什么职责都有明确的定义; 逻辑变得简单,类的可读性提高了,而且,因为逻辑简单,代码的可维护性也提高了; 变更的风险降低,因为只会在单一的类中的修改。 2.里氏替换原则 (Liskov Substitution Principle)