河北理工大学软件工程摘录.doc_第1页
河北理工大学软件工程摘录.doc_第2页
河北理工大学软件工程摘录.doc_第3页
河北理工大学软件工程摘录.doc_第4页
河北理工大学软件工程摘录.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

河北理工大学单 元 课 时 计 划 (100分钟)编号_课程名 称网络编程基础授课班 级09计网讲 次25授课日期计划在 2011 年 4月 18日星期一 第 1 讲实际在 2011 年 4月 18日星期一 第 1 讲章 目第四单元 面向对象编程节 目实训 面向对象编程2教 学目 标1. 掌握对象的关系、类的定义2. 掌握方法、构造方法的定义以及使用3. 掌握方法重载的思想及其使用方法教学方 法讲授法教 具多媒体教学重点1. 类的设计方法、对象的使用方法2. 构造函数的使用3. 方法的重载以及this的使用教学难点1. 类的设计2. 构造函数的使用3. 方法的重载以及this的使用教学主要内容1. 圆对象2. 电话卡设计变更记载 河北理工大学课 时 授 课 计 划 副 页 年 月 日教学过程及授课内容附 注实训 面向对象编程21 圆对象问题描述:用面向对象设计的方法,设计一个圆的类,包括计算圆的直径、圆的周长和圆的面积的方法。基本要求:采用面向对象设计的方式进行设计,要求对类中的成员变量具有权限的控制和包括有构造函数。 算法实现:/Circle类定义public class Circle /类成员变量定义 private double x; /圆心横坐标 private double y; /圆心横坐标心纵坐标 private double r; /圆半径 /静态成员变量 private static final double PI=3.1415926; /构造方法 public Circle (double xx, double yy, double rr) this.x=xx; this.y=yy; this.r=rr; /成员方法public double getR () return r;public void setR (double rr) this.r=rr;public double getArea () return(PI*r*r);public double getPerimeter() return 2*PI*r;public double getDiameterreturn 2*r;/测试public static void main (String args) /定义类对象 Circle circle; /初始化对象 circle=new Ci日cle(20, 20, 5); /输出圆的面积和周长 System.out.println(“半径是:”circle.getR(); System.out.println(“面积是:”circle.getArea(); System.out.println(“周长是:”circle.getPerimeter(); /改变圆的半径 circle.setR(10); /改变半径后输出圆的面积和周长 System.out.println(“改变半径后输出圆的面积和周长”);System.out.println(“半径是:”circle.getR(); System.out.println(“面积是:”circle.getArea(); System.out.println(“周长是:”circle.getPerimeter(); 2 电话卡设计问题描述:编写一个Java程序,用面向对象的设计方法编写一个电话卡的类。包括卡号、密码、余额、拨入号码等。基本要求:类的属性有卡号、密码、余额、拨入号码。同时还要包括电话卡的常用操作,包括连接电话的函数、返回余额、通电话的函数。算法描述:(1) 构造函数可以完成赋值。(2) 连接电话卡的函数可完成检查卡号和密码的功能,他是当只有在卡号和密码相匹配的时候才连接。(3) 返回余额函数得到电话卡的余额。(4) 通电话的函数是模拟通话过程中,余额会不断的减少,每调用此函数,电话卡的余额减少0.5元。(5) 编写toString方法,即用对象.toString就可以输出电话卡所有的信息和状态。算法实现:/主类public class UsePhoneCard /用来测试 public static void main (String args) /生成一个电话卡对象,他的对象属性有卡号(12345678)、密码(4321)、余额(100.0) /拨入号码(800) PhoneCard myCard=new PhoneCard (12345678, 4321, 100.0, “800”); System.out.println(myCard.toString(); /进行连接和打电话 if ( myCard.performConnection(12345678, 4321) for (int i=1; i0) balance=b;else System.exit(1);ConnectNumber=s;/初始是连接为没有连接connected=false; /连接函数,连接的时候需要判断 boolean performConnected(long cn, int pw) /当卡号和密码相匹配的时候,返回为true;否则为false if (cn=cardNumber&pw=password) connected=true; return true; else connected=false; return false; /取得余额 double getBalance () /只能在连接的时候才能取得余额 if (connected) return balance; /否则返回-1,供调用函数来判断 else return 1; /模拟打电话,打一次电话用一次performDial void performDial () /在连接的情况下把余额减0.5元 if (connected) balance-=0.5; /覆盖父类中toString()方法,用来输出电话卡的属性。包括了当前的状态。 public String toString String s= “Connected Phone Number:”+connectedNumber+ “n Card Number:”+cardNumber+ “n Card Password:”+password+ “n Card balance:”+balance; /输出状态 if (connected) return(s+ “n The phone is connected”); else return(s+ “n The phone is disconnected”); 程序运行结果:java UsePhoneCardConnected Phone Number:800Card Number:12345678Card Password:4321The balance:100.0The phone is disconnected打第1次电话打第2次电话打第3次电话打第4次电话打第5次电话打第6次电话打第7次电话打第8次电话打第9次电话打第10次电话Connected Phone Number:800Card Number:12345678Card Password:4321The balance:95.0The phone is connected单 元 课 时 计 划 (100分钟)编号_课程名 称网络编程基础授课班 级09计网讲 次26授课日期计划在 2011 年 4月 19日星期二 第 2 讲实际在 2011 年 4月 19日星期二 第 2 讲章 目第四单元 面向对象编程节 目4.3最终类与抽象类4.4接口教 学目 标1. 理解抽象类、抽象方法的概念2. 理解最终类、最终方法以及变量的概念2. 理解接口的概念 3. 掌握接口在Java中的实现教学方 法讲授法教 具多媒体教学重点1. 抽象类以及最终类的概念2. 接口的实现教学难点1. 抽象类的理解2. 接口的实现教学主要内容1. 抽象类2. 抽象方法3. 最终类4. 接口的声明5. 接口的实现变更记载 河北理工大学课 时 授 课 计 划 副 页 年 月 日教学过程及授课内容附 注4.3 最终类与抽象类4.3.1 最终类与final继承机制允许对现有的类进行扩充,但有些时候,需要把一个类的功能固定下来,不再允许定义它的子类,Java语言称这样的类为最终类(final class),例如基本数据类型的包装类(Byte、Double等)都是最终类。把一个类定义为最终类,只要在声明时用保留字final修饰即可,例如:public final class MyFinalClass .如果把最终类声明为某个类的父类,编译程序将报告错误。程序员也可以把一个(普通)类的某些成员方法声明为最终方法,这使得该方法不可以被后代类重定义,例如:public class MyClass public final void myFinalMethod().子类中可定义与父类中常量(即用final修饰的成员数据)同名的成员数据,因为实质上,成员数据的重定义不具有成员方法重定义的功能,它只是用来屏蔽父类的成员数据。4.3.2 抽象类与abstract最终类是类层次结构的叶子节点,它们不能再被继承和扩充。Java语言还有一种特殊的类,它们只能被继承和扩充,而不能用于创建自己的对象实例,这种类称为抽象类(abstractclass)。抽象类用于建模现实世界中一些没有具体对象的纯粹抽象的概念。例如,“鸟”可以认为是一个纯粹抽象的概念,它本身没有任何具体的对象实例,任何具体的鸟儿都是由“鸟”经过特殊化形成的某个具体的种类的对象,也就是说,“鸟”是具体的鸟儿经过抽象形成的一个概念。1抽象类Java语言在声明一个类时使用保留字abstract修饰使得它成为抽象类,例如:public abstract class MyAbstractClass .使用抽象类创建对象实例,编译器会报告错误,例如下述语句不能通过编译:MyAbstractClass obj=new Math(); /编译错误2抽象方法Java语言也可以定义某些成员方法为抽象方法,例如:public abstract class MyAbstractClass public abstract void myAbstractMethod(); /没有方法体 .4.4 接 口4.4.1 引例“郭敬问题”郭敬是一名高校教师,他正读在职研究生,请用Java语言描述像郭敬同样情况的人。1问题剖析读在职研究生的教师既可作为学生的子类又可作为教师的子类,这正是因为我们既可以从学生的角度观察这一类人,也可以从教师的角度观察这一类人。Java出于安全性、简化程序结构的考虑,不支持类间的多重继承而只支持单继承。然而在解决实际问题的过程中,在很多情况下仅仅依靠单继承不能将复杂的问题描述清楚,像要描述4.4.1中的郭敬身份的问题,就遇到了困难。为了使Java程序的类间层次结构更加合理,更符合实际问题的本质,Java语言提供接口来实现多重继承机制。实际上,在Java语言中,可以先定义一个Person类描述学生与教师共有的特征,如姓名、年龄等,再定义一个AsStudent接口和一个AsTeacher接口,表示分别从学生和教师各自不同的角度观察人的行为和属性,然后定义一个在职研究生类InService,继承上述Person类,同时实现AsStudent接口和AsTeacher接口即可描述郭敬既是学生又是教师的身份。2. 声明接口1) 声明接口的语法格式修饰符interface接口名extends 父接口名列表常量数据成员声明抽象方法声明2) 定义接口注意事项定义接口要注意以下几点:(1) 接口定义用关键字interface,而不是用class。(2) 接口名要求符合Java标识符规定。(3) 修饰符有两种:public和默认。public修饰的接口是公共接口,可以被所有的类和接口使用;默认修饰符的接口只能被同一个程序包中的其他类和接口使用。(4) 父接口列表:接口也具有继承性。定义一个接口时可以通过extends关键字声明该接口是某个已经存在的父接口的派生接口,它将继承父接口的所有属性和方法。与类的继承不同的是一个接口可以有一个以上的父接口,它们之间用逗号分隔。(5) 常量数据成员声明:常量数据成员前可以有也可以没有修饰符。修饰符是public final static或final static,接口中的数据成员都是用final修饰的常量,且必须初始化。书写格式如下:修饰符 数据成员类型 数据成员名=常量值或数据成员名=常量值例如:public final static double PI=3.14159;final static int a=9;int SUM=100;(等价于final static int SUM=100;)【例4-14】 Person.java程序。 /父类Person描述学生和教师共有的特征 public class Person private String name; /人的姓名属性定义 private int age; /定义人的年龄属性public Person(String name,int age) =name; this.age=age; public String getName() return name; public int getAge() return age; public void setAge(int newAge) age=newAge; 4.4.2 有关接口的讨论1接口与类只有接口的Java程序是不可行的。接口表达的是设计级的内容,它没有实现体,接口的意义在于它可以被类实现。类实现接口,接口提供一种观察类的角度或方式,这是类和接口之间的基本关系。类实现接口的语法十分简单,只要在声明类的时候使用保留字implements给出这个类要实现的接口即可。例4-16定义了一个类InService,它实现了例4-14与例4-15给出的接口AsStudent和AsTeacher。类实现接口的具体含义就是指在定义类时给出接口中所定义的抽象方法的实现体,例如,例4-16定义了一个类InService给出了接口AsStudent和AsTeacher所定义的setStudyCourse(String course)、setStudyScore(int score)、setStudyDepartment(String dept)、setTeachCourse(String course)、setTeachWage(double wage)和setTeachDepartment(String dept)方法的实现体,这时类所给出的方法应该与接口中所定义的方法在名字、形式参数列表和返回类型上保持一致,而且不能降低方法的访问权限(实际上,只能定义为公有方法),这与子类重定义父类方法的语法规则完全相同。类中另外定义同名但不同参数的方法则被视为重载,如果定义了同名同参数但不同返回类型的方法则会报告语法错误。 请注意接口的成员方法缺省情况下是公有的,但类的成员方法缺省(即不给出任何成员访问修饰符)情况下却不是公有的,而是包级私有的(在后面我们将讨论这种成员访问控制级别),因此例4-16中必须声明所有的方法为公有的。类实现接口与子类继承抽象类极为相似,当实现接口的类没有给出接口所有抽象方法的实现体时,则必须声明为抽象类,这时那些没有实现的方法是这个类的抽象方法。单 元 课 时 计 划 (100分钟)编号_课程名 称网络编程基础授课班 级09计网讲 次27授课日期计划在 2011 年 4 月 20日星期三 第 2 讲实际在 2011 年 4 月 20日星期三 第 2 讲章 目第四单元 面向对象编程节 目实训 面向对象编程3教 学目 标1. 理解抽象类以及接口的概念2. 掌握接口的实现方法教学方 法讲授法教 具多媒体教学重点接口的实现教学难点接口的实现教学主要内容1. 定义一个接口Shape2D,利用它来实现二维的几何形状Circle和Rectangle2. 设计抽象类Shape,依此类派生出圆形(circle)类与长方形(Rectangle)类变更记载 河北理工大学课 时 授 课 计 划 副 页 年 月 日教学过程及授课内容附 注实训 面向对象编程31. 定义一个接口Shape2D,利用它来实现二维的几何形状Circle和Rerface Shape2D final double pi=3.14; abstract void area();class Rectangle implements Shape2D int width, height; public Rectangle (int w, int h) width=w; height=h; public void area ( ) System.out.println(area=+width*height); class Circle implements Shape2D double radius; public Circle (double r) radius=r; public void area ( ) System.out.println(area=+3.14*radius*radius); public class testInterfacepublic static void main(String ar

温馨提示

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

评论

0/150

提交评论