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();       
    }
}

四、实验 结果


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

相关推荐
杨充6 分钟前
13.观察者模式设计思想
java·redis·观察者模式
Lizhihao_8 分钟前
JAVA-队列
java·开发语言
算法歌者11 分钟前
[算法]入门1.矩阵转置
算法
喵叔哟17 分钟前
重构代码之移动字段
java·数据库·重构
喵叔哟17 分钟前
重构代码之取消临时字段
java·前端·重构
fa_lsyk20 分钟前
maven环境搭建
java·maven
林开落L25 分钟前
前缀和算法习题篇(上)
c++·算法·leetcode
远望清一色26 分钟前
基于MATLAB边缘检测博文
开发语言·算法·matlab
tyler_download28 分钟前
手撸 chatgpt 大模型:简述 LLM 的架构,算法和训练流程
算法·chatgpt
何曾参静谧34 分钟前
「Py」Python基础篇 之 Python都可以做哪些自动化?
开发语言·python·自动化