Java第六次作业

题目1:编写一个类Computer,类中含有一个求n的阶乘的方法。将该类打包,并在另一包中的Java文件App.java中引入包,在主类中定义Computer类的对象,调用求n的阶乘的方法(n值由参数决定),并将结果输出。

App.java

/* 引入了Computer的包
* 建了一个Computer的对象c
* 利用c对象调用了Computer中的setH方法,并且计算出阶乘的值,返回输出。
*
*/

package comm;//创建包
import java.util.Scanner;
import com.Computer;//引入Computer包
public class App {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Computer c=new Computer();//创建对象
System.out.print("请输入一个数");
int a=sc.nextInt();//从键盘接受输入的数
System.out.print("这个数的阶乘为"+c.setH(a));//调用setH方法并输出值
}

}

Computer.java

/* Computer中包含一个sum成员变量 用于接受阶乘的值
* 有一个setH方法,用来求阶乘的运算
*
*/
package com;
public class Computer { //一个类

int sum=1;//变量初始赋值
public int setH(int a){
for(int i=a;i>=1;i--){//for循环 从键盘接受的a,一直循环到1
sum=sum*i;//保存阶乘的值
}
return sum;//返回sum的值
}
}

运行结果

 

 

题目2.设计一个MyPoint类,表示一个具有x坐标和y坐标的点,该类包括:

  • 两个私有成员变量x和y表示坐标值;
  • 成员变量x和y的访问器和修改器
  • 无参构造方法创建点(0,0);
  • 一个有参构造方法,根据参数指定坐标创建一个点;
  • distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间的距离。

        编写主类Test,在主类中输入两点坐标,创建两个点对象,利用distance()方法计算这两个点之间的距离。

Mypoint.java

/*定义坐标的设置器和访问器
*
* */
package com;//创建包
public class Mypoint {
double x;//成员变量
double y;//成员变量

public double getX() {//访问器
return x;
}

public void setX(double x) {//设置器
this.x = x;
}

public double getY() {//访问器
return y;
}

public void setY(double y) {//设置器
this.y = y;
}
Mypoint(){//无参构造方法创建点(0,0);
x=0;
y=0;
}
Mypoint(double x,double y){//一个有参构造方法,根据参数指定坐标创建一个点
this.x=x;
this.y=y;

}
static double distance(Mypoint p1,Mypoint p2){//distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间的距离。
double x1=p1.getX();
double y1=p1.getY();
double x2=p2.getX();
double y2=p2.getY();
return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));//求距离的函数
}

}

Test.java

/*输入2个点的坐标,分别创建各自的对象,
* 调用distance方法求得距离并且返回
* */
package com;//创建com名的包
import java.util.Scanner;//引入输入所需要的类
public class Test {//类名
public static void main(String[] args) {//主方法
Scanner sc=new Scanner(System.in);
System.out.print("请输入第一个坐标(x1,y1)");//提示输入的东西
double x1=sc.nextDouble();//从键盘接受输入的第一个点的横坐标
double y1=sc.nextDouble();//从键盘接受输入的第一个点的纵坐标
System.out.print("请输入第一个坐标(x2,y2)");
double x2=sc.nextDouble();//从键盘接受输入的第二个点的横坐标
double y2=sc.nextDouble();//从键盘接受输入的第二个点的纵坐标
Mypoint p1=new Mypoint(x1,y1);
Mypoint p2=new Mypoint(x2,y2);
System.out.print("两个坐标点的距离为"+Mypoint.distance(p1, p2));//调用方法并返回距离
}

}

运行结果

 

posted @ 2019-09-21 22:34  安稳度余生  阅读(216)  评论(0编辑  收藏  举报