JAVA上机题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、运行书中Helloworld程序
二、编写一个计算器类,要求实现加、减、乘、除运算,
注意在进行除法运算时,如果除数为0,那么就直接输出Error来
下面代码为判断是否为数字,如果是数字,那么返回是true,否则返回false,在使用下面代码前,要在程序头导入包:import java.util.regex.*;
public static boolean isNumeric(String str)
{
Pattern pattern = pil e("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() )
{
return false;
}
return true;
}
三、编写Java程序,要求在运行的时候输入一个数字,表
示行数,程序计算出相应行数的杨辉三角数据,并在屏幕
上显示出来。
(1)、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。
(2)、第n行的数字个数为n个。
(3)、第n行数字和为2n − 1。
(4)、每个数字等于上一行的左右两个数字之和。
(5)、将第2n+1行第1个数,跟第2n+2行第3个数、第2n+2行第5个数……连成
一线,这些数的和是第2n个斐波那契数。将第2n行第2个数,跟第2n+1行第
4个数、第2n+2行第6个数……这些数之和是第2n-1个斐波那契数。
(6)、第n行的第1个数为1,第二个数为1×(n-1),第三个数为1×n×(n-1)/2,
第四个数为1×n×(n-1)/2×(n-2)/3…依此类推。
通过main方法中的args获取用户附带的参数,例如用户输入app 10 (注意
参数间有空格),那么args对应的值为:args[0]=10,然后通过
Integer.parseInt(args[0]),即可得到int类型的数据。
四、编写Java程序,Java中程序的结构,类的声明和定义
掌握面向对象的基本思想,抽象对象并定义类,类的继承结构,理解并能熟练运用类的多态性,抽象类和接口及它们的区别,理解并熟练运用抽象类和接口解决耦合问题。
1、构造一个抽象类Shape,它有两个抽象的方法area()和perimeter(),分别表
示求面积和周长,此外,它还有一个具体方法message(),能输出类的一些信息。
public abstract class Shape { //创建抽象类
public abstract void area(); //创建抽象方法
public abstract void perimeter(); //创建抽象方法
public void message(){ //创建具体方法
System.out.print("OY");
}
}
2、定义一个接口Graph,它有一个抽象的方法draw(),表示绘制Shape。
public interface Graph { //创建接口
public abstract void draw(); //创建抽象方法
}
3、构造Shape的两个子类Circle和Rectangle,分别表示圆和矩形,并且实现接口
Graph。
//创建Circle类,继承Shape类,并实现接口Graph
public class Circle extends Shape implements Graph {
// 重写抽象类的抽象方法
public void area() {
}
// 重写抽象类的抽象方法
public void perimeter() {
}
// 重写接口的抽象方法
public void draw(){
};
}
//创建Rectangle类,继承Shape类,并实现接口Graph
public class Rectangle extends Shape implements Graph{
// 重写抽象类的抽象方法
public void area() {
// TODO Auto-generated method stub
}
// 重写抽象类的抽象方法
public void perimeter() {
// TODO Auto-generated method stub
}
// 重写接口的抽象方法
public void draw(){
};
}
4、构造测试类Test,其有方法getShapeData(Shape s),它输出s的面积和周长,
构造矩形实例和圆实例,体会area方法和perimeter方法的多态性。
public class Test { //创建Test类
public static void getShapeData(Shape s){ //创建方法
s.area();
s.perimeter();
}
public static void main(String[] args) {
getShapeData(new Circle()); //抽象类的多态
getShapeData(new Rectangle()); //抽象类的多态}
}
5、类似上题,为Test添加方法drawGraph(Graph g),它“画出”Graph的图形----
调用draw方法,构造矩形实例和圆实例,体会draw方法的多态性。
public class Test { //创建Test类
public void drawGraph(Graph g){ //创建方法
g.draw();
}
public static void main(String[] args) {
Test t=new Test();
t.drawGraph(new Circle()); //接口的多态
t.drawGraph(new Rectangle()); //接口的多态}
}
总结:
1、根据自己对实验的理解,说明一下在本实验中,抽象类Shape的作用是什么?
产生子类的同时给于子类一些特定的属性和方法
2、分析说明抽象类和接口的异同?
抽象类可以给出一些成员的实现,接口却不包含成员的实现,抽象类的抽象成员可以被子类部分实现,接口的成员需要实现类完全实现,一个类只能继承一个抽象类,但可以实现多个接口。
1.类是对对象的抽象;抽象是对类的抽象;接口是对行为的抽象。
2.如果行为跨越不同的对象,可使用;对于一些相似的类对象,用继承抽象类。
3.抽象类是从子类发现公共的东西,泛化出父类,然后子类继承父类;而接口是根本不知子