实验 1 机动车

实验目的

本实验的目的是让学生使用类来封装对象的属性和功能。

实验要求

编写一个 Java 应用程序,该程序中有两个类: Vehicle(用于刻画机动车)和 User(主类)。具体要求如下:

Vehicle 类有一个 double 类型的变量 speed,用于刻画机动车的速度,一个 int 型变量 power,用于刻画机动车的功率。类中定义了 speedUp(int s)方法,体现机动车有减速功能;定义了 speedDown()方法,体现机动车有减速功能; 定义了 setPower(int p)方法,用于设置机动车的功率; 定义了getPower()方法,用于获取机动车的功率。

机动车的 UML图如图所示。

在主类 User 的 main()方法中用 Vehicle 类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。

实验代码

public class 机动车01 {public static void main(String[] args) {Vehicle a = new Vehicle(60.0,100);a.speedDown(70);a.speedDown(20);a.speedUp(20);}}class Vehicle{private double speed;private int power;public void speedUp(int n){speed += n;System.out.println("加速后机动车速度为" + speed);}public void speedDown(int n){if(n > speed){System.out.println("参数错误!");}else {speed -= n;System.out.println("减速后机动车速度为" + speed);}}public Vehicle() {}public Vehicle(double speed, int power) {this.speed = speed;this.power = power;System.out.println("机动车速度为:" + speed + "机动车功率为:" + power);}public double getSpeed() {return speed;}public void setSpeed(double speed) {this.speed = speed;}public int getPower() {return power;}public void setPower(int power) {this.power = power;}
}

运行截图

实验 2 家中的电视

实验目的

本实验的目的是让学生掌握对象的组合以及参数传递。

实验要求

编写一个 Java 应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即
通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下。

有三个源文件: TV.java、 Familiy.java 和 MainClass.java,其中 TV.java 中的 TV 类负
责创建“电视”对象, Family.java 中的 Family 类负责创建“家庭”对象, MainClass.java
是主类。

在主类的 main()方法中首先使用 TV 类创建一个对象 haierTV,然后使用 Familiy 类
再创建一个对象 zhangSanFamily,并将先前 TV 类的实例 haierTV 的引用传递给zhangSanFamily 对象的成员变量 homeTV。

Family 类组合 TV 类的实例的 UML 图如图 4.4 所示。

程序效果示例

程序运行效果如图 4.5 所示。

实验代码


Familiy.java

package 家中的电视02;public class Familiy {private TV homeTV;public void buyTV(TV a){homeTV = a;}public void remoteControl(int a){System.out.println("将电视更换到" + a + "频道");homeTV.setChannel(a);}public void seeTV(){System.out.println("在看电视节目");homeTV.showProgram();}
}

TV.java

package 家中的电视02;public class TV {private int channel;public void showProgram(){switch (channel){case 1:System.out.println("动画频道");break;case 2:System.out.println("经济频道");break;case 3:System.out.println("少儿频道");break;case 4:System.out.println("电影频道");break;case 5:System.out.println("体育频道");break;}}public TV() {}public TV(int channel) {this.channel = channel;}public int getChannel() {return channel;}public void setChannel(int channel) {this.channel = channel;}
}

MainClass.java

package 家中的电视02;public class MainClass {public static void main(String[] args) {TV haierTV =new TV(5);Familiy zhangSanFamily = new Familiy();zhangSanFamily.buyTV(haierTV);System.out.println("haierTV的频道是" + haierTV.getChannel());System.out.println("zhangSanFamily开始看电视节目");haierTV.showProgram();System.out.print("zhangSanFamily");zhangSanFamily.remoteControl(2);System.out.println("haierTV的频道是" + haierTV.getChannel());System.out.print("zhangSanFamily");zhangSanFamily.seeTV();}}

运行截图

实验 3 共饮同井水

实验目的

本实验的目的是让学生掌握类变量与实例变量,以及类
方法与实例方法的区别。

实验要求

编写程序模拟两个村庄共用同一口井水。编写一个 Village 类,该类有一个静态的 int 型
成员变量 waterAmount,用于模拟井水的水量。在主类 Land 的 main()方法中创建两个村庄,
一个村庄改变了 waterAmount 的值,另一个村庄查看 waterAmount 的值。

实验代码

public class 共饮同井水03 {public static void main(String[] args) {Village v1 = new Village(100);Village v2 = new Village();System.out.println("最初的水量" + v1.getWaterAmount());//v1用掉20的水,还剩下80v1.setWaterAmount(80);//v2查看剩余水量System.out.println("剩下的水量" + v2.getWaterAmount());}
}class Village{private static int waterAmount;public Village() {}public Village(int waterAmount) {this.waterAmount = waterAmount;}public int getWaterAmount() {return waterAmount;}public void setWaterAmount(int waterAmount) {this.waterAmount = waterAmount;}
}

运行截图

实验 4 求方程的根

实验目的

本实验的目的是让学生掌握使用 package 和 import 语句。

实验要求

按照实验要求使用 package 语句将方程的属性即计算根的方法封装在一个有包名的类中,包名是 tom.jiafei,类的名字是 SquareEquation。编写一个 SunRise 的主类,该主类使用
import 语句引入 tom.jiafei 包中的 SquareEquation 类。

实验代码


SquareEquation

package 求方程的根04.tom.jiafei;import java.util.Scanner;public class SquareEquation {public static void function (double a,double b,double c){double x1=(-b+Math.sqrt(b*b-4*a*c))*1/(2*a);double x2=(-b-Math.sqrt(b*b-4*a*c))*1/(2*a);System.out.println("方程根为"+x1);System.out.println("方程根为"+x2);}
}

SunRise

package 求方程的根04;import 求方程的根04.tom.jiafei.SquareEquation;import java.util.Scanner;public class SunRise {public static void main(String[] args) {double a,b,c;System.out.println("请分别输入一元二次方程的a,b,c值");Scanner input=new Scanner(System.in);boolean T = true;while(T){System.out.println("输入a:");a=input.nextDouble();System.out.println("输入b:");b=input.nextDouble();System.out.println("输入c:");c=input.nextDouble();if(b*b-4*a*c<0) {System.out.println("该方程无解,请重新输入");}else{SquareEquation.function(a,b,c);T = false;}}}
}

运行截图

Java 2实用教程(第5版)实验指导与习题解答 第4章-类与对象相关推荐

  1. java2实用教程第四版实验指导_Java2实用教程(第4版)实验指导与习题解答_IT168文库(精)...

    Exception in thread "main "java.lang.NoClassFondError 出现该错误的原因是没有设置好系统变量ClassPath ,可参见教材1. ...

  2. java红牛农场答案_Java面向对象程序设计实验指导与习题解答(21世纪高等学校计算机专业实用规划教材)...

    导语 <Java面向对象程序设计实验指导与习题解答>是<Java面向对象程序设计>(作者耿祥义,清华大学出版社出版,2010)的配套实验指导和习题解答,目的是通过一系列实验练习 ...

  3. java程序设计实验指导与习题解答_清华大学出版社-图书详情-《Java程序设计基础(第6版)实验指导与习题解答》...

    前言 本书是清华大学出版社出版的<Java程序设计基础(第6版)>一书的配套用书.全书共分为两部分: 第一部分是实验指导: 第二部分是主教材<Java程序设计基础(第6版)>的 ...

  4. java红牛农场答案_Java面向对象程序设计实验指导与习题解答

    第1章 java入门 实验1一个简单的应用程序 实验2教室.教师和学生 实验答案 第2章 基本数据类型 实验1输出特殊偏旁的汉字 实验2输入.输出学生的基本信息 实验3超大整数的加法 实验答案 第3章 ...

  5. c语言火车作直线匀加速运动,C语言程序设计教程实验指导与习题解答.doc

    C语言程序设计教程实验指导与习题解答 第2章 基本的程序语句习题解答 一.填空题 [题2.1] [题2.2] a [题2.3] 字母 下线 [题2.4] [题2.5]0 ② 4 [题2.6]0 ② 3 ...

  6. java2实用教程实验指导与习题解答第四版答案_java2实用教程实验指导与习题解答...

    java2实用教程实验指导与习题解答 [2021-02-18 22:23:51]  简介:  <JAVA2实用教程实验指导与习题解答>是清华大学出版社出版的关于Java操作技术的一本书. ...

  7. Java 2实用教程(第三版)实验指导与习题解答and实验模版代码及答案 (二)

    实验2 字体对话框 1.答案: [代码1]:setModal(true); [代码2]:setVisible(false); [代码3]:setVisible(false); [代码4]:new Fo ...

  8. java程序设计基础(第3版)实验指导_清华大学出版社-图书详情-《Java程序设计基础(第5版)实验指导与习题解答》...

    本书是清华大学出版社出版的<Java程序设计基础(第5版)>的配套用书.全书共分为两部分,第一部分是上机实验指导,第二部分是主教材<Java程序设计基础(第5版)>中的习题解答 ...

  9. java程序设计实用教程第4版_Java程序设计实用教程(第4版)

    第1章 Java概述 1.1 了解Java 1.1.1 Java的诞生和发展 1.1.2 Java的特点 1.1.3 Java核心技术 1.1.4 Application应用 1.2 JDK 1.2. ...

  10. JAVA大学实用教程(第四版)课后习题三、四章答案(自整理)

    第三章 1.下列System.out.printf输出的结果是什么? int a=100, x,y; x=++a; y=a-- System.out.printf("%d, %d,%d&qu ...

最新文章

  1. python是用c写的吗-Python是编写人工智能最佳的编程语言吗?
  2. 成轴对称的两组图片能被分成两类吗?
  3. jenkins+Docker+springcloud微服务持续集成
  4. 机器学习:利用核函数进行非线性分类
  5. python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)
  6. 第9章matlab符号计算答案,第9章 MATLAB符号计算_MATELAB课程设计_ppt_大学课件预览_高等教育资讯网...
  7. 关于 QImage::Format_Mono
  8. Pycharm快捷键及常用设置【建议收藏】
  9. [转载] Python学习(五)Numpy通用函数汇总
  10. 《深度学习Python实践》第12章——审查分类算法
  11. 在FuchsiaOS,AI助手和软件优化上
  12. x86汇编_间接寻址-间接操作数_笔记_11
  13. Exception loading sessions from persistent storage+ClassNotFoundException
  14. Invalid bound statement (not found): com.xingyu.demo.mapper.UserMapper.update错误
  15. elasticsearch+logstash+kibana+filebeat+kafka
  16. pytorch中实现Balanced Cross-Entropy
  17. 电脑插上U盘,无线鼠标无法使用问题解决
  18. UEFI Drivers UEFI Driver Model
  19. 国产android系统,最干净的国产安卓7.0系统,体验还不错
  20. 思迈特软件Smartbi:传统BI被“革命”,AI是BI技术未来的发展趋势

热门文章

  1. 抖音小程序是什么_如何开发抖音小程序
  2. 抽奖游戏 js php,jQuery实现简单的抽奖游戏技术分享
  3. 二分类图片标签从0-1改为0-255——将图片位深度从1改为8
  4. 冰点还原8.57 官方中文版下载
  5. Python——循环遍历多个列表实现字符的组合拼接
  6. python 端口扫描_使用 python-nmap 进行端口扫描
  7. redis集群scan_Redis中的Scan命令的使用:查询大数据量
  8. 技术岗网上测评-智力题
  9. 外接圆、内切圆半径公式及相应关系知识点总结
  10. DynamoDB 如何做in查询