第6次作业--static关键字、对象

爷,独闯天下 提交于 2019-11-30 06:30:45

题目一:

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

 

1、实现:

Computer.java文件和App.java文件

 

/**1、Computer.java文件下有:一个包:bao1,创建了一个主类computer类,成员变量jc,定义一个方法getjc.2、构造一个方法,成员变量jc表示阶乘的值,方法getjc是用来运算用户输入数的阶乘值,整型K是用来接传递的参数。3、getjc方法:用k接受传来的参数,然后if判断k的值,如果是0或1直接返回1,其实也是下面“递归”的出口,    k*getjc(k-1),利用递归求阶乘值,getjc()通过调用自身,直到找到递归出口*/
package bao1;//包名
public class Computer {//创建主类Computer
  double jc=1;//定义double型jc 表示阶乘
  public double getjc(int k){//创建主方法
      if(k==1||k==0)
          return 1;//判断用户输入数是不是1和0,是就直接返回1
          jc= k*getjc(k-1);//递归求k的阶乘
          return jc;//返回阶乘值
  }
}
/**1.引入Coputer包,引入Scnner方法,创建主类App,主方法 int变量j ,创建对象t,输出结果。2.变量j用来接收用户输入的值,用Computer创建t这个对象,用来使用 getjc 这个方法。3.创建对象t 开辟空间,给j输入值,然后把j值传给方法getjc ,getjc 算出阶乘值,然后返回结果给t,最后输出结果。*/package bao2;//第二个包名
import bao1.Computer;//引入bao1的Computer
import java.util.Scanner;
public class App {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    int n,i,j;
    Computer t=new Computer();//创建一个对象t
    System.out.println("请输入一个整数:");
    Scanner in=new Scanner(System.in);
      j=in.nextInt();//用j接收用户输入的值
      System.out.println(j+"的阶乘是:"+t.getjc(j));//接收返回值
    }

}

 

2、运行结果:

 

题目二:

设计一个MyPoint类,表示一个具有x坐标和y坐标的点,该类包括:

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

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

 

1.实现

① Test.java文件

/**
 * 1.主类Test,主方法main,对象z1对象z2,最后输出两点距离
 * 2.用MyPoint 分别创建对象z1z2,开辟空间,接收坐标值,输出调用distance方法,并给它传参
 * 3.通过创建对象,然后给对象赋值,然后调用distance方法,给它传值,distance方法算出结果并返回
 * 结果值,然后输出结果。
 * */
package zuobiao;
import java.util.Scanner;
public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyPoint z1 = new MyPoint();//创建MyPoint的对象z1
        MyPoint z2 = new MyPoint();//创建MyPoint的对象z2
        Scanner reader = new Scanner(System.in);
        System.out.println("请输入两点坐标:");//通过接收用户输入的值获取两点的坐标
        z1.setX(reader.nextInt());//获取x1坐标
        z1.setY(reader.nextInt());//获取y1坐标
        z2.setX(reader.nextInt());//获取x2坐标
        z2.setY(reader.nextInt());//获取y2坐标
        System.out.println("两点间的距离为:"+MyPoint.distance(z1, z2));
        //调用distance()方法,计算出两个坐标点之间的直线距离
    }

}

 

② MyPoint.java文件

/**
 * 1.MyPoint.java文件下有主类MyPoint类,MyPoint方法。类方法distance。
 * 2.成员变量x.y,访问器getX(),修改器getY().无参方法MyPoint,有参方法MyPoint,
 * 局部变量x,y.类方法distance,参数p1,p2。distance方法作用是获取坐标值,然后算出两点坐标之间距离。
 * 3.MyPoint方法是创建0,0坐标,然后有参方法是局部变量给成员变量赋值,distance方法,通过对象获取坐标值,
 * 然后通过调取数学方法Math.sqrt开方求得两点距离。
 * */
package zuobiao;
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(){
        x=0;
        y=0;
    }
    MyPoint(double x,double y){
        this.x=x;
        this.y=y;
    }
    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、运行结果:

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!