一、题目1
编写一个类Computer,类中含有一个求n的阶乘方法。将该类打包,并在另一个包中Java文件中引入包,在主类中定义Computer类的对象,调用求n的阶乘方法,并输出。
二、代码
1.computer.java
/** * computer.java文件computer类包含了类变量sum和getSum方法 * sum变量初始为1,getSum方法中定义了一个if判断,正确返回最后sum值,错误继续返回方法 * getSum方法中还写了求阶乘的算式 */ package com;//包名 public class Computer {//定义一个computer类 static int sum=1; //设置一个静态变量sum public int getSum(int n){//创建一个求n阶乘的方法 if(n==1){ //判断n是否等于1 return sum; //返回sum值 } sum*=n; //求n的阶乘 return getSum(n-1); //递归 } }
2.App.java
/** * a包下的APP.java文件下有App类和主方法 * 方法中创建了computer的对象和输入操作并最后输出结果 */ package a;//包名 import java.util.Scanner;//导入scanner类 import com.Computer;//导入com包里的computer类 public class App {//定义一个类 public static void main(String[] args) {//主方法 Computer c=new Computer();//创建对象 Scanner reader=new Scanner(System.in);//输入数据 System.out.println("请输入一个数:"); int n=reader.nextInt();//获取输入值 System.out.println(n+"的阶乘为:"+c.getSum(n));//输出结果 } }
三、运行结果
一、题目二
设计一个MyPoint类,表示一个具有x坐标和y坐标的点,该类包括:
- 两个私有成员变量x和y表示坐标值;
- 成员变量x和y的访问器和修改器
- 无参构造方法创建点(0,0);
- 一个有参构造方法,根据参数指定坐标创建一个点;
- distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间的距离。
编写主类Test,在主类中输入两点坐标,创建两个点对象,利用distance()方法计算这两个点之间的距离。
二、代码
1.Test.java
/** * Test.java文件下有MyPoint类和Test类 * MyPoint类中有私有成员变量x,y、x,y的修改器和访问器、无参构造方法、有参构造方法和distance方法 * 无参构造方法中定义了一个初始点(0,0),有参构造方法中将参数值赋给了成员变量 * distance方法中写了求两点距离的算式 * Test类中的主方法创建了p1,p2两个对象,并赋初值为两个点坐标,最后调用distance方法输出结果 */ package b; import java.util.Scanner; class MyPoint{ //定义MyPoint类 private double x; //定义私有成员变量 private double y; public double getX() { //成员变量x访问器 return x; } public void setX(double x) {//成员变量x修改器 this.x = x; } public double getY() { //成员变量y访问器 return y; } public void setY(double y) {//成员变量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){//求两点距离方法 return Math.sqrt((p1.getX()-p2.getX())*(p1.getX()-p2.getX())+(p1.getY()-p2.getY())*(p1.getY()-p2.getY())); } } public class Test { public static void main(String[] args) { //主方法 Scanner reader=new Scanner(System.in);//输出语句 System.out.println("请输入第一个点坐标:"); double x1=reader.nextDouble(); double y1=reader.nextDouble(); System.out.println("请输入第二个点坐标:"); double x2=reader.nextDouble(); double y2=reader.nextDouble(); MyPoint p1=new MyPoint(x1,y1); //创建对象 MyPoint p2=new MyPoint(x2,y2); System.out.println("两点间的距离是:"+MyPoint.Distance(p1, p2));//输出结果 } }