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 }

 

 

运行结果

 

posted @ 2019-09-18 21:38  20194680刘厚飞  阅读(216)  评论(0编辑  收藏  举报