一、作业
题目1:编写一个类Computer,类中含有一个求n的阶乘的方法。将该类打包,并在另一包中的Java文件App.java中引入包,在主类中定义Computer类的对象,调用求n的阶乘的方法(n值由参数决定),并将结果输出。
题目2:
设计一个MyPoint类,表示一个具有x坐标和y坐标的点,该类包括:
- 两个私有成员变量x和y表示坐标值;
- 成员变量x和y的访问器和修改器
- 无参构造方法创建点(0,0);
- 一个有参构造方法,根据参数指定坐标创建一个点;
- distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间的距离。
编写主类Test,在主类中输入两点坐标,创建两个点对象,利用distance()方法计算这两个点之间的距离。
二、代码加注释
题目1:
package HomeWork2;
public class Computer {
public static void main(String[] args){
}
public static int fac(int a){
int fac1=1;
if(a>1){
for(int i=2;i<=a;i++){
fac1=fac1*i;
}
}
return fac1;
}
}
package HomeWork2;
public class Computer {
public static void main(String[] args){//为什么要把主函数单独列出来,把求阶乘列到主函数里不好吗?
}
public static int fac(int a){//public和static的使用方法????
int fac1=1;
if(a>1){ //如果a<0那么阶乘结果也会是1,这是个BUG
for(int i=2;i<=a;i++){
fac1=fac1*i;
}
}
return fac1;//什么时候返回?什么时候用return?return怎么使用
}
}
题目二:
package HomeWork2;
public class MyPoint1{
private int x,y;
MyPoint1(){ //构造方法名称必须要和类名一样(此为 无 返回值类型的构造方法)
x=0;
y=0;
}
public MyPoint1(int x,int y){ //构造方法名称必须要和类名一样(此为 有 返回值类型的构造方法)
this.x=x;
this.y=y;
}
int getX(){
return x;
}
int getY(){
return y;
}
void setX(int x){
this.x=x;
}
void setY(int y) {
this.y=y;
}
public static double distance1(MyPoint1 xy1,MyPoint1 xy2){
double distance=Math.sqrt(Math.pow((xy1.getX()-xy2.getX()),2)+Math.pow((xy1.getY()-xy2.getY()),2));
return distance;
}
}
package HomeWork;
import HomeWork2.MyPoint1;
public class MyPoint {
public static void main(String[] args) {
MyPoint1 xy1=new MyPoint1(2,3);
MyPoint1 xy2=new MyPoint1(4,5);
double distance=MyPoint1.distance1(xy1,xy2);
System.out.println("两点间的距离是"+distance);
}
}
三、运行截图
题目一:
题目二: