Java(1).doc_第1页
Java(1).doc_第2页
Java(1).doc_第3页
Java(1).doc_第4页
Java(1).doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

Java期末复习(1)一、关于类设计分析学习了课本知识,下面来分析具体程序,以巩固之前所学知识,去具体题目讲解之前先给出一些分析思路: 根据要求写出类所包含的属性。 所有的属性都必须进行封装(private)。 封装后的属性通过setter和getter设置和取得。 如果需要可加入若干构造方法。 再根据其他要求添加相应方法 类中所有方法都不要直接输出,而是交给调用处输出。练习1:1定义并测试一个名为Student的类,包括的属性有“学号”、“姓名”以及3门课程“数学”、“英语”、“计算机”的成绩,包括的方法有计算3门课的“总分”、“平均分”、“最高分”、及“总低分”。(1)本类中的属性及类型,如下表所示。Student类中的属性及类型序号属性属性类型属性名称1学号Stringstuno2姓名Stringname3数学成绩floatmath4英语成绩floatcnglish5计算机成绩floatcomputer(2)定义出需要的方法(普通方法、构造方法)在本例中设计出两个构造方法,一个是无参的构造方法,另一个构造方法可以为5个属性进行赋值,如下表所示。序号方法名称返回值类型作用1public void setStuno(String s)void设置学生编号2public void setName(String n)void设置学生姓名3public void setMath(float m)void设置数学成绩4public void setEnglish(float e)void设置英语成绩5public void setComputer(float c)void设置计算机成绩6public String getStuno()String取得学生编号7public String getName()String取得学生姓名8public float getMath()float取得数学成绩9public float getEnglish()float取得英语成绩10public float getComputer()float取得计算机成绩11public float sum()float计算成绩总和12public float avg()float计算平均成绩13public float max()float求出最高成绩14public float min()float求出最低成绩15Public Student()无参构造方法16public Student(String stuno,String name,float math,float english,float computer)在对象实例化时直接将学号、姓名、数学成绩、英语成绩、计算机成绩设置进去实现代码:class Student /定义学生类private String stuno; /学生编号private String name; /学生姓名private float math; /数学成绩private float english; /英语成绩private float computer; /计算机成绩public Student() /定义无参数构造 /定义有5个参数的构造方法,为类中的属性初始化public Student(String stuno,String name,float math,float english,float computer)this.setStuno(stuno); /设置编号this.setName(name); /设置姓名this.setMath(math); /设置数学成绩this.setEnglish(english); /设置英语成绩this.setComputer(computer); /设置计算机成绩public void setStuno(String s) /设置编号stuno=s;public void setName(String n) /设置姓名name=n;public void setMath(float m) /设置数学成绩math=m;public void setEnglish(float e) /设置英语成绩english=e;public void setComputer(float c) /设置计算机成绩computer=c;public String getStuno() /取得编号return stuno;public String getName() /取得姓名return name;public float getMath() /取得数学成绩return math;public float getEnglish() /取得英语成绩return english;public float getComputer() /取得计算机成绩return computer;public float sum() /计算总分 return math + english + computer;public float avg() /计算平均分 return (float)(this.sum()3); /总分除以3public float max() /计算最高成绩float max=math;max=maxcomputer?max:computer; /使用三元运算符max=maxenglish?max:english; /使用三元运算符return max;public float min() /计算最低成绩float min=math;min=mincomputer?min:computer; /使用三元运算符min=min=300&student.getSports()=96)|student.getTotal()School.getLine() System.out.println(student.getMessage()+ accepted!); else System.out.println(student.getMessage()+ not accepted!); public static void main(String args) School school=new School(350); Student student1=new Student(李明,0123,310,100); Student student2=new Student(陈强,0456,351,80); Student student3=new Student(张丽,0789,330,85); status(student1); status(student2); status(student3); 编译运行程序,其结果如图所示。二、关于接口的定义和实现接口实质上是一种特殊的抽象类, 也可以理解为是更纯粹的抽象类。但接口和类有着很大的区别,接口内部只能包含静态常量和公共的抽象方法,没有方法体。即只提供方法的定义,而不提供具体的实现。 接口的定义可以理解成一个标准,接口定义的仅仅是实现某一特定功能的一组方法的对外接口和规范,而并没有真正地实现这个功能。 一个类实现这个接口就要遵守接口中定义的规范,实际上就是要实现接口中定义的所有方法。 接口提供了方法声明与方法实现相分离的机制。所有的方法需要在实现接口的类中,根据各自要求给予具体实现。从而可以使程序变得非常灵活,可扩展性也非常好。 1接口声明修饰符 interface 接口名 extends 父接口名 常量声明 常量的数据类型 常量标识符 = 常量值 ; 抽象方法声明 返回类型 方法名(参数列表) ;2.实现接口(implements) 定义抽象类也好,定义接口也好,都是为了使用。在Java中,要让接口发挥其功能,需定义一个普通的类,在这个类中覆盖掉接口中的所有方法,以便将其完善,这称为某个类对接口的实现,实现接口是通过关键字implements来说明的。class 类名 extends 父类名 implements 接口名列表 类体 一个类可以实现多个接口,各接口名之间用逗号分隔。 实现接口的类必须要实现接口中所有的抽象方法。即使类中不使用某抽象方法,也必须实现它,通常用空方法体实现不需要返回值的抽象方法,而用返回默认值(如0)的方法体实现需要返回值的抽象方法。在实现抽象时,必须指定为public权限,否则会产生访问权限错误。练习1:1用面向对象的思想定义一个接口Area,其中包含一个计算面积的方法CalsulateArea();然后设计MyCircle和MyRectangle两个类都实现这个接口中的方法CalsulateArea(),分别计算圆和矩形的面积。写出测试以上类和方法的程序TestArea.java。(注:圆周率:Math.PI)interface Areapublic double CalsulateArea();class MyCircle implements Areadouble r;public MyCircle(double r)this.r=r;public double CalsulateArea()return Math.PI*r*r;class MyRectangle implements Areadouble width,height;public MyRectangle(double w,double h)width=w;height=h;public double CalsulateArea()return width*height;class TestArea public static void main(String args) MyCircle c=new MyCircle(2.0); System.out.println(圆的面积:+c.CalsulateArea(); MyRectangle r=new MyRectangle(2.0,3.0); System.out.println(矩形的面积:+r.CalsulateArea(); 程序运行结果:练习22编写程序实现一个接口:接口名Shape1中声明了常量PI、抽象成员方法area()、volume() 和show_height()。表示圆形的类Circle1实现接口Shape1,继承Shape1中声明的常量和成员方法。参考程序:public interface Shape1 public static final double PI=3.14159; public abstract double area(); /计算图形面积 public abstract double volume( double x); /计算图形体积 public abstract void show_height(); /显示图形高度 public class Circle1 implements Shape1 double radius; public Circle1(double r) radius =r; public double area() return PI*radius*radius; public double volume( double x) return 0; public void show_height()public static void main(String args) Circle1 circle=new Circle1(3); System.out.println(Radius=+circle.radius+ Area=+circle.area(); 程序运行结果如下:三、关于线程熟悉掌握创建线程的二种方法: 通过继承Thread类实现多线程 通过Runnable接口实现多线程练习11编写程序,利用线程输出从a到z的26个字母,每隔一秒钟输出一个字母。public class SimpleRunnable implements Runnable char charArray=new char26; public SimpleRunnable () for(int i = 0; icharArray.length; i+) charArrayi=(char)(i+a); public void run() /覆盖run方法 try for (int i = 0; i charArray.length; i+) Thread.sleep(1000); /休眠一秒钟 System.out.print(charArrayi); catch (InterruptedException e) e.printStackTrace(); public static void main(String args) Thread t = new Thread(new SimpleRunnable (); /实例化线程对象 t.start(); /启动线程 练习22编写程序实现如下功能:第一个线程打印6个a,第二个线程打印8个b,第三个线程打印数字1到10,第二和第三个线程要在第一个线程打印完成之后才能开始打印。class Thread1 extends Thread public void run() for(int

温馨提示

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

最新文档

评论

0/150

提交评论