• Java第三次实验要求


    实验三 类与对象(一)

    一、 实验目的

    1、 掌握类与对象的基本概念;

    2、 掌握类的声明、创建与用法;

    3、 掌握类的构造方法的定义与用法

    4、 掌握类的成员变量、成员方法的定义与用法;

    5、 理解类变量、类方法与实例变量、实例方法的差别;

    6、 理解Java中方法重载的实现方式。

    二、 实验要求

    1、 依据实验步骤中提出的要求。使用记事本编写对应的Java程序。

    2、 使用JDK中提供的javac以及java命令编译、执行自己所编写的Java程序。

    3、 依据编译与执行过程中所获得的错误信息改动程序直至获得正确的结果;

    4、 记录实验中遇到的各类问题并以及解决的方法。

    三、 实验步骤

    1、 类的声明、创建与使用

    (1) 採用记事本编写下面所给的Java程序并保存为Circle.java; 

    final static double PI;

    class Circle{

    PI=3.14;

    double r;

    double circumference(){

    return 2*PI*r;

    }

    double area(){

    return PI*r*r;

    }}

    (2) 改动当中的错误,使其能够正确编译;

    (3) 採用记事本编写下面所给的Java程序并保存为CircleTest.java;

    class CircleTest{

    public static void main(String args[]){

    Circle c=new Circle();

    System.out.printf("Area of the Circle is : %8.4f",c.area());

    }

    (4) 执行CircleTest查看结果。

    (5) Java中变量都必须先赋值后使用,否则会出现编译错误(该变量未初始化),那么成员变量是否必须设定初值?

    2、 构造方法

    (1) Circle类没有声明构造方法。那么语句Circle c=new Circle();中调用的构造方法Circle()会不会出错?为什么?

    (2) 在Circle类中加入下面构造方法:

    Circle(double radius){

    r= radius;

    }

    (3) 又一次编译Circle.java之后(临时不要又一次编译CircleTest.Java),执行CircleTest将会出现什么错误?为什么?怎样改动?

    3、 类变量与类方法

    (1) 在CircleTest类的main方法中加入下面代码:

    Circle c1=null;

    System.out.printf("PI is : %8.4f",c1.PI);  //Circle.PI

    (2) 改动后编译执行是否会出错?为什么?

    (3) 在Circle类中加入下面代码:

    static void setPI(double pi){

    PI=pi;

    this.r=3;

    }

    (4) 又一次编译Circle类会出现什么错误?为什么?怎样改动?

    (5) 改动CircleTest类的main方法为:

    Circle c1=null;

    System.out.printf("PI is : %8.4f ",c1.PI);  

    Circle c=new Circle(3);

    System.out.printf("Area of the Circle is : %8.4f ",c.area());

    c1.setPI(3.1415926);

    System.out.printf("PI is : %8.4f ",c1.PI);  

    System.out.printf("Area of the Circle is : %8.4f ",c.area());

    (6) 上述代码将输出什么结果?通过阐述其执行过程说明出现该输出结果的原因。

    4、 方法重载

    (1) 採用记事本编写下面所给的Java程序并保存为Circle.java;

    class SomeThing{

    int x;

    int y;

    void move(int x,int y){

    this.x=x;

    this.y=y;

    }

    (2) 在SomeThingl类中尝试分别加入下面代码,以验证哪些形式的重载有效,并说明其原因

    boolean move(int x,int y){

    boolean flag=(this.x==x)&&(this.y==y);

    this.x=x;

    this.y=y;

    return flag;

    }

    void move(int width,int height){

    x+=width;

    y+=height;

    }

    void move(int distance,boolean direction){

    if (direction)

    x+=distance;

    else

    y+=distance;

    }

      

    四、 实验结果

    五、 实验小结

  • 相关阅读:
    24.最优布线问题(kruskal算法)
    24.最优布线问题(kruskal算法)
    Algs4-1.4.11为StaticSETofInts添加一个实列方法howMany()
    Algs4-1.4.9预测程序运行时间
    Algs4-1.4.10二分查找找出元素所在的最小索引
    Algs4-1.4.7统计算术运算与比较次数
    Algs4-1.4.8计算输入文件中相等的整数对的数量
    Algs4-1.4.6给出以下代码段的运行时间的增长数量级
    Algs4- 1.4.4参照表1.4.4为TwoSum建立一和类似的表格
    Algs4-1.4.2修改ThreeSum防止两个int值相加可能溢出
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7227956.html
Copyright © 2020-2023  润新知