实验三 类与对象(一)

一、 实验目的

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\n",c1.PI);

Circle c=new Circle(3);

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

c1.setPI(3.1415926);

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

System.out.printf("Area of the Circle is : %8.4f\n",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;

}

四、 实验结果

五、 实验小结

Java第三次实验要求的更多相关文章

  1. 20155210 潘滢昊 Java第三次实验

    Java第三次实验 实验内容 在IDEA中使用工具(Code->Reformate Code)把代码重新格式化 在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二 ...

  2. 南京邮电大学java第三次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  3. Java第三次实验敏捷开发与XP实验

    实验三-1 1.实验要求: 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考 http: ...

  4. java第三次实验报告

    北京电子科技学院(BESTI) 实验报告 课程: Java程序设计 班级: 1352 姓名: 池彬宁 学号: 20135212 成绩: 指导教师: 娄嘉鹏 实验日期: 2015.6.3 实验密级: 无 ...

  5. java第三次实验

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计   班级:1352       姓名:陈实  学号:20135224 成绩:             指导 ...

  6. 20135208 JAVA第三次实验

    课程:Java实验   班级:201352     姓名:贺邦  学号:20135208 成绩:             指导教师:娄佳鹏   实验日期:15.06.03 实验密级:         ...

  7. 20165210 Java第三次实验报告

    20165210 实验二 敏捷开发与XP实践 一.敏捷开发与XP实践-1 实验要求: http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替 ...

  8. 20145320《Java程序设计》第三次实验报告

    20145320<Java程序设计>第三次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.22 15: ...

  9. 实验三《Java面向对象程序设计》实验报告

    20162308 实验三<Java面向对象程序设计>实验报告 实验内容 XP基础 XP核心实践 IDEA工具学习 密码学算法基础 实验步骤 (一)Refactor/Reformat使用 p ...

随机推荐

  1. java基础语法中容易出错的细节

    1 java中的数字默认类型为int **容易出现类型转换错误 long 定义的数字后面必须有 “l” “L” float 定义的数字后面必须有 “f” “F” java中比int表述范围大的数,不会 ...

  2. 转:模式窗口showModalDialog的用法总结

    模式窗口showModalDialog的用法总结   最近几天一直在处理模式窗口的问题,索性写了这篇总结,以供参考: 1.打开窗口:var handle = window.showModalDialo ...

  3. kNN的维数灾难与PCA降维

    主成分分析 PCA 协方差矩阵 假设我们有 \[ X = \begin{pmatrix}X_1\\X_2\\\vdots\\X_m\end{pmatrix}\in\mathbb{R}^{m\times ...

  4. [转]netstat -tnl 列出监听中的连接,查看端口是否开启

    任何网络服务的后台进程都会打开一个端口,用于监听接入的请求. 这些正在监听的套接字也和连接的套接字一样,也能被 netstat 列出来. 参数 tnl, 现在我们可以看到处于监听状态的 TCP 端口和 ...

  5. Spring中的注解 @Qualifier

    在使用Spring框架中@Autowired标签时默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个.当找不到一个匹配的 Bean ...

  6. php hash防止表单

    <?php /** * Created by PhpStorm. * User: brady * Desc: * Date: 2017/7/12 * Time: 15:01 */class te ...

  7. How to use MJRefresh

    Installation with CocoaPods:pod 'MJRefresh' Manual import: Drag All files in the MJRefresh folder to ...

  8. HDU——1596find the safest road(邻接矩阵+优先队列SPFA)

    find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  9. 洛谷P4175 - [CTSC2008]网络管理

    Portal Description 给出一棵\(n(n\leq8\times10^4)\)个点的带点权的树,进行\(m(m\leq8\times10^4)\)次操作,操作有两种: 修改一个点的点权. ...

  10. 刷题总结——影魔(HNOI2017 BZOJ4826 线段树+扫描线)

    题目: Description 影魔,奈文摩尔,据说有着一个诗人的灵魂.事实上,他吞噬的诗人灵魂早已成千上万.千百年来,他收集了各式各样 的灵魂,包括诗人.牧师.帝王.乞丐.奴隶.罪人,当然,还有英雄 ...