上机实验-3 -1 Java面向对象编程(一)

本文介绍了Java编程中类的结构,包括如何创建Course类,其成员变量如课程编号、名称和学分,以及构造方法和方法的实现。还涉及了Vehicle类和User类的创建,展示如何封装对象属性和功能,以及方法的重载应用。
摘要由CSDN通过智能技术生成

实验1 类的结构

一、实验目的

1、掌握类的结构,能够创建类

2、掌握对象的创建

3、掌握成员变量、成员方法和构造方法的创建及调用

二、实验内容

1、编写一个课程类Course,包括课程编号,课程名称和学分信息;设计两个成员方法,一个用来修改课程的学分信息,一个方法输出课程的所有信息;给出该类的构造方法,包括一个无参构造方法和一个三个参数的构造方法。并编写测试类通过不同的构造方法创建该类对象和调用该类方法。

public class Course {
  private String courseId;
  private String courseName;
  private int credit;
    public Course() {
    }
    public Course(String courseId,String courseName,int credit) {
    	this.courseId=courseId;
    	this.courseName=courseName;
    	this.credit=credit;
    }
    public void editcredit() {
    	if(credit<=4) {
    		System.out.println("修改后的学分是:"+credit);	
    	}
    	else {
    		while(credit>4) {
    			credit--;
    		}
    		System.out.println("修改后的学分是:"+credit);
    	}    	
    }
    public String outcourseInfo(){
    	return "课程编号:"+courseId+"\n课程名称:"+courseName+"\n学分信息:"+credit;
    }
    public static void main(String[] args) {
    	Course test=new Course("126316","Java程序设计",5);
    	test.editcredit();
    	System.out.println(test.outcourseInfo());
    }
}

实验2 机动车

一、实验目的

通过实验让学生使用类来封装对象的属性和功能

二、实验内容

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

1、Vehicle类有一个double类型的变量speed,用于描述机动车的速度;一个int类型的变量power,用于描述机动车的功率。

2、Vehicle类定义了一个speedUp(int s)方法,体现机动车有加速功能;定义了一个speedDown(int d)方法,体现机动车有减速功能;定义了一个setPower(int p)方法,用于设置机动车的功率;定义了一个getPower()方法,用于获取机动车的功率。

3、机动车的UML图如下

Vehicle

speed:double

power:int

speedUp(int):void

speedDown(int):void

getSpeed():double

setPower(int):void

getPower():int

4、实验完成后的改进

①改进speedUp()方法,使得Vehicle类的对象在加速时不能将速度speed值超过200;

②改进speedDown()方法,使得Vehicle类的对象在减速时不能将速度speed值小于0;

③增加一个刹车方法void brake(),使得Vehicle类的对象调用它会将speed值变成0。

Vehicle

public class Vehicle {
	double speed;//声明double型变量speed,刻画速度
    int power;//声明int型变量power,刻画功率
    void speedUp(int s) {      
       speed=speed+s; //将参数s的值与成员变量speed的和赋值给成员变量speed
       if(speed>200) {
    	   speed=200;
    	   return;
       }
    } 
    void speedDown(int d) {   
      speed=speed-d; //将成员变量speed与参数d的差赋值给成员变量speed
      if(speed<0) {
    	  speed=0;
    	  return;
      }
    } 
    void setPower(int p) {
       power=p;    //将参数p的值赋值给成员变量power
    }
    int getPower() {
       return power; //返回成员变量power的值
    }
    double getSpeed() {
       return speed;
    }
    double brake() {
    	speed=0;
    	return speed;
    }
}

User

public class User {
	public static void main(String args[]) {
	      Vehicle car1,car2;    
	      car1=new Vehicle(); //使用new 运算符和默认的构造方法创建对象car1
	      car2=new Vehicle();//使用new 运算符和默认的构造方法创建对象car2
	      car1.setPower(128);   
	      car2.setPower(76);
	      System.out.println("car1的功率是:"+car1.getPower());
	      System.out.println("car2的功率是:"+car2.getPower());
	      car1.speedUp(80);  //car1调用speedUp方法将自己的speed的值增加80
	      car2.speedUp(80); //car2调用speedUp方法将自己的speed的值增加80
	      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());
	   }
}

实验3 方法及方法重载应用

一、实验目的

1、掌握类中的方法的定义

2、掌握重载方法的定义及使用

二、实验内容

  创建一个程序,根据yoghurt选择及输入的参数,调用重载方法,分别计圆的面积、圆柱体体积和圆柱体表面积。

1、创建一个area方法,接收一个double类型的参数,返回double类型圆的面积

2、创建area方法的重载方法,接收两个float类型的参数,返回double类型的圆柱体体积

3、创建area方法的重载方法,接收两个double类型的参数,返回一个double类型的圆柱体表面积。

import java.util.Scanner;
public class yoghurt {
	public static double area(double r) {
		return r*r*Math.PI;
	}
	public static double area(float r,float h) {
		return r*r*h*Math.PI;
	}
	public static double area(double r,double h) {
		return 2*r*r*Math.PI+2*r*h*Math.PI;
	}
    public static void main(String args[]) {
    	Scanner xz=new Scanner(System.in);
    	System.out.println("圆的面积--1  圆柱体积--2 圆柱表面积--3");
    	int n=xz.nextInt();
    	switch(n) {
    	case 1:
    		System.out.println("请输入圆的半径r1");
    		double r1=xz.nextDouble();
    		double s1=area(r1);
    		System.out.println("圆的面积为:"+s1);
    		break;
    	case 2:
    		System.out.println("请输入圆柱的半径r2和高h1");
    		float r2=xz.nextFloat();
    		float h1=xz.nextFloat();
    		double v=area(r2,h1);
    		System.out.println("圆柱的体积为:"+v);
    		break;
    	case 3:
    		System.out.println("请输入圆柱的半径r3和高h2");
    		double r3=xz.nextDouble();
    		double h2=xz.nextDouble();
    		double s2=area(r3,h2);
    		System.out.println("圆柱的表面面积为:"+s2);
    		break;
    	}
    	xz.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值