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