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