面向对象基础3--static、this、包总结
1.题目一:编写一个类Computer,类中含有一个求n的阶乘的方法。将该类打包,并在另一包中的Java文件App.java中引入包,在主类中定义Computer类的对象,调用求n阶乘的方法(n值由参数决定),并将结果输出。
2.源程序
(1).Computer.java
创建了一个Computer类,定义了两个变量i和t,利用for语句求n的阶乘
package 啦啦啦1;
//创建一个包
public class Computer {
//创建一个Computer类
public int jiecheng(int n){
int i,t=1;
for(i=1;i<=n;i++)
{t=t*i;
}//求n的阶乘 把最后结果赋值给t
return t;
}
}
(2)APP.java
package 啦啦啦;//创建一个包 import java.util.Scanner;//利用import语句引入scanner类 import 啦啦啦1.*;//用import实现包的调用,然后再对调用类的实例化调用里面的方法 public class APP {//创建一个名为APP的类 public static void main(String[] args) {//创建主方法 // TODO Auto-generated method stub Computer n1=new Computer();//创建一个对象 Scanner reader=new Scanner(System.in);//利用scanner类创建对象 int n=reader.nextInt();//使用对象reader接收数据 System.out.println("用户输入的是:"+n);//输出用户输入的n的值 int n2=n1.jiecheng(n);//使用调用方法求n阶乘 System.out.println("n的阶乘为"+n2);//输出n的阶乘 } }
二.运行结果
第二题
设计一个MyPoint类,表示一个具有x坐标和y坐标的点,该类包括:
1.两个私有变量x和y表示坐标值;
2.成员变量x和y的访问器和修改器;
3.无参构造方法创建点(0,0);
4.一个有参构造方法,根据参数指定坐标创建一个点;
5.distance方法(static修饰)返回参数为MyPoint类型的两个点对象之间的距离。
编写主类Test,在主类中输入两点坐标,创建两个点对象,利用distance()方法计算这两个点之间的距离。
package 啦啦啦;
import java.util.*;
public class Test {
public static void main(String[] args) {
//在主类中输入两点坐标
Scanner reader=new Scanner(System.in);
System.out.println("请输入两点坐标");
//创建两个点对象
MyPoint point1 = new MyPoint();
MyPoint point2 = new MyPoint();
//存入值
point1.setx1(reader.nextDouble());
point1.sety1(reader.nextDouble());
point2.setx1(reader.nextDouble());
point2.sety1(reader.nextDouble());
//利用distance()方法计算两个点之间的距离
double distance = point1.distance(point2);
System.out.println(distance);
}
}
class MyPoint{
private double x;
private double y;
//两个私有成员变量x和y表示坐标值
public double getX() {
return x;
}
//创建一个X访问器
public double getY() {
return y;
}
// 创建一个Y的访问器
void setx1(double a){
x=a;
}
void sety1(double b){
x=b;
}
void setx(double a1){
x=a1;
}
void sety(double b1){
x=b1;
}
//创建XY的修改器,并重新赋值
public MyPoint(){
this.x = 0;
this.y = 0;
}
//无参构造方法创建点(0,0)
public MyPoint(double x,double y){
this.x = x;
this.y = y;
}
public double distance(MyPoint p1,MyPoint p2){
// Math.hypot() 函数返回它的所有参数的平方和的平方根
double distance = Math.hypot((p1.getX()-p2.getX()),(p1.getY()-p2.getY()));
return distance;
}
public double distance(MyPoint p){
double distance = Math.hypot((x-p.getX()),(y-p.getY()));
return distance;
}
}
运行结果