OOP复习提纲-2011.ppt_第1页
OOP复习提纲-2011.ppt_第2页
OOP复习提纲-2011.ppt_第3页
OOP复习提纲-2011.ppt_第4页
OOP复习提纲-2011.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计,复习提纲,基本概念 类定义基本要求 程序设计,基本概念,结构化程序设计的特点 面向对象程序设计特点 类、对象、消息的概念,之间的关系 类之间的几种关系,举例说明 数据隐藏的概念,实现手段 子类与父类的关系 多态、重载、覆盖成员方法的含义,作用,区别和联系,实现手段与意义,基本概念,异常概念,Java处理异常的基本过程,异常类层次 类变量(静态)与实例变量区别、适用场合 String与StringBuffer特点 抽象类、接口、包的概念、特点及适用场合 this, super, final 意义 各种访问控制修饰符含义,作用,适用场合,基本概念,事件处理机制(动作事件,鼠标事件

2、) 事件源、事件监听接口、 监听器类、监听器、适配器 容器 ( JFrame, JPanel )及其默认布局方式 组件( 按钮、标签、文本 ) 布局管理器(FlowLayout,BorderLayout),类定义的基本要求,对象=属性(静态)+行为(动态) 类 =域(成员变量)+(成员)方法 抽象:公共属性和方法 封装:私有成员变量+(set,get) 类设计应该包含: 构造方法(无参,有参) set()、get() toString() 基本操作,public class Date private int year,month,day; public Date()this(2000,1,1)

3、; public Date(int year,int month,int day) this.year=year; this.month=month; this.day=day; public int getYear()return year; public int getMonth()return month; public int getDay()return day; public void setYear(int year)this.year=year; public void setMonth(int month)this.month=month; public void setDa

4、y(int day)this.day=day; public void setDate(int year,int month,int day) this.year=year; this.month=month; this.day=day; public String toString() return year+/+month+/+day; ,类之间的关系,整体-部分(聚合) 章节段句词或标点符号 一般-特殊(泛化) 动画 二维动画、三维动画 依赖,关联,调用 课程教师学生,用成员变量实现,用成员变量实现,用定义子类实现,需要会画出UML图,程序设计,绘制基本图形 基本组件操作,GUI应用程序

5、绘图,绘制图形必须先获得绘图类对象,它是Graphices类的子类对象。 1、隐式创建方法 对于Swing组件,利用paintComponent()方法的参数获取 2、显式创建方法 调用Component类的getGraphics() Graphics g=jPanel.getGraphics(); 此时要负责释放 g.dispose(),/file name:DragDrawPanel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.geom.*; public cl

6、ass DragDrawPanel extends JPanel int x1, x2, y1, y2; /绘制直线的起点和终点 public DragDrawPanel() addMouseMotionListener(new MouseMotionListener() public void mouseMoved(MouseEvent event) ; /鼠标移动事件 public void mouseDragged(MouseEvent event) /鼠标拖动事件 Graphics2D g = (Graphics2D) getGraphics(); x2 = event.getX();

7、 /获取鼠标坐标 y2 = event.getY(); g.draw(new Line2D.Double(x1, y1, x2, y2);/绘制直线 x1 = x2; y1 = y2; g.dispose(); );,addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent event) /鼠标按下事件 x1 = event.getX();/获取第一个点坐标 y1 = event.getY(); ); ,/file name:DragDrawFrame.java import javax.swing.*; p

8、ublic class DragDrawFrame extends JFrame public DragDrawFrame() setTitle(DragDraw);/设置窗口标题 DragDrawPanel panel = new DragDrawPanel();/创建绘图面板 getContentPane().add(panel); public static void main(String args) DragDrawFrame frame = new DragDrawFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS

9、E); frame.setSize(300, 300); frame.setVisible(true); ,主要例题,例9-6,例9-14, 9章上机题目 继承多态的上机题目 课件中的例题,考试,12周 星期二1,2节 闭卷考试,public class DragDrawTest public static void main(String args) DragDrawDemo frame=new DragDrawDemo(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); class DragDrawD

10、emo extends JFrame public DragDrawDemo() setSize(800,600); setTitle( windows dsflfdjls); DragDrawPanel panel=new DragDrawPanel(); add(panel); ,import java.awt.*; import java.awt.event.*; import javax.swing.*;,paintComponent应用举例,class DragDrawPanel extends JPanel JButton b1,b2,b3,b4; int x1,x2,y1,y2,

11、flag; public void paintComponent(Graphics g) super.paintComponent(g); /用背景色绘制面板 if (flag=4) g.drawOval(x1, y1, x2-x1,y2-y1); if (flag=2) g.drawRect(x1, y1, x2-x1, y2-y1); if (flag=3) g.drawLine(x1, y1, x2,y2); public DragDrawPanel() b4=new JButton(画圆); b2=new JButton(画矩形); b3=new JButton(画线); b1=new

12、 JButton(文本输出); add(b1); add(b2); add(b3); add(b4); b4.addActionListener( new ActionListener( ) public void actionPerformed(ActionEvent e) flag=4; ); b2.addActionListener( new ActionListener( ) public void actionPerformed(ActionEvent e) flag=2; );,b3.addActionListener( new ActionListener( ) public v

13、oid actionPerformed(ActionEvent e) flag=3; ); b1.addActionListener( new ActionListener( ) public void actionPerformed(ActionEvent e) flag=1; ); addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent event) x1=event.getX(); y1=event.getY(); if (flag=1) Graphics2D g=(Graphics2D)getGra

14、phics(); x2=event.getX(); y2=event.getY(); g.drawString(当前坐标为:+ x2+ ,+ y2,x2,y2); public void mouseReleased(MouseEvent event) x2=event.getX(); y2=event.getY(); Graphics2D g=(Graphics2D)getGraphics(); if (flag=4) g.drawOval(x1, y1, x2-x1,y2-y1); if (flag=2) g.drawRect(x1, y1, x2-x1, y2-y1); if (flag=

15、3) g.drawLine(x1, y1, x2,y2); );,addMouseMotionListener(new MouseMotionAdapter() public void mouseDragged(MouseEvent event) x2=event.getX(); y2=event.getY(); Graphics2D g=(Graphics2D)getGraphics(); if (flag=2) g.drawRect(x1, y1, x2-x1, y2-y1); repaint(); if (flag=3) g.drawLine(x1, y1, x2,y2); repain

16、t(); if (flag=4) g.drawOval(x1, y1, x2-x1,y2-y1); repaint(); ); ,定义一个有理数类,要求:为有理数定义一个类。有理数表示成两个相除的整数,比如1/2, 2/3,15/32,65/4等。 有理数表示成2个int值,分别称为: numerator(分子)和denominator(分母)。 定义方法时,可以参考以下公式: a/b+c/d = (a*d+b*c) / (b*d) a/b-c/d = (a*d-b*c) / (b*d) (a/b)*(c/d) = (a*c) / (b*d) (a/b)/(c/d) = (a*d) / (c*

17、b) -(a/b)= (-a/b),public class Rational int num ;/分子 int den; /分母 public Rational()num=0;den=0; public Rational(int n,int d)this.num=n; this.den=d; public Rational(Rational r)this.num=r.num;this.den=r.den; public void set_Rational(int n,int d)this.num=n; this.den=d; public void set_num(int n)this.num=n; public void set_den(int d)this.den=d; public int get_num()return this.num; public int get_den()return this.den; public Rational add(Rational r) /有理数加法 Rational result = new Rational(1,1); result.num=this.num*r.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论