实验三 类与对象(一)

一、 实验目的

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. uiautomatorviewer打不开

    uiautomatorviewer打不开: 因为之前我下载的jdk版本为10,后来将jdk版本改为8之后就可以打开了.

  2. [python学习篇][书籍学习][python standrad library][内建函数]之[all,any,basestring,isinstance,bin,bool,@classmethod,@staticmethod,cmp,enumerate

    Python 解释器内置了一些函数,它们总是可用的.这里将它们按字母表顺序列出.     Built-in Functions     abs() divmod() input() open() st ...

  3. struts2和spring的两种整合方式

    首先,来看看如何让Spring 来管理Action. 在struts.xml中加入 <constant name="struts.objectFactory" value=& ...

  4. CSS:IE,Chrome,Firefox兼容性和CSS Hack(转载)

    原作者:微米博客 以前写过一篇关于CSS hack的文章,但近期回头看了看发现理解的不够深刻,总结的也不凝练,于是今天重新测试从新写一篇.常用的CSS hack如下(笔者只对IE&FF& ...

  5. Team Contests - Warmup(2016年多校热身赛,2016年黑龙江省赛)

    Team Contests - Warmup A 题意:... 思路:不会 代码:... 随机 B 题意:给n个点,问是否有一个圆上有最少n/3个点 思路:随机大法好. 代码:... 递推 C 题意: ...

  6. 视频流传输协议RTP/RTCP/RTSP/HTTP的区别 (转)

    用一句简单的话总结:RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中 ...

  7. 转 PHP 使用 Redis

    PHP 使用 Redis PHP 使用 Redis 安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP ...

  8. 标准C程序设计七---33

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  9. iOS11及Xcode9适配问题汇总

    UIScrollView and UITableView的新特性 ScrollView 如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传 ...

  10. Codeforces 875C National Property(拓扑排序)

    题目链接  National Property 给定n个单词,字符集为m 现在我们可以把其中某些字母变成大写的.大写字母字典序大于小写字母. 问是否存在一种方案使得给定的n个单词字典序不下降. 首先判 ...