• 第六次作业——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、运行截图:

  • 相关阅读:
    微信小程序 iPhone 11、iPhoneX 底部安全区域(底部小黑条)适配
    Servlet与vue-axios交互跨域问题之Access-Control-Allow-Origin' header contains multiple values '*, null', but only one is allowed.
    Windows10下PCL1.8.1以及Python-pcl1.81环境配置的掉发之路
    【问题记录】Navicat Premium连接mysql-8.0.17时出现2059
    mysql-8.0.17解压版安装步骤及MySQL服务无法启动问题的解决办法
    ENVI基本操作之彩色合成
    GeoServer与Udig发布矢量数据出现的问题1——预览数据一半显示正常一半重叠
    本地日志文件
    SQL语句(2)--- 函数
    SQL语句(1)--- SQL简介
  • 原文地址:https://www.cnblogs.com/sunshuaiqun/p/11561825.html
Copyright © 2020-2023  润新知