实验一 Java面向对象基础 实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一Java面向对象基础、数组实验报告
一、实验目的
1. 理解面向对象编程基本思想
2. 了解类的封装方法,以及如何创建类和对象
3. 掌握面向对象程序设计的方法,了解类的继承性和多态性的作用
4. 掌握Java 中的数组定义、引用
二、实验要求
编写程序时要注意体现面向对象思想,体会不同访问控制符的作用。
1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。(要求:程序要有构造方法重载;要能体现类的多态性)
2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。
3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。
三、实验内容及结果
1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。
public class Vehicle {
private String color;
public Vehicle() {
this("black");
}
public Vehicle(String color) {
this.color = color;
}
public String toString() {
return "this is a " + this.color + " vehicle";
}
}
class Bus extends Vehicle {
private int passagerNumber;
public Bus() {
this(50, "black");
}
public Bus(int number) {
this(number, "black");
}
public Bus(int number, String color) {
super(color);
this.passagerNumber = number;
}
public String toString() {
return super.toString().replace("vehicle", "bus")
+ " , max passager number: " + this.passagerNumber;
}
}
class Boat extends Vehicle {
private String owner;
public Boat() {
super("black");
this.owner = "nobody";
}
public Boat(String owner) {
super("black");
this.owner = owner;
}
public Boat(String owner, String color) {
super(color);
this.owner = owner;
}
public String toString() {
return super.toString().replace("vehicle", "boat")+ " own by "
+ this.owner;
}
}
2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。import java.util.Random;
public class Experiment02 {
public static void main(String[] args) {
Random r = new Random(System.currentTimeMillis());
int[] nums = new int[10];
for (int i = 0; i < 10; i++) {
nums[i] = r.nextInt(100);
System.out.print((i != 0 ? "," : "") + nums[i]);
}
System.out.println();
System.out.println("平均数:" + getAverage(nums));
System.out.println("奇数和:" + evenTotal(nums));
}
public static int evenTotal(int[] numbers) {
int sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += (numbers[i] % 2 != 0 ? numbers[i] : 0); }
return sum;
}
public static double getAverage(int[] numbers) {
int sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
return sum * 1.0 / numbers.length;
}
}
运行结果:(每次运行结果不一样)
3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。import java.util.Random;
public class Experiment03 {
public static void main(String[] args) {
Random r = new Random(System.currentTimeMillis());
int[] nums = new int[10];
int[] count = new int[10];
for (int i = 0; i < 10; i++) {
nums[i] = r.nextInt(10);
count[nums[i]]++;
}
for (int i = 0; i < 10; i++) {
System.out.println("数字" + i + "的出现次数为:" + count[i]);
}
}
}
运行结果(每次运行结果不一样):