课堂笔记22-11-28(Python脚本语言开发)
Python脚本语言开发面向对象程序设计对比面向过程编程、面向对象编程
面向过程编程(Process Oriented Programming, POP):
以执行过程为中心的编程思想,核心单元是函数。
面向对象编程(Object Oriented Programming,OOP):
以事物为中心的编程思想,核心单元是类与对象。
思考:如何组织一次班集体出游?
面向过程 vs 面向对象
Python中一切皆为对象!
类与对象
对象
对象(object)是指现实世界中客观存在的事物。每个对象都具有各自的特征和行为
面向对象程序设计中的对象是现实世界的客观事物在程序设计中的具体体现,同样具有自己的特征和行为。
特征 —> 属性(property);行为 —> 方法(method)。
由属性和方法相同的一组对象抽象出的集合,即为类。
类
类(class)是用来描述具有相同属性和方法的对象的集
合。它定义了该集合中每个对象所共有的属性和方法。
类是抽象出的对象模板,对象是根据类(模板)创建出
的实例(instance)。
相似事物抽象出的类只有一个,而由某个类 ...
课堂笔记22-11-28(Python脚本语言开发)
Python脚本语言开发递归函数
概念:函数定义中调用函数自身 的方式称为递归 (recursion),即在运行过程中自己调用自己。
每次函数调用时,函数参数会临 时存储, 相互没有影响 ;
达到终止条件时,各函数逐层结束运算,返回计算结果;
要注意终止条件的构建,否则递归无法正常返回结果
匿名函数
匿名函数适用于调用次数少且能够在一行内表达的简单函数情况,使代码看起来更为“优雅” ,还可以避免函数名冲突的问题;常常与其他函数联用,作为函数的参数进行传递
lambda与def的比较
lambda创建函数无须函数名,def创建函数必须有函数名;
lambda返回一个函数对象,而不是返回表达式的值,赋值给变量时相当于起名,而def定义的函数可将返回值赋值给变量;
lambda只适用于单行的表达式函数体,而def可以定义复杂的复合语句函数体;
lambda函数不能共享给别的程序调用,而def定义的函数可以。
高阶函数
变量可以指向函数 —> 函数名其实是指向函数的变量 —> 函数本身可以赋值给变量 —> 函数的参数能接收变量 —>一个函数可 ...
课堂笔记22-11-28(Web应用开发)
Web应用开发Servlet技术Servlet技术的由来
HTML技术出现后,可以通过HTML网页对数据进行可视化展示。但是由于HTML网页是静态网页,因此HTML技术是没办法实现数据和数据可视化展示的动态变化,因此动态网页技术就产生了。
动态网页技术的核心思路是对网页中动态改变的源码内容用高级语言进行处理。
根据动态网页中采用的高级语言,可以将动态网页技术分为前端动态网页技术、后端动态网页技术。前端动态网页技术一般采用能被浏览器直接解释运行的前端脚本语言,而后端动态网页技术采用后端高级语言,是不能被浏览器解释运行的。
前端、后端动态页面技术互为优缺点,前端动态页面技术的优点是减轻了Web服务器处理数据的负担,因为数据在客户端处理,缺点是不安全,容易被篡改。后端动态页面技术的优点安全,缺点是服务器数据处理负担较重。
Servlet技术就是一种后端动态网页技术,它由Sun公司开发,并采用Java语言处理网页中的动态数据。
Servlet技术的跨平台实现
Sun公司采取了和JDBC API实现一样的策略(即委托策略)来实现Servlet API跨Web服务器平台。
具体来说就是,Serv ...
课堂笔记22-11-18(Web应用开发)
Web应用开发连接数据库并拉出数据1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192/** * */package cn.edu.nsu.infoSubSys.db.demo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;/** * @author Pu_Junming * */public class UsersDAO { // 全局数据定义(属性.成员变量定义) pr ...
课堂笔记22-11-11(Web应用开发)
Web应用开发JDBC技术编码
JDBC实现原理
JDBC(Java Database Connectivity,Java数据库连接)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JDBC技术的跨平台
跨平台
跨硬件平台
跨软件平台
跨操作系统平台
如:Windows、Linux、macOS
跨软件服务器平台
如:数据库服务器、Web服务器
JDBC技术的跨平台实现
JDBC技术采用“委托”方式实现跨数据库服务器平台。
在JDBC API的类中,JDBC API中存在大量的Java抽象类和Java接口,这些Java抽象类和Java接口中包含大量的没有实现代码的抽象方法。
JDBC技术会“委托”各大数据库厂家给出JDBC API中所有抽象方法的实现代码。即数据库厂家会用一些具体子类实现JDBC API中的接口或继承JDBC API中的抽象类,而在这些具体子类中给出继承得到的抽象方法的实现代码。
数据库厂家会将这些具体子类放到一个个Java包中,并压缩成一个Jar文件,此Jar文件我们通常称为此数据库的JDB ...
课堂笔记22-11-8(面向对象软件工程)
软件工程系统分析
系统分析目的
初步以面向对象视角理解业务
对系统内部组成进行初步的抽取
获取系统的初步设计
系统分析技术
领域模型
健壮性分析
顺序图
领域模型概念
定义
是对领域内的概念类或现实世界中对象的可视化表示。领域模型也被称为概念模型、领域对象模型和分析对象模型。
表现形式
领域模型可以被描述成一组没有定义操作的类图(UML表示法)。它提供了概念透视图。
领域对象或概念类(大量—对象的共性,共性进一步预测未知)
概念类之间的关联
概念类的属性
课堂笔记22-11-7(Web应用开发)
Web应用开发数据库可行性分析
数据库可行性分析的评判标准是:设计的数据库能完成所有功能中的所有数据操作,但是又如何进行数据库可行性分析呢?
可以通过运行实现DB操作的SQL语句来达到数据库可行性分析的目的。具体来说
如果一个功能中的所有DB操作都能用SQL模拟实现,那么此数据库对此功能可行。
如果一个模块下的所有功能都能用SQL模拟实现则此模块可行。
同理如果一个子系统下的所有模块都能用SQL模拟实现则此子系统可行。
如果系统中的所有子系统都能用SQL模拟实现那么整个系统就可行。
总而言之,数据库的可行性分析就是编写每个功能的所有DB操作的SQL语句。
JDBC技术编码
JDBC(Java Database Connectivity,Java数据库连接)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JDBC技术的跨平台
JDBC技术的跨平台实现
JDBC技术采用“委托”方式实现跨数据库服务器平台。
在JDBC API的类中,JDBC API中存在大量的Java抽象类和Java接口,这些Java抽象类和Java接口 ...
课堂笔记22-11-3(Java面向对象程序设计)
Java面向对象程序设计多态多态的概念
多态指同一个实体同时具有多种形式。它是面向对象程序设计(0OP)的一个重要特征。
多态:分为两种,即编译时多态和运行时多态。
编译时多态:通过方法的重载来实现的。
运行时多态:通过方法的覆盖(重写)来实现的。
Java中实现运行时多态的基础是动态方法调用,它是一种在运行时而不是在编译期调用覆盖方法的机制。
课堂笔记22-11-3(HTML页面设计)
HTML页面设计回温上节课内容123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>flex弹性布局</title> <style type="text/css"> .container { background-color: black; width: 660px; width: 300px; height: 400px; display: flex; /*属性0 display: -webkit-flex;*/ ...
课堂笔记22-11-23(Python脚本语言开发)
Python脚本语言开发1234567891011121314151617181920212223242526272829303132333435# 三国演义 人物出场统计import jieba# f = open("三国演义.txt", "r", encoding='utf-8')# 使用with,不需要关闭,close.可以自动的执行关闭文件,出现异常都能正常的自动关闭并保存with open("三国演义.txt", "r", encoding='utf-8') as f: txt = f.read() # read 一次性读取全部内容,保存为字符串words = jieba.lcut(txt) # 中文分词保存为列表excludes = ['却说', '二人', '不可', '将军', '丞相', '荆州', '不能 ...