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


    题目一:

    编写一个类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、运行结果:

  • 相关阅读:
    硬币游戏 Project Euler 232
    屏幕空间的近似全局光照明(Approximative Global Illumination in Screen Space)
    四维之美
    vertex texture fetching in HLSL, and heightfield normal calculation
    一个VS小插件(跳出括号)
    我的算法书籍收藏
    Algorithms.算法概论.习题答案
    UML用例图教程详解
    大连理工大学软件学院博客地址
    快递查询API,我推荐“爱快递”
  • 原文地址:https://www.cnblogs.com/zyg777/p/11543978.html
Copyright © 2020-2023  润新知