第6次作业--static关键字、对象
题目一
1、需求
编写一个类Computer,类中含有一个求n的阶乘的方法。将该类打包,并在另一包中的Java文件App.java中引入包,在主类中定义Computer类的对象,调用求n的阶乘的方法(n值由参数决定),并将结果输出。
2、源代码
①
1 /** 2 computer.java 3 ①一个类,一个方法 4 ②变量x为App包中传的参数;i为循环变量;y为自定义变量,用来累计阶乘 5 ③构造方法ccc用来计算传入参数的阶乘 6 */ 7 package comp;//创建包 8 public class computer {//生成computer类 9 int x; 10 public int ccc(int x){//构造方法 11 int y=1; 12 for(int i=1;i<=x;i++) 13 y=y*i; 14 return(y);//求出阶乘并返回值 15 } 16 17 }
②
1 /** 2 App.java 3 ①一个类,一个主方法 4 ②变量n为输入的整数 5 ③方法中定义computer类的对象 6 */ 7 package qqq; 8 import comp.computer;//导入comp包 9 import java.util.Scanner; 10 11 public class App { 12 13 /** 14 * @param args 15 */ 16 public static void main(String[] args) {//主方法 17 // TODO Auto-generated method stub 18 System.out.println("输入一个整数:"); 19 Scanner reader=new Scanner(System.in);//创建Scanner对象 20 int n=reader.nextInt();//输入整数赋给n 21 computer a=new computer();//定义computer类的对象 22 System.out.println("该数的阶乘为:"+a.ccc(n));//输出阶乘 23 } 24 25 }
3、运行结果
题目二
1、需求
设计一个MyPoint类,表示一个具有x坐标和y坐标的点,该类包括:
- 两个私有成员变量x和y表示坐标值;
- 成员变量x和y的访问器和修改器
- 无参构造方法创建点(0,0);
- 一个有参构造方法,根据参数指定坐标创建一个点;
- distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间的距离。
编写主类Test,在主类中输入两点坐标,创建两个点对象,利用distance()方法计算这两个点之间的距离。
2、源代码
1 /** 2 test.java 中有test类和主方法,变量x1,x2,y1,y2用来输入坐标值 3 Mypoint.java中有Mypoint类 4 Mypoint中有访问器getX()和修改器setX() 5 distance方法传回求两点的距离 6 */ 7 package hhh; 8 import java.util.*; 9 10 public class test { 11 12 /** 13 * @param args 14 */ 15 public static void main(String[] args) { 16 Scanner reader=new Scanner(System.in); 17 System.out.println("输入一个点坐标:"); 18 double x1=reader.nextDouble(); 19 double y1=reader.nextDouble(); 20 System.out.println("输入另一个点坐标:"); 21 double x2=reader.nextDouble(); 22 double y2=reader.nextDouble(); 23 Mypoint p1=new Mypoint(); 24 Mypoint p2=new Mypoint(); 25 p1.setX(x1); 26 p2.setX(x2); 27 p1.setY(y1); 28 p2.setX(y2); 29 System.out.println("两点间的距离为:"+Mypoint.distance(p1,p2)); 30 } 31 32 } 33 /** 34 35 */ 36 package hhh; 37 public class Mypoint { 38 double x; 39 double y; 40 public double getX() { 41 return x; 42 } 43 public void setX(double x) { 44 this.x = x; 45 } 46 public double getY() { 47 return y; 48 } 49 public void setY(double y) { 50 this.y = y; 51 } 52 53 54 static double distance(Mypoint p1,Mypoint p2){ 55 double x1 = p1.getX(); 56 double x2 = p2.getX(); 57 double y1 = p1.getY(); 58 double y2 = p2.getY(); 59 return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); 60 } 61 }
3、运行结果