题目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));//调用方法并返回距离
}
}
运行结果