6-1 设计一个矩形类Rectangle (9 分)
设计一个名为Rectangle的类表示矩形。这个类包括: 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height的默认值都为1. 一个无参构造方法。 一个为width和height指定值的矩形构造方法。 一个名为getArea()的方法返回这个矩形的面积。 一个名为getPerimeter()的方法返回这个矩形的周长。
类名为:
Rectangle
裁判测试程序样例:
import java.util.Scanner;
/* 你的代码将被嵌入到这里 */
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double w = input.nextDouble();
double h = input.nextDouble();
Rectangle myRectangle = new Rectangle(w, h);
System.out.println(myRectangle.getArea());
System.out.println(myRectangle.getPerimeter());
input.close();
}
}
输入样例:
3.14 2.78
输出样例:
8.7292
11.84
class Rectangle{
public double width = 1;
public double height = 1 ;
Rectangle(){}
Rectangle(double width,double height){
this.height =height;
this.width =width;
}
double getPerimeter(){
return 2*(height+width);
}
double getArea(){
return width*height;
}
}
6-2 创建一个直角三角形类实现IShape接口 (10 分)
创建一个直角三角形类(regular triangle)RTriangle类,实现下列接口IShape。两条直角边长作为RTriangle类的私有成员,类中包含参数为直角边的构造方法。
interface IShape {// 接口
public abstract double getArea(); // 抽象方法 求面积
public abstract double getPerimeter(); // 抽象方法 求周长
}
直角三角形类的定义:
直角三角形类的构造函数原型如下:
RTriangle(double a, double b);
其中 a 和 b 都是直角三角形的两条直角边。
裁判测试程序样例:
import java.util.Scanner;
import java.text.DecimalFormat;
interface IShape {
public abstract double getArea();
public abstract double getPerimeter();
}
/*你写的代码将嵌入到这里*/
public class Main {
public static void main(String[] args) {
DecimalFormat d = new DecimalFormat("#.####");
Scanner input = new Scanner(System.in);
double a = input.nextDouble();
double b = input.nextDouble();
IShape r = new RTriangle(a, b);
System.out.println(d.format(r.getArea()));
System.out.println(d.format(r.getPerimeter()));
input.close();
}
}
输入样例:
3.1 4.2
输出样例:
6.51
12.5202
class RTriangle implements IShape{
private double a,b;
RTriangle(double a,double b){
this.a = a;
this.b = b;
}
public double getArea() {
return a*b/2;
}
public double getPerimeter() {
return a+b+Math.sqrt(a*a+b*b);
}
}
6-3 从抽象类shape类扩展出一个圆形类Circle (9 分)
请从下列的抽象类shape类扩展出一个圆形类Circle,这个类圆形的半径radius作为私有成员,类中应包含初始化半径的构造方法。
public abstract class shape {// 抽象类
public abstract double getArea();// 求面积
public abstract double getPerimeter(); // 求周长
主类从键盘输入圆形的半径值,创建一个圆形对象,然后输出圆形的面积和周长。保留4位小数。
圆形类名Circle
裁判测试程序样例:
import java.util.Scanner;
import java.text.DecimalFormat;
abstract class shape {// 抽象类
/* 抽象方法 求面积 */
public abstract double getArea( );
/* 抽象方法 求周长 */
public abstract double getPerimeter( );
}
/* 你提交的代码将被嵌入到这里 */
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
DecimalFormat d = new DecimalFormat("#.####");// 保留4位小数
double r = input.nextDouble( );
shape c = new Circle(r);
System.out.println(d.format(c.getArea()));
System.out.println(d.format(c.getPerimeter()));
input.close();
}
}
输入样例:
3.1415926
输出样例:
31.0063
19.7392
``
class Circle extends shape{
private double radius;
Circle(double radius){
this.radius =radius;
}
public double getArea() {
return Math.PI*radius*radius ;
}
public double getPerimeter() {
return 2*Math.PI *radius;
}
}
6-4 jmu-Java-07多线程-PrintTask (6 分)
编写PrintTask类实现Runnable接口。
功能:输出从0到n-1的整数(n在创建PrintTask对象的时候指定)。并在最后使用
System.out.println(Thread.currentThread().getName());
输出标识信息。
裁判测试程序:
import java.util.Scanner;
/*这里放置你的答案,即PrintTask类的代码*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
PrintTask task = new PrintTask(Integer.parseInt(sc.next()));
Thread t1 = new Thread(task);
t1.start();
sc.close();
}
}
输入样例:
3
输出样例:
0
1
2
标识信息
``
class PrintTask implements Runnable{
int parseInt;
public PrintTask(int parseInt) {
this.parseInt =parseInt;
}
public void run() {
for(int i=0;i<parseInt;i++)
System.out.println(i);
System.out.println(Thread.currentThread().getName());
}
}