Java 上机实践4(类与对象)

(大家好,今天分享的是Java的相关知识,大家可以在评论区进行互动答疑哦~加油!💕)

目录

Plug:程序实现

方法一(记事本)

方法二(IDEA)

实验一:机动车

一、实验目的

二、实验要求

三、程序代码

四、实验结果

实验二:猜数字游戏

一、实验目的

二、实验要求

三、程序代码

四、实验结果


Plug:程序实现

方法一(记事本)

  1. 新建一个记事本
  2. 输入代码
  3. 另存文件
  4. 更改文件名,名字为public后的名字+.java(Hello.java)
  5. 更改保存类型,选择所有文件
  6. 选择编码格式,一般选择ANSI 或 UTF-8(在编译时需加上固定格式-encoding utf-8)(这里我们选择UTF-8)

方法二(IDEA)

  1. 新建java文件

  2. 输入代码

  3. 编译运行

(相较简便一些)


实验一:机动车

一、实验目的

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

二、实验要求

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

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

  2. 在主类User的main( )方法中用Vehicle类创建对像,并让该对象调用方法设置功率,演示加速和减速功能。 请按下列程序模板要求,将【代码】替换为Java程序代码。

|-------------------------------------------------------------------------------------------|
| Vehicle |
| speed:double power:int |
| speedUp(int):void speedDown(int):void getSpeed():double setPower(int):void getPower():int |

三、程序代码

Vehicle.java

java 复制代码
  public class Vehicle {
    double speed;//【代码1】声明double型变量speed,刻画速度
    int power;//【代码2】声明int型变量power,刻画功率
    void speedUp(int s) {      
       this.speed=s +this.speed;//【代码3】将参数s的值与成员变量speed的和赋值给成员变量speed
    } 
    void speedDown(int d) {   
       this.speed=this.speed-d;//【代码4】将成员变量speed与参数d的差赋值给成员变量speed
    } 
    void setPower(int p) {
       this.power=p;//【代码5】将参数p的值赋值给成员变量power
    }
    int getPower() {
        return this.power; //【代码6】返回成员变量power的值
    }
    double getSpeed() {
       return speed;
    }
}

User.java

java 复制代码
public class User {
   public static void main(String args[]) {
      Vehicle car1,car2;    
      car1=new Vehicle();//【代码7】使用new 运算符和默认的构造方法创建对象car1
      car2 = new Vehicle(); //【代码8】使用new 运算符和默认的构造方法创建对象car2
      car1.setPower(128);   
      car2.setPower(76);
      System.out.println("car1的功率是:"+car1.getPower());
      System.out.println("car2的功率是:"+car2.getPower());
      car1.speedUp(80);//【代码9】car1调用speedUp方法将自己的speed的值增加80
      car2.speedUp(100);//【代码10】car2调用speedUp方法将自己的speed的值增加100
      System.out.println("car1目前的速度:"+car1.getSpeed());
      System.out.println("car2目前的速度:"+car2.getSpeed());
      car1.speedDown(10);
      car2.speedDown(20);
      System.out.println("car1目前的速度:"+car1.getSpeed());
      System.out.println("car2目前的速度:"+car2.getSpeed());
   }
}

四、实验 结果


实验二:猜数字游戏

一、实验目的

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

二、实验要求

创建以学号命名的文件夹,编写一个Java程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,通过调用一个方法将某台电视的引用传递给自己的电视成员。具体要求如下:

(1)有TV.java、Family,java 和 MainClass.java3个源文件,其中 TV.java 中的 TV 类负责创建"电视"对象,Family.java 中的Family 类负责创建"家庭"对象,MainClass.java是主类。

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

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

|-----------------------------------------------------|---------|----------------------------------------------------------|
| Family | ------→ | TV |
| homeTV:TV | | channel:int |
| buyTV(TV):void remoteControl(int):void seeTV():void | | setChannel(int):void getChannel():int showProgram():void |

三、程序代码

TV.java

java 复制代码
public class TV { 
    int channel;   //电视频道
    void setChannel(int m) {
       if(m>=1){
          channel=m;
       }
    } 
    int getChannel(){
       return channel;
    }
    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;
          default : System.out.println("不能收看"+channel+"频道");
       } 
    }
}

Family.java

java 复制代码
public class Family { 
    TV homeTV;
    void buyTV(TV tv) {
       homeTV = tv//【代码1】将参数tv赋值给homeTV
    }
    void remoteControl(int m) {
       homeTV.setChannel(m);  
    }
    void seeTV() {
       homeTV.showProgram();  //homeTV调用showProgram()方法
    }
}

MainClass.java

java 复制代码
public class MainClass {  
   public static void main(String args[]) {
       TV haierTV = new TV(); 
       haierTV.setChannel(5);//【代码2】haierTV调用setChannel(int m),并向参数m传递5
       System.out.println("haierTV的频道是"+haierTV.getChannel());
       Family zhangSanFamily = new Family();
       zhangSanFamily.buyTV(haierTV);//【代码3】zhangSanFamily调用void buyTV(TV tv)方法,并将haierTV传递给参数TV
       System.out.println("zhangSanFamily开始看电视节目");
       zhangSanFamily.seeTV();
       int m=2; 
       System.out.println("hangSanFamily将电视更换到"+m+"频道");
       zhangSanFamily.remoteControl(m);
       System.out.println("haierTV的频道是"+haierTV.getChannel());
       System.out.println("hangSanFamily再看电视节目");
       zhangSanFamily.seeTV();       
    }
}

四、实验 结果


(今日分享暂时到此为止啦!为不断努力的自己鼓鼓掌吧🥳。今日文案分享:最好的升华是沉淀自己。)

相关推荐
程序员夏洛1 小时前
VMware Workstation Pro 卸载失败:安装向导提前结束、错误 1603 的排查与解决
java
User_芊芊君子1 小时前
【JavaEE初阶 - 网络原理】网络分几层?从自定义协议聊到 DNS
java·网络·java-ee
白帽攻防录8 小时前
SRC 挖洞:PostScript 打印机驱动双 RCE,打印服务器怎么变成内网跳板
开发语言·网络安全·php·内网安全
聚美智数8 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
十年Java程序媛8 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
我是人✓8 小时前
SpringBoot静态资源映射揭秘
java·spring boot·后端
2603_965148119 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
土豆.exe9 小时前
nf_tables 的 verdict 被读了两次:一个十年未闭合的位域错配
java·数据库·网络安全·缓存
生态学者9 小时前
Global Change Biology | 森林越“步调一致”,反而越怕干旱?树木生长与叶片活动的同步之谜
大数据·人工智能·算法·r语言·微信公众平台
xixiaoyunya9 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php