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

梦想的初衷 提交于 2019-11-30 05:37:34

☆题目1

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

☆代码及注释

☆☆App.java包内

package App.java;

/**
 * 定义一个公有的Computer类 里面包含一个公有的jieCheng方法 将类打包在App.java中
 * 
 * @author minky
 */
public class Computer {// 定义公有类
    public int jieCheng(int n) {// 定义一个公有方法,一个参数n,返回值为int类型
        int num = 1;
        for (int i = 1; i <= n; i++) {// 循环求阶乘
            num *= i;
        }
        return num;
    }
}

☆☆com.java包内

package com.java;

import java.util.Scanner;

import App.java.*;

/**
 * 这是一个主类,来实现输入一个整数来求他的阶乘 需要导入App.java的包 将它打包在com.java
 * 
 * @author minky
 *
 */
public class Test {// 定义一个public 类 名字是Test
    public static void main(String[] args) {// 主方法
        Scanner scanner = new Scanner(System.in);// 创建Scanner的对象
        Computer computer = new Computer();// 创建Scanner的对象
        System.out.println("请输入要阶乘的数:");
        int n = scanner.nextInt();// 声明一个n,并调用Scanner类中的nextInt方法从键盘上获取一个整型。
        System.out.println(n + "的阶乘是:" + computer.jieCheng(n));// 调用Computer类中的jieCheng方法,传入参数n得出n的阶乘
    }
}

☆代码运行截图

☆题目2

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

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

☆代码及注释

☆☆com.point包内

package com.point;

import java.util.Scanner;

/**
 * MyPoint类,表示一个具有x坐标和y坐标的点, 一个类方法求两个点的之间的距离
 * 
 * @author minky
 *
 */
public class MyPoint {
    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;
    }

    private void Mypoint() {// 无参构造方法
        x = 0.0;
        y = 0.0;

    }

    public MyPoint(double x, double y) {// 有参构造方法
        this.x = x;
        this.y = y;
    }

    public static double distance(MyPoint p1, MyPoint p2) {// 公有类方法
                                                            // 两个参数均为Mypoint类型,返回值为double
        return Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
    }
}
/**
 * 测试类:输入两个坐标计算两个坐标之间的距离
 * @author minky
 *
 */
class Testt{
    public static void main(String[] args) {
        
        double x1,y1,x2,y2;
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入第一个点的横纵坐标:");
        x1=scanner.nextDouble();
        y1=scanner.nextDouble();
        System.out.println("请输入第二个点的横纵坐标:");
        x2=scanner.nextDouble();
        y2=scanner.nextDouble();
        MyPoint p1=new MyPoint(x1, y1);//调用有参构造方法
        MyPoint p2=new MyPoint(x2, y2);//调用有参构造方法
        System.out.println("两点间的距离为:"+MyPoint.distance(p1, p2));//输出
        
    }
    
    
    
}

☆运行截图

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