封装

《自拍教程35》段位二_Python面向过程函数

若如初见. 提交于 2020-03-04 23:26:16
Python批处理脚本只能处理较为简单的顺序执行的语句, 语句太多了,就有点乱...是时候升级一下了。 函数可以将多条语句分组封装,实现面向过程的,简单的模块化管理。 方便将语句实行“网格”管控,不容易乱。 代码编译或运行中出bug不要紧,找该函数即可。 简单的Python函数 简单点,就是将多条语句“封装”下, 相当于将原来凌乱的语句,用塑料袋打包“封装”了下, 最终实现模块化的管理, 比如: # coding=utf-8 import requests def download_file(): #这是将多条语句打包“封装” s = requests.get("http://www.zipython.com/images/angel.mp3") with open("angel.mp3", "wb") as hf: hf.write(s.content) download_file() # 调用的时候,只用这一句就够了。 更有意义的Python函数 包含参数输入,有返回值等,这才更具有函数的意义所在, 具备数据加工处理功能(有输入,有数据处理,有输出返回), 又实现了模块化“封装”: # coding=utf-8 import os import requests def download_file(url): #模块化“封装”,并预留url参数输入接口 s = requests

Java程序员应当知道的10个面向对象设计原则

我只是一个虾纸丫 提交于 2020-03-01 15:41:31
Java程序员应当知道的10个面向对象设计原则 面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。我经常看到不同经验水平的java程序员,他们有的不知道这些OOPS 和SOLID设计原则,有的只是不知道一个特定的设计原则会带来怎样的益处,甚至不知道在编码中如何使用这些设计原则。 (设计原则)底线是永远追求高内聚、低耦合的编码或设计。 Apache 和 Sun的开源代码是学习Java和OOPS设计原则的良好范例。它们向我们展示了,设计原则在Java编程中是如何使用的。Java JDK 使用了一些设计原则:BorderFactory类中的工厂模式、Runtime类中的单例模式、java.io 类中的装饰器模式。 虽然学习设计模式(原则)最好的方法是现实中的例子和理解违反设计原则带来的不便,本文的宗旨是向那些没有接触过或正处于学习阶段的Java程序员介绍面向对象设计原则。我个人认为OOPS 和SOLID设计原则需要有文章清楚的介绍它们,在此我一定尽力做到这点

面向对象

旧巷老猫 提交于 2020-02-08 15:49:37
面向对象的三大特性 一、多态 python是弱类型语言,不需要在变量的声明中明确变量的数据类型 python没有多态,但又处处是多态。 python有鸭子类型 看着是鸭子,就是鸭子 不同的类中存在相同的方法,这些方法的功能也类似,那么这些类就被称为鸭子(例如:字符串类、列表类、字典类等都具有index属性) 二、继承 继承分为单继承和多继承,多继承遵循的是从左往右的原则,左侧优先。 python3中的继承原则采用的是广度优先原则,继承类都是新式类;python2采用的是深度优先,继承的都是经典类 python3中的子类和派生类只能继承父类中的公有变量和方法,不能继承父类中的私有方法和私有动态变量、私有静态变量。 三、封装 “ 封装 ”就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体(即类) 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。 封装的好处 封装后外部的使用者只需要传递出响应的参数,就可以通过对象调用内部的数据和方法,而不需要知道内部的实现方式 封装后如果需要新的方法,可以在类中添加。 广义的封装:给对象封装属性,给类中封装静态字段、属性以及构造方法。 狭义的封装:私有制、私有成员 私有成员:静态私有字段、私有方法、私有属性 只能在本类中被调用 ###四、什么是面向对象 什么时候用

OC之成员变量封装

南笙酒味 提交于 2019-12-09 16:52:36
#import<Foundation/Foundation.h> @interface Student : NSObject { // 成员变量尽量不要用 @public // @public int age; // @public // 只读( readonly ):只允许外界访问我的 no ,不允许外界修改我的 no int no; // 只需要提供 get 方法 } /* set 方法 1. 作用: 提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤 2. 命名规范: ( 1 ) 方法名必须以 set 开头 ( 2 ) set 后面跟上成员变量的名称,成员变量的首字母必须大写 ( 3 )返回值一定是 void ( 4 ) 一定要接收一个参数,而且参数类型跟成员变量类型一致 ( 5 ) 形参的名称不能跟成员变量名一样 */ - (void)setAge:(int)newAge; /* get 方法 1. 作用:返回对象内部的成员变量 2. 命名规范: ( 1 ) 肯定有返回值,返回值类型肯定与成员变量类型一致 ( 2 ) 方法名跟成员变量名一样 ( 3 ) 不需要接收任何参数 */ - (int)age; - (void)study; @end @implementation Student // set 方法的实现 - (void)setAge:(int

web课程设计总结

半腔热情 提交于 2019-12-06 12:08:00
阶段的总结,是进步的一大助力,现在总结下课程设计。 第一个网站:基于PHP的购书网站 现在感到网站的本质是:数据的流动。 网站一开始,完全不懂后台,所以就只做了前台先。 做前端,就是html,CSS,javascript,jQuery。 在这个过程中,接触到了很多库,框架,js插件。 比如bootstrap,boostrap是响应式的,当时第一个接触的东西,感觉好强大,响应式的,有好多模块可以自己任意添加,顶部,按钮,图标等等,对样式的控制也很难。但是以我现在对bootstrap的认识,做不出很炫酷的页面。所以,本网站就用bootstrap只做了个顶部。 做了个顶部,就很难再用bootstrap做下去。网站是分为好多个部分的。每个部分的样式也不一样,关键是把几个部分凑起来。 之后接触到js插件(即大多是JQ插件),发现了很多JQ插件的网站,感觉好厉害,‘封装’这个词不错。封装好的JQ插件,拿去组装网站就行了,都有参数说明,很棒,我看到了很多网站的特效,有图片轮播,导航,菜单,弹出层,对话框等等,好多好多。最后,看到一个全屏滑动的插件,好炫酷,就拿来用到本网站了。 有了顶部,有了这个全屏滑动的菜单,接下来,自然的想到了,购物网都有的左边的菜单。 我就又到JQ插件网站找菜单,但是,几乎全部是包含了顶部的,而除这之外,有的我不会用的,那么问题来了

Hybrid App 开发快速指南

匿名 (未验证) 提交于 2019-12-02 22:56:40
课程背景 混合应用相对于原生应用而言,是原生应用和 Web 应用的结合体。过去几年,混合应用开发的各种利弊已得到充分的讨论和验证。关于混合应用是什么、为什么使用的问题,相信大家都有自己的答案,但如何开发混合应用,从现有资料中却很难找到一个系统、全面的回答。 刚上手或准备上手混合应用的开发者,经常苦于没有一套经过验证的最佳实践来指导开发,在开发的各个阶段往往遇到各种问题: 如何选型? 如何架构前端代码? 如何做好体验? 如何做好安全性? 如何正确使用原生能力? 如果对以上问题没有充分的理解,贸然开始一个混合项目就很容易掉进坑里。为了帮助大家解决这些问题,快速开展混合应用开发,特推出了本达人课。 课程介绍 本课程为混合应用开发入门课程,将带领读者快速掌握 Hybrid App 开发能力,内容涵盖混合应用原理、混合应用开发基础、混合应用开发进阶、混合应用开发最佳实践。 课程主要分为两大部分: 第一部分(第01-05课),理论篇,带大家明确了解混合应用开发与普通 Web 前端开发的差异,内容包括混合应用原理、混合应用界面开发、混合应用体验优化、性能优化、混合应用安全性等,属于混合应用开发基础理论内部。 第二部分(第06-13课),实战篇,从技术选型开始,讲解如何基于 APICloud 平台开发混合应用,内容包括平台特性、前端项目工程规划、界面交互、数据交互、数据缓存等开发中的各个方面

iOS苹果自带框架定位的封装block

老子叫甜甜 提交于 2019-12-02 06:57:18
##LH_CLLocationManager.h的封装 -1 具体功能 /** * 定位管理者对象 * * @return 创建好的定位管理者对象 */ + (LH_CLLocationManager *)shareLocation; /** * 用于获取用户当前位置的block * * @param locaiontBlock 返回的用户当前位置的Corrrdinate */ - (void) lh_getCurrentLocationCoordinate:(LocationCorrrdinateBlock) locationtBlock; /** * 获取定位到的城市的经纬度和详细地址 * * @param locaiontBlock 返回定位代码块 * @param addressBlock 返回详细地址代码块 */ - (void) lh_getCurrentLocationCoordinate:(LocationCorrrdinateBlock) locationtBlock withAddress:(NSStringDetailAddressBlock) addressBlock; /** * 获取详细地址 * * @param addressBlock addressBlock description */ - (void)lh

事件传递参数-封装网络请求api

北战南征 提交于 2019-12-01 17:26:14
1==>通过点击事件进行传递参数 <view bindtap="goEdution" data-index="5">西南大学</view> <view bindtap="goEdution" data-index="6">北京师范</view> <view bindtap="goEdution" data-index="7">成都大学</view> // 传递的参数 goEdution(e) { console.log("传递过来的参数", e.currentTarget.dataset['index']) //5 6 7 }, 传递参数时 使用data-开头就好了 传递的参数通过dataset来接受 2===》 封装网络请求 在page同级目录下创建 serverhttpapi文件夹 ==》创建httpapi.js文件 export default function mynetwork(options){ console.log("你调用了我"); wx.request({ url: options.url, //请求的地址 method:options.method||"get",//方式 data:options.data||{},//参数 // 成功的回调 success:function(res){ console.log(res) }, fail:function

day22 封装、继承和程序设计模式

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 08:39:08
目录 day22 封装、继承和程序设计模式 今日内容概要 昨日回顾 今日内容详细 封装 多态 常见设计模式 day22 封装、继承和程序设计模式 今日内容概要 封装 继承 程序设计模式 单例模式 工厂模式 昨日回顾 一对多组合关系 将多个类的对象作为属性,封装在新类中 继承 class 类名(父类名): 属性 方法 isinstance和issubclass 子类会继承所有父类中的属性和方法,可以直接使用 子类可以重写父类中的属性和方法 super方法可以在子类中调用父类中的方法 super(cls, obj) ,cls参数可以为任意类名,obj可以为任意类,只要合理即可 今日内容详细 封装 “封装”就是将抽象得到的数据和行为相结合,形成一个有机整体 元组,列表,字典等等:数据的封装,通过引用去使用数据 函数:算法的封装 如果没有函数,功能要靠每一行代码去直接执行 没有函数的话,耦合度会很高,复用性很差,开发效率也非常低 封装的目的是简化编程和增加安全性 使用者不必关系具体的实现细节 通过接口(万能的点 . ) 还可以给予特定的访问权限来使用类的成员 明确区分内外 类的实现者 可以修改内部封装的东西而不影响外部调用者 外部调用者 只需要直到自己可以使用该类对象的哪些功能 私有属性和私有方法 标识符以双下划线 __ 开头的是私有成员,在外部不可以直接用这种属性或方法名调用

面向对象的基本特征

只愿长相守 提交于 2019-12-01 04:34:56
面向对象方法具有三个基本特征: 封装:封装是将对象的实现细节隐藏起来,然后通过一些公共的方法来暴露该对象的功能。 继承:继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法; 多态:多态讲的是子类对象可以直接赋给父类变量,但运行的时候依然表现出子类的行为特征,这意味着同一个类的对象在执行同一个方法时,可能表现出多种行为特征。 对面向对象的理解 ### 封装 类的封装是指类把所有的操作都封闭起来,仅仅提供接口出来让其他人使用,使用的人没有必要懂得类里面的操作,只需要懂得操作接口就可以了。比如开汽车,我们只需要懂得方向盘、刹车、油门等等的使用就可以了,没有必要知道刹车是如何构成的封闭好的操作。同时,封装也提高了程序的可替换性。比如两个汽车公司实现刹车的方式不一样,但是,只要我们学会了使用刹车,那么,开两个汽车公司的车就都没有问题了,我们不需要考虑他们怎样实现刹车这门技术的。 ### 继承 类的继承性是指从已有的一个类来extends子类,子类具有了父类的所有特征,同时,子类也可以有新的特性。比如:人是一个类,男人具有了人类的所有的特性,比如思考,比如劳动。同时,男人也有新的特性,比如男人会长胡子。 ### 多态 类的多态性是一个对象的某项功能可以处理不同类型的问题,或者一个子类可以将父类的某个功能替换成新的功能