面向对象与图形编程
数据与操作:传统观点 数据类型(data type) Each data type can represent a certain set of values(某种值的集合) each had a set of associated operations(运算,操 作) The traditional programming view is that data is passive(被动的),-it's manipulated and combined with active(主动的)operations. 例如:string类型的值是'abc'等,对串的操作有+,*,len()等 2
2
数据与操作:面向对象观点 对象(Object) An object is a sort of active data type that combines data and operations. -对象contain data. - 对象have operations. view a complex system as the interaction of simpler objects.Objects interact by sending each other messages. 3
3
数据与操作:面向对象观点 面向对象(Object-Oriented基本思想: 软件系统由各种对象组成,对象之间通过消息进行交 互. 00语言 C++(过程性语言C发展而来) Visual Basic(过程性语言Basic发展而来) Java Python 4
4
OO基本概念 类(class):描述同类对象的共性 包含的数据 ·任何类型的数据,甚至可以是对其他对象的引用. -1 能执行的操作(方法) 对象(object):类的实例(instance) 一类可以创建多个实例 同类的不同对象可有不同的数据值(实例变量),但能执行的 操作是一样的 例如: 类:file 对象:infileName,outfileName 5
5
OO基本概念 创建对象:使用类的构造器(constructor)(构造 函数) -(,,.) 例如: file(filename[,mode]) open(,) 消息:请求对象执行它的方法 -.(,,…) -例如:infileName.close() 6
6
对象的方法 不同类的对象当然提供不同的操作 对象一般都提供读取它的实例变量值的方法, 统称为accessor. -Point对象的getX()和getY() Line对象的getP1()和getP2() 对象一般也提供修改其实例变量的方法,统称 为mutator. 例:所有图形对象都有move(dx,dy)方法.将对象 在x方向移动dx个像素,在y方向移动dy个像素, 自动擦除其原来的图像,并在新位置处显示 7
7
图形编程 图形编程框架 -Python的Tkinter 使用本书作者写的图形库: graphics,py(便于初学者使用) 放入Python'sLib目录(directory)文件夹 python \lib\ 或者放在与你的程序同一文件夹(目录,folder)下 ■ import graphics.或 from graphics import -后者可使引用库函数更方便 ■开始编写图形程序 8
8
图形窗口 图形窗口:画图的地方 Win graphics.Graphwin ( win=Graph时in() #用from语句引入图形库时可写成这样 创建GraphWin类的对象,并赋值给实例变量 win 试试:type(GraphWin)和type(win) type(GraphWin())分别是什么 - 通过给对象win发消息,让对象做事情 ■例如:win.close() 9
9
图形窗口 窗口是由像素组成的 默认大小200*200(分辨率) 画图:实际就是控制各像素的颜色 10
10