20194680-第6次作业--static关键字、对象
题目1:编写一个类Computer,类中含有一个求n的阶乘的方法。将该类打包,并在另一包中的Java文件App.java中引入包,在主类中定义Computer类的对象,调用求n的阶乘的方法(n值由参数决定),并将结果输出。
A/Computer.java
在包A中定义了computer类,类中定义了求阶乘的方法
1 package A; 2 3 public class Computer { 4 public int jc(int n) { 5 if(n==1) 6 return 1; 7 else 8 return n*jc(n-1); 9 } 10 }
B/App.java
在包B中导入A包中的Compyter方法,并实现主方法测试。
1 package B; 2 import java.util.Scanner; 3 4 import A.Computer; 5 6 public class App { 7 8 public static void main(String[] args) { 9 Scanner input=new Scanner(System.in); 10 int n=input.nextInt(); 11 Computer com=new Computer(); 12 System.out.println(n+"!="+com.jc(n)); 13 } 14 15 }
运行结果
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题目2:
设计一个MyPoint类,表示一个具有x坐标和y坐标的点,该类包括:
- 两个私有成员变量x和y表示坐标值;
- 成员变量x和y的访问器和修改器
- 无参构造方法创建点(0,0);
- 一个有参构造方法,根据参数指定坐标创建一个点;
- distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间的距离。
编写主类Test,在主类中输入两点坐标,创建两个点对象,利用distance()方法计算这两个点之间的距离。
MyPoint.java
定义了MyPoint类,类中定义了x,y坐标及求两点间距离的方法。
1 package javaDemo; 2 3 import java.util.Scanner; 4 5 public class MyPoint { 6 private double x; 7 private double y; 8 9 public MyPoint() { 10 x = 0.0; 11 y = 0.0; 12 } 13 14 public MyPoint(double x, double y) { 15 this.x = x; 16 this.y = y; 17 } 18 19 20 public double getX() { 21 return x; 22 } 23 24 public void setX(double x) { 25 this.x = x; 26 } 27 28 public double getY() { 29 return y; 30 } 31 32 public void setY(double y) { 33 this.y = y; 34 } 35 36 public static double distance(MyPoint A, MyPoint B) { 37 double distance = Math.sqrt((A.getX() - B.getX) * (A.getX - B.getX) + (A.getY + B.getY) * (A.getY + B.getY)); 38 return distance; 39 } 40 41 }
Test.java
测试类
1 package javaDemo; 2 3 import javaDemo.MyPoint; 4 import java.util.Scanner; 5 6 public class Test { 7 public static void main(String[] args) { 8 Scanner input = new Scanner(System.in); 9 MyPoint[] p = new MyPoint[2]; 10 for (int i = 0; i < 2; i++) { 11 System.out.println("输入点p" + (i + 1) + "的(x,y)坐标:"); 12 double x = input.nextDouble(); 13 double y = input.nextDouble(); 14 p[i] = new MyPoint(x, y); 15 } 16 System.out.println("点(" + p[0].x + "," + p[0].y + ")" + "与点" + "(" + p[1].x + "," + p[1].y + ")" + "的距离是 " 17 + MyPoint.distance(p[0], p[1])); 18 } 19 }
运行结果