第六次作业——static关键字、对象

一、题目一:

1、需求分析:

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

2、设计实现:

Computer类:定义了一个公开的Computer类、一个公开的int型的静态方法、两个int型变量

/**
 * 将下列所有的类打包为DaBao
 */
package DaBao;

/**
 *创建公开的Computer类
 *创建公开的int型的静态方法Sun
 *定义两个int型变量i、s
 *利用for循环计算并返回s值
 */
public class Computer {

    public static int Sun(int n) {
        
        
        int i,s=1;
    
        for(i=1;i<=n;i++)
          {
            s=s*i;
          }
       return s;//返回给调用对象计算结果s
    }
}
    

App类:创建了一个Computer类的对象

/**
 * 将下列所有的类打包成TwoBao包
 * 创建属于Computer类的Sum对象
 * 利用对象Sum调用Computer类中的Sun方法,并且把变量x的值传递给方法Sun,并由方法Sun计算并返回结果
 */
package TwoBao;
import java.util.*;
import DaBao.*;//导入DaBao包
public class App {

    public static void main(String[] args) {
    
        Scanner reader=new Scanner(System.in);
        System.out.println("请输入操作数的数值");
        int x=reader.nextInt();
        Computer Sum=new Computer();
        System.out.println("该操作数的阶乘为:"+Sum.Sun(x));
    }

}

3、测试运行

二、题目二:设计一个MyPoint类,表示一个具有x坐标和y坐标的点

1、需求分析

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

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

 2、代码实现

(1)MyPoint类:定义了两个double型的私有成员变量、一个无参构造方法、一个有参构造方法,一个返回值为double型的类方法

package My;

public class MyPoint {
/**
 * 定义两个私有 成员变量分别为 x,y
 * 分别创建两个私有成员变量x、y的访问器和修改器
 */
    private double x;
    private 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;
    }
    
    /**
     * 无参构造方法创建点(0,0)
     */
      MyPoint(){                           
              x=0;
              y=0;
           }
    
     /**
      * 一个有参构造方法,根据参数指定坐标创建一个点x,y。
      */
    MyPoint(double x,double y){
        this.x=x;
        this.y=y;
    }
    
    /**
     * distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间的距离
     * 利用Math.sqrt();开平方根
     */
    static double distance (MyPoint p1,MyPoint p2) {
        double x1=p1.getX();
        double x2=p2.getX();
        double y1=p1.getY();
        double y2=p2.getY();
        return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    }
}

(2)Test类:创建两个MyPoint类的对象、创建一个Scanner方法的对象

package My;
import java.util.*;
public class Test {

    public static void main(String[] args) {
        /**
         * 创建两个MyPoint类的对象p1、p2
         */
        
        MyPoint p1=new MyPoint();
        MyPoint p2=new MyPoint();
        
        /**
         * 创建Scanner方法的对象sun;
         */
        Scanner sun= new Scanner(System.in);
        System.out.print("输入两点坐标");
        
        /**
         * 分别为赋予两点x,y的坐标值
         */    
        double x1=sun.nextDouble();
        double y1=sun.nextDouble();
        
        double x2=sun.nextDouble();
        double y2=sun.nextDouble();
        
        /**
         * 利用对象p1、p2将x1、x2、y1、y2的值分别赋予修改器setX方法、setY方法
         */
        p1.setX(x1);
        p2.setX(x2);
        p1.setY(y1);
        p2.setY(y2);
        /**
         * 输出时调用Mypoint.distance()方法算出两点距离
         */
        System.out.print("两点之间的距离为:"+MyPoint.distance(p1, p2));;
    }

}

3、运行截图:

原文地址:https://www.cnblogs.com/sunshuaiqun/p/11561825.html