2019长春工业大学192402 java 面向对象基础3作业
题目1:编写一个类Computer,类中含有一个求n的阶乘的方法。将该类打包,并在另一个包中的java文件App.java中引入包,在主类中定义Computer类的对象,调用求n的阶乘的方法(n值有参数决定),并将结果输出。
代码:
/**定义一个computer包,jiecheng类,a方法;
jiecheng类的功能是求阶乘并返回值,a方法则是求阶乘的方法;
a方法中定义参数是int型,返回值也是int型,两个局部变量sum为阶乘和,i为循环变量,参数n为几的阶乘;
*/
package Computer;//包名computer public class jiecheng {//类名jiecheng public int a(int n){//方法名a int sum=1; for(int i=1;i<=n;i++){ sum*=i;//求阶乘 } return(sum);//返回结果 } }
/**定义一个app包,引用computer包的jiecheng类和util包的所有类。并在app包中定义一个主类zzzz,包含主方法入口,util包的scanner类型,jiecheng类的a方法;
声明scanner类型的shuru对象和jiecheng类型的b对象;
用int型变量n来获取输入的数据,int型变量x来获取阶乘的数据,最后运用输出方法输出阶乘;
*/
package App;//包名app import Computer.jiecheng;//引用computer包的jiecheng类 import java.util.*;//引用util包的所有类 public class zzzz {//类名zzzz public static void main(String[] args) {//主方法入口 Scanner shuru=new Scanner(System.in); int n=shuru.nextInt();//引用scanner类型,定义scanner类型对象shuru,并定义一个int型变量n,获取对象shuru的值 jiecheng b=new jiecheng();//引用jiecheng类,定义jiecheng类型对象b,并定义一个int型变量x,获取b中a方法的返回值; int x=b.a(n); System.out.println(x);//输出x; } }
运行:
题目2:设计一个Mypoint类,表示一个具有x坐标和y坐标的点,该类包括:
1.两个私有成员变量x和y表示坐标值;
2.成员变量x和y的访问器和修改器;
3.无参构造方法创建点(0.0);
4.一个有参构建方法,根据参数指定坐标创建一个点;
5.distance方法(static修饰)返回Mypoint类型的两个点对象之间的距离;
编写主类Test,在主类中输出两点坐标,创建两个点对象,利用distance()方法计算这两个点之间的距离;
代码:
/**定义一个hmework2包,其中包含Mypoint类,类中两个私有double型成员变量x用来存储横坐标值,y用来存储纵坐标值;并有x和y的访问器和修改器方法:getX()getY()setX()setY();
类中还包含一个无参构造方法Mypoint()使x和y坐标值为0;一个有参构造方法Mypoint(double x double y)用来获取外界传出的x和y值,并用this关键字来复制给成员变量x和y;
并定义一个static静态的返回值为double类型的distance方法用来计算两点距离,其参数为Mypoint的类型的对象,赋值给方法中四个double类型的变量,并运用math.sprt方法计算距离后返回;
*/
package homework2; public class Mypoint { private double x; private double y; public double getX(){ return(x); } public double gety(){ return(y); } public void setX(double x){ this.x=x; } public void setB(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 a,Mypoint b){ double x1=a.getX();
double x2=b.getX();
double y1=a.getY();
double y2=b.getY();
return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); } }
/**在homework2包中顶一个Test主类,并引用util包的所有方法,设置一个主方法入口,用输出方法提示用户输入两个点;并定义一个scanner类型的对象z,和四个成员变量i,j,p,q来获取用户输入的坐标数据;
定义两个Mypoint类型的对象a和b,将a和b当作参数,并定义一个double型的m来获取Mypoint类的distance方法返回值。然后输出距离m;
*/
package homework2; import java.util.*; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入两个点"); Scanner z=new Scanner(System.in); double i=z.nextDouble(); double j=z.nextDouble(); double p=z.nextDouble(); double q=z.nextDouble(); Mypoint a=new Mypoint(i,j); Mypoint b=new Mypoint(p,q); double m=Mypoint.distance(a,b); System.out.println(m); } }
运行结果: