面向对象基础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;
    }
 
}

 

 

运行结果

posted on 2019-09-18 12:58  张璐20194658  阅读(132)  评论(0编辑  收藏  举报