实验一Java面向对象基础实验报告参考模板
- 格式:docx
- 大小:48.16 KB
- 文档页数:4
实验一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. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。
一、实验目的1. 理解面向对象方法的基本概念和原理;2. 掌握面向对象程序设计的基本技能;3. 通过实际编程,提高面向对象编程能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse三、实验内容1. 面向对象方法的基本概念2. 类和对象的创建与使用3. 继承和多态的应用4. 抽象类和接口的使用5. 面向对象程序设计实例四、实验步骤1. 面向对象方法的基本概念面向对象方法是一种编程范式,它将问题域中的对象抽象成类,并通过对象之间的关系来描述问题。
面向对象方法具有以下特点:(1)封装:将数据和操作数据的方法封装在一起,形成一个独立的实体。
(2)继承:允许一个类继承另一个类的属性和方法,实现代码复用。
(3)多态:允许不同类型的对象对同一消息做出不同的响应。
2. 类和对象的创建与使用(1)定义类:使用class关键字定义一个类,包括属性和方法。
(2)创建对象:使用new关键字创建一个类的实例。
(3)访问对象属性和方法:使用点号(.)操作符访问对象的属性和方法。
示例代码:public class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}}Person person = new Person("张三", 20);System.out.println("姓名:" + person.getName());System.out.println("年龄:" + person.getAge());3. 继承和多态的应用(1)继承:使用extends关键字实现类的继承。
一、摘要本次面向对象技术实训以Java编程语言为基础,通过实例分析和实践操作,让学生深入了解面向对象编程的基本概念、原则和方法。
实训过程中,学生掌握了面向对象编程的基本语法、类和对象的设计与实现、继承与多态等核心概念,并通过实际项目开发提高了编程能力。
本文将从实训内容、方法与收获三个方面进行总结。
二、实训内容1. 面向对象基本概念(1)面向对象编程(OOP)的基本概念:封装、继承、多态。
(2)Java编程语言中的面向对象编程特性:类、对象、构造方法、访问控制符等。
2. 类和对象的设计与实现(1)设计一个简单的Java程序,实现学生信息管理系统。
(2)设计并实现学生类、教师类、课程类等实体类,以及相关的方法。
3. 继承与多态(1)使用继承实现学生类和教师类的继承关系。
(2)通过多态实现不同类对同一方法的重写和重载。
4. 实际项目开发(1)设计并实现一个图书管理系统,包括图书类、读者类、借阅类等。
(2)实现图书的借阅、归还、查询等功能。
三、实训方法1. 理论学习:通过阅读教材、参考书籍,了解面向对象编程的基本概念和原理。
2. 实践操作:根据实训内容,动手编写Java程序,实现面向对象编程。
3. 交流与讨论:在实训过程中,与其他同学进行交流与讨论,共同解决遇到的问题。
4. 查阅资料:针对遇到的具体问题,查阅相关资料,提高编程能力。
四、实训收获1. 理论知识:掌握了面向对象编程的基本概念、原则和方法,为后续课程和实际项目开发奠定了基础。
2. 编程能力:通过实际项目开发,提高了编程能力,学会了如何将理论知识应用到实际项目中。
3. 团队协作:在实训过程中,与其他同学进行交流与讨论,提高了团队协作能力。
4. 问题解决能力:在遇到问题时,能够主动查阅资料、请教他人,提高了问题解决能力。
五、总结本次面向对象技术实训使我受益匪浅,不仅加深了对面向对象编程的理解,还提高了编程能力。
在今后的学习和工作中,我会继续努力,将所学知识运用到实际项目中,为我国信息技术领域的发展贡献自己的力量。
一、实验目的1. 理解面向对象设计的基本概念和原则;2. 掌握面向对象设计的常用方法和技术;3. 学会运用面向对象设计方法进行软件系统设计和实现;4. 提高软件设计能力和编程能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Eclipse IDE3. 编程语言:Java三、实验内容本次实验主要围绕面向对象设计进行,包括以下内容:1. 面向对象设计的基本概念和原则;2. 类的设计与实现;3. 继承与多态的应用;4. 设计模式的应用;5. 软件系统设计与实现。
四、实验步骤1. 面向对象设计的基本概念和原则(1)面向对象设计的基本概念:面向对象设计是一种软件开发方法,它将问题域中的对象作为设计的基本单元,以对象为核心进行系统设计。
(2)面向对象设计的基本原则:封装、继承、多态。
2. 类的设计与实现(1)定义类:根据问题域中的对象,定义相应的类。
(2)实现类:为类添加属性和方法,实现类的功能。
3. 继承与多态的应用(1)继承:通过继承,可以复用已有的类的设计和实现,提高代码的复用性。
(2)多态:多态是面向对象设计的一个重要特性,它可以实现代码的灵活性和扩展性。
4. 设计模式的应用(1)单例模式:确保一个类只有一个实例,并提供一个全局访问点。
(2)工厂模式:用于创建对象,而不直接指定对象的具体类型。
(3)观察者模式:当一个对象的状态发生变化时,其他依赖于该对象的对象会得到通知。
5. 软件系统设计与实现(1)需求分析:分析问题域,确定软件系统的功能和性能要求。
(2)系统设计:根据需求分析,设计软件系统的架构和模块。
(3)编码实现:根据系统设计,实现软件系统的功能。
(4)测试与调试:对软件系统进行测试,确保其功能符合预期。
五、实验结果与分析1. 实验结果本次实验完成了面向对象设计的基本概念、类的设计与实现、继承与多态的应用、设计模式的应用以及软件系统设计与实现等内容。
通过实验,掌握了面向对象设计的方法和技术,提高了软件设计能力和编程能力。
实验报告学年第学期任课老师:m=max[i];}}System.out.println("5个人中java成绩最大值是:"+m);}}实验结果分析与总结1、程序运行结果(请提供所完成的各道题运行结果界面截图):2、在实验过程中遇到的问题与解决方法:实验中并未有太多技术上的问题,除了对软件运用的不够熟练造成最初的一些错误,比如,用Jcreator时未编译便运行,一直出错,检查多次后才发现此处与eclipse的不同(上机时没问题,写实验报告用的Jcreator出错了,所以是软件用的不熟记错的缘故。
)而且要先编译Student类才可编译Main。
3、实验过程中的发现与收获,未解决或需进一步解决的问题:实验中的发现便是java其实较C/C++简单许多,很多东西都不要自己多加考虑,但试验还是太少所以会在一些小的细节方面浪费很多时间。
指导老师评阅意见指导老师:年月日填写内容时,可把表格扩大。
附:实验源程序代码//Mainpackage Test;public class Main {public static void main(String[] args) {Main ma=new Main();Student stu1=new Student();stu1.setAge(18);stu1.setJava(86);stu1.setName("aaa");stu1.setNo("001");stu1.setSex("M");int a=stu1.getJava();System.out.println("第一个学生的信息为:\r\n"+"姓名是:"+stu1.getName()+"\r\n"+"年龄是:"+stu1.getAge()+"\r\n"+"性别是:"+stu1.getSex()+"\r\n"+"学号是:"+stu1.getNo()+"\r\n"+"成绩是:"+stu1.getJava()+"\r\n");Student stu2=new Student();stu2.setAge(18);stu2.setJava(90);stu2.setName("bbb");stu2.setNo("011");stu2.setSex("M");int b=stu2.getJava();System.out.println("第二个学生的信息为:\r\n"+"姓名是:"+stu2.getName()+"\r\n"+"年龄是:"+stu2.getAge()+"\r\n"+"性别是:"+stu2.getSex()+"\r\n"+"学号是:"+stu2.getNo()+"\r\n"+"成绩是:"+stu2.getJava()+"\r\n");System.out.println("两个人的java平均成绩为:"+(stu1.getJava()+stu2.getJava())/2);Student stu3=new Student();stu3.setAge(20);stu3.setJava(76);stu3.setName("ccc");stu3.setNo("067");stu3.setSex("F");int c=stu3.getJava();System.out.println("第三个学生的信息为:\r\n"+"姓名是:"+stu3.getName()+"\r\n"+"年龄是:"+stu3.getAge()+"\r\n"+"性别是:"+stu3.getSex()+"\r\n"+"学号是:"+stu3.getNo()+"\r\n"+"成绩是:"+stu3.getJava()+"\r\n");Student stu4=new Student();stu4.setAge(19);stu4.setJava(100);stu4.setName("ddd");stu4.setNo("09091219");stu4.setSex("M");int d=stu4.getJava();System.out.println("第四个学生的信息为:\r\n"+"姓名是:"+stu4.getName()+"\r\n"+"年龄是:"+stu4.getAge()+"\r\n"+"性别是:"+stu4.getSex()+"\r\n"+"学号是:"+stu4.getNo()+"\r\n"+"成绩是:"+stu4.getJava()+"\r\n");Student stu5=new Student();stu5.setAge(22);stu5.setJava(89);stu5.setName("eee");stu5.setNo("097");stu5.setSex("F");int e=stu2.getJava();System.out.println("第五个学生的信息为:\r\n"+"姓名是:"+stu5.getName()+"\r\n"+"年龄是:"+stu5.getAge()+"\r\n"+"性别是:"+stu5.getSex()+"\r\n"+"学号是:"+stu5.getNo()+"\r\n"+"成绩是:"+stu5.getJava()+"\r\n");int max[]={a,b,c,d,e};int m=max[0];for(int i=0;i<5;i++){if(m<max[i]){m=max[i];}}System.out.println("5个人中java成绩最大值是:"+m);}}//Student类package Test;public class Student {private String sNo;private String sName;private String sSex;private int sJava;private int sAge;//set方法public void setJava(int java){sJava=java;;}public void setAge(int age){sAge=age;}public void setNo(String no){sNo=no;}public void setName(String name){ sName=name;}public void setSex(String sex){sSex=sex;}//get方法public int getJava(){return sJava;}public int getAge(){return sAge;}public String getNo(){return sNo;}public String getName(){return sName;}public String getSex(){return sSex;}}。
java面向对象实验报告《Java面向对象实验报告》摘要:本实验报告旨在探讨Java面向对象编程的基本概念和实践方法。
通过实验,我们将学习如何创建类、对象、封装、继承和多态等面向对象的特性,并通过实际代码演示这些概念的应用。
本报告将详细介绍实验过程和结果,并总结所得到的经验和教训。
一、实验目的1. 了解面向对象编程的基本概念和原则2. 掌握Java语言中类、对象、封装、继承和多态的使用方法3. 通过实验加深对面向对象编程的理解和掌握二、实验环境1. Java开发环境:Eclipse/IntelliJ IDEA等2. Java SDK版本:1.8及以上三、实验内容1. 创建一个简单的Java类2. 创建对象并调用对象方法3. 实现类的封装和访问控制4. 实现类的继承和方法重写5. 实现类的多态四、实验步骤1. 创建一个名为Person的Java类,包含姓名和年龄两个私有属性,并提供公有的get和set方法进行访问和修改。
2. 创建一个名为Student的子类,继承Person类,并重写父类的get方法。
3. 创建一个名为Teacher的子类,继承Person类,并重写父类的get方法。
4. 创建一个名为Main的主类,实例化Person、Student和Teacher对象,并调用其方法进行测试。
五、实验结果1. 成功创建了Person、Student和Teacher三个类,并实现了类的封装、继承和多态。
2. 通过测试,验证了类的封装和访问控制的有效性。
3. 通过测试,验证了类的继承和方法重写的有效性。
4. 通过测试,验证了类的多态的有效性。
六、实验总结通过本次实验,我深刻理解了面向对象编程的重要性和优势,掌握了Java语言中面向对象编程的基本概念和实践方法。
在今后的学习和工作中,我将继续加强对面向对象编程的理解和应用,不断提高自己的编程水平。
七、实验感想通过本次实验,我对Java面向对象编程有了更深入的了解,也更加熟练地掌握了面向对象编程的基本概念和实践方法。
一、实验目的1. 理解面向对象设计的核心概念,如封装、继承、多态等。
2. 掌握面向对象设计的方法和步骤。
3. 通过实际案例分析,提高面向对象设计的实践能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse三、实验内容1. 面向对象设计的基本概念2. 类与对象3. 继承与多态4. 实际案例分析四、实验步骤1. 面向对象设计的基本概念(1)定义:面向对象设计(Object-Oriented Design,OOD)是一种以对象为中心的设计方法,通过将现实世界中的实体抽象为对象,以对象及其相互关系来描述系统的结构和行为。
(2)核心概念:a. 封装:将对象的属性(数据)和行为(方法)封装在一起,对外提供接口。
b. 继承:允许一个类继承另一个类的属性和方法,实现代码复用。
c. 多态:允许不同类的对象对同一消息作出响应,实现行为的变化。
2. 类与对象(1)定义:类是具有相同属性和行为的对象的抽象,对象是类的实例。
(2)步骤:a. 定义类:创建一个新的类,定义属性(成员变量)和方法(成员函数)。
b. 创建对象:使用new关键字创建类的实例。
c. 访问对象属性和方法:使用点号(.)操作符访问对象的属性和方法。
3. 继承与多态(1)继承:定义一个新的类(子类)继承自另一个类(父类),子类继承父类的属性和方法。
(2)多态:允许不同类的对象对同一消息作出响应,实现行为的变化。
(3)步骤:a. 定义父类:创建一个父类,定义属性和方法。
b. 定义子类:创建一个子类,继承自父类,并添加新的属性和方法。
c. 实现多态:使用子类对象调用父类方法,实现不同对象对同一消息的不同响应。
4. 实际案例分析(1)案例分析:设计一个简单的图书管理系统。
(2)设计步骤:a. 分析需求:图书管理系统需要管理图书的增删改查等功能。
b. 设计类:设计图书类(Book)、借阅者类(Borrower)和管理员类(Admin)。
实验报告实验项目一Java面向对象特性实验多态性与动态绑定一、实验目的1.掌握多态性在继承中的运用;2.理解动态绑定的含义;3.学会使用抽象类;4.了解成员变量的隐藏。
二、实验内容假设某班级里既有本科生也有研究生,请编写程序统计出全班学生的成绩等级并显示出来。
.三、实验原理Java上溯造型技术、抽象类、继承性、多态性、动态绑定等技术原理。
四、实验环境主CPU 586以上,内存1G以上,操作系统Windows XP,eclipse 。
五、实验步骤1、创建一个Polymorphism.java 项目图 1 创建Polymorphism.java 项目。
2、创建类 Polymorphism。
图 2 创建类 Polymorphism 3、创建抽象类Student图 3 抽象类Student4.创建继承于Student的Undergraduate类图 4 Undergraduate类5. 创建继承于Student的Postgraduate类图 5 创建Postgraduate类所有类如下:图 6 创建所有类后6.在各类中补充代码,并输入相对应的代码可得。
6.1 抽象类Studentabstract class Student {final static int CourseNo = 3;String name;String type;int[] courses;String courseGrade;public Student(String name){ = name;courses = new int[CourseNo];courseGrade="" ; //初始化courseGrade为空串代码1 }public abstract void calculateGrade();public String getName( ){return name;}public String getType( ){return type;//代码2 //返回学生类型}public String getCourseGrade( ){return courseGrade;}public int getCourseScore(int courseNumber){return courses[courseNumber];}public void setName(String name){ = name;}public void setType(String type){this.type = type;}public void setCourseScore(int courseNumber, int courseScore){this.courses[courseNumber]=courseScore;//代码3按课程索引号设置课程成绩}}6.2 创建继承于Student的Undergraduate(本科生)类class Undergraduate extends Student {public Undergraduate(String name ){super(name);type = "本科生";}public void calculateGrade() {int total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total+=courses[i]; // 代码4 // 累加各门课程成绩};average = total / CourseNo;if (average>=80&&average<100) courseGrade = "优秀";else if (average>=70&&average<80) courseGrade = "良好";else if (average>=60&&average<70) courseGrade = "一般";else if (average>=50&&average<60) courseGrade = "及格";else courseGrade = "不及格";}}6.3 创建继承于Student的Postgraduate(研究生)类class Postgraduate extends Student {public Postgraduate(String name){super(name);type = "研究生";}public void calculateGrade(){int total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += courses[i];};average = total / CourseNo;if (average>=90&&average<100) courseGrade = "优秀";else if (average>=80&&average<90) courseGrade = "良好";else if (average>=70&&average<80) courseGrade = "一般";else if (average>=60&&average<70) courseGrade = "及格";else courseGrade = "不及格";}}6.4 创建类 Polymorphismpublic class Polymorphism {public static void main(String[] args) {Student[] students = new Student[5];students[0] = new Undergraduate("陈建平");students[1] = new Undergraduate("鲁向东");students[2] = new Postgraduate("匡晓华");students[3] = new Undergraduate("周丽娜");students[4]=new Postgraduate("梁欣欣"); // 代码5 // 创建姓名为梁欣欣的Postgraduate对象students[4]for (int i=0; i<5 ;i++) {students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for (int i=0; i<5 ;i++) {students[i].calculateGrade();}System.out.println("姓名" + " 类型" +" 成绩");System.out.println("-----------------------");for (int i=0; i<5 ;i++) {System.out.println(students[i].getName( )+" "+students[i].getType( )+" "+students[i].getCourseGrade( ));}}}六、实验结果运行可得如下实验结果:图 7 实验运行结果七、实验分析7.1在 Polymorphism 类中有一个循环语句用来计算每个学生的成绩等级for(int i=0;i<5;i + +){student[i].calculateGrade();}这里的 calculateGrade() 方法,如果对象是研究生,即按照研究生的标准来计算。
java实验报告Java 实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解和掌握Java 语言的基本语法、面向对象编程的概念和方法,以及常用类库的使用。
同时,培养我们的问题解决能力、逻辑思维能力和代码规范意识,为今后的软件开发工作打下坚实的基础。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers3、 JDK 版本:JDK 18三、实验内容本次实验共包括以下三个部分:1、 Java 基本语法练习变量与数据类型运算符与表达式控制流语句(ifelse、for、while、dowhile)数组2、面向对象编程实践类与对象的定义和使用构造函数与方法重载封装、继承与多态抽象类与接口3、 Java 常用类库应用String 类与字符串操作集合框架(ArrayList、HashMap)文件输入输出(File、FileReader、FileWriter)四、实验步骤及代码实现1、 Java 基本语法练习变量与数据类型:```javapublic class VariableDataType {public static void main(String args) {int age = 20;double salary = 50005;String name ="张三";boolean isStudent = true;Systemoutprintln("年龄:"+ age);Systemoutprintln("工资:"+ salary);Systemoutprintln("姓名:"+ name);Systemoutprintln("是否是学生:"+ isStudent);}}```运算符与表达式:```javapublic class OperatorExpression {public static void main(String args) {int num1 = 10;int num2 = 5;int sum = num1 + num2;int difference = num1 num2;int product = num1 num2;int quotient = num1 / num2;int remainder = num1 % num2; Systemoutprintln("和:"+ sum);Systemoutprintln("差:"+ difference);Systemoutprintln("积:"+ product);Systemoutprintln("商:"+ quotient);Systemoutprintln("余数:"+ remainder);}}```控制流语句:```javapublic class ControlFlowStatement {public static void main(String args) {// ifelse 语句int score = 80;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}// for 循环for (int i = 1; i <= 5; i++){Systemoutprintln("第" + i +"次循环");}// while 循环int j = 1;while (j <= 5) {Systemoutprintln("第" + j +"次 while 循环");j++;}// dowhile 循环int k = 1;do {Systemoutprintln("第" + k +"次 dowhile 循环");k++;} while (k <= 5);}}```数组:```javapublic class ArrayExample {public static void main(String args) {//一维数组int numbers ={1, 2, 3, 4, 5};for (int num : numbers) {Systemoutprintln(num);}//二维数组int matrix ={{1, 2, 3},{4, 5, 6},{7, 8, 9}};for (int row : matrix) {for (int num : row) {Systemoutprint(num +"");}Systemoutprintln();}}}```2、面向对象编程实践类与对象的定义和使用:```javapublic class Person {private String name;private int age;public Person(String name, int age) {thisname = name;thisage = age;}public void showInfo(){Systemoutprintln("姓名:"+ name +",年龄:"+ age);}public static void main(String args) {Person person1 = new Person("张三", 20);person1showInfo();}}```构造函数与方法重载:```javapublic class ConstructorOverloading {private String name;private int age;public ConstructorOverloading(String name) {thisname = name;}public ConstructorOverloading(String name, int age) {thisname = name;thisage = age;}public void showInfo(){if (age == 0) {Systemoutprintln("姓名:"+ name);} else {Systemoutprintln("姓名:"+ name +",年龄:"+ age);}}public static void main(String args) {ConstructorOverloading person1 = new ConstructorOverloading("张三");person1showInfo();ConstructorOverloading person2 = new ConstructorOverloading("李四", 25);person2showInfo();}}```封装、继承与多态:```java//父类class Animal {private String name;public Animal(String name) {thisname = name;}public void eat(){Systemoutprintln(name +"正在吃东西");}}//子类继承父类class Dog extends Animal {public Dog(String name) {super(name);}public void bark(){Systemoutprintln(name +"在叫");}}public class InheritancePolymorphism {public static void main(String args) {Animal animal = new Dog("小黑");animaleat();//向下转型为 Dog 类型调用 bark 方法if (animal instanceof Dog) {Dog dog =(Dog) animal;dogbark();}}}```抽象类与接口:```java//抽象类abstract class Shape {abstract void draw();}//实现抽象类的子类class Circle extends Shape {@Overridevoid draw(){Systemoutprintln("画一个圆");}}//接口interface Moveable {void move();}//实现接口的类class Car implements Moveable {@Overridepublic void move(){Systemoutprintln("汽车在移动");}}public class AbstractInterfaceExample {public static void main(String args) {Shape shape = new Circle();shapedraw();Moveable car = new Car();carmove();}}```3、 Java 常用类库应用String 类与字符串操作:```javapublic class StringOperation {public static void main(String args) {String str1 ="Hello, ";String str2 ="World!";String str3 = str1 + str2;Systemoutprintln(str3);int length = str3length();Systemoutprintln("字符串长度:"+ length);char charAt = str3charAt(5);Systemoutprintln("第 5 个字符:"+ charAt);boolean contains = str3contains("World");Systemoutprintln("是否包含 World:"+ contains);}}```集合框架(ArrayList、HashMap):```javaimport javautilArrayList;import javautilHashMap;import javautilMap;public class CollectionFramework {public static void main(String args) {// ArrayListArrayList<String> names = new ArrayList<>();namesadd("张三");namesadd("李四");namesadd("王五");for (String name : names) {Systemoutprintln(name);}// HashMapHashMap<String, Integer> ages = new HashMap<>();agesput("张三", 20);agesput("李四", 25);agesput("王五", 30);for (MapEntry<String, Integer> entry : agesentrySet()){Systemoutprintln(entrygetKey()+"的年龄是" +entrygetValue());}}}```文件输入输出(File、FileReader、FileWriter):```javaimport javaioFile;import javaioFileReader;import javaioFileWriter;import javaioIOException;public class FileIOExample {public static void main(String args) {//写入文件try (FileWriter writer = new FileWriter("outputtxt")){writerwrite("这是写入文件的内容");} catch (IOException e) {eprintStackTrace();}//读取文件try (FileReader reader = new FileReader("outputtxt")){int character;while ((character = readerread())!=-1) {Systemoutprint((char) character);}} catch (IOException e) {eprintStackTrace();}}}```五、实验结果与分析1、 Java 基本语法练习变量与数据类型:能够正确定义和使用各种数据类型的变量,并进行基本的运算和输出。
实验一:JAVA输入与输出的应用一、实验目的(1)理解流类的概念和意义(2)掌握标准的输入输出及标准错误(3)文件操作,对流类进行读取,掌握其构造器方法二、实验设备个人计算机windows XP,JDK1.5编译开发环境、Eclipse文本编辑器。
三、实验步骤、方法与要求实验一;编写一个程序,分别统计并输出文本文件中元音字母a e i o u 的个数实验二;编程实现以下功能,在屏幕上显示输入姓名,然后将用户输入的姓名保存到文本文件中,重复进行,直到用户输入空字符串为止。
四、实验结果示例1:实验一2:实验二五、程序清单列出完成上述实验步骤所要求编写的程序源代码实验一:package chapter10;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class Test {public static void main(String[] args) throws IOException { int ch;File file1=new File("F:\\蔺永虎作业\\TestFile.txt");try {@SuppressWarnings("resource")FileInputStream fin=new FileInputStream(file1);System.out.println("文件中的信息为:");ch=fin.read();while(ch!=-1){System.out.print((char)ch);ch=fin.read();}FileInputStream fin1=new FileInputStream(file1);int s,aa=0 ;s=fin1.read();while(s!=-1){char c= (char) s;if(c=='a'){aa++;}s=fin1.read();}System.out.println(" TestFile.txt中a的个数为:"+aa);fin1.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}实验二;package chapter10;import java.io.*;public class ImputName{public static void main(String args[]) throws IOException{String s;InputStreamReader isr=new InputStreamReader(System.in);BufferedReader br=new BufferedReader(isr);FileWriter fw=new FileWriter("F:\\蔺永虎作业.\\InputName.txt"); BufferedWriter bw=new BufferedWriter(fw);System.out.println("请输入姓名:(以空行结束)");while(true){System.out.println("输入姓名: ");System.out.flush();s = br.readLine();if(s.length()==0)break;bw.write(s);bw.newLine();}br.close();bw.close();System.out.println("输入的姓名存入到F:\\蔺永虎作业.\\InputName.txt");}}六、实验总结这次的实验对以自己的流方式向文件中写入的这种类型的题,有了进一步的了解,而且对于这种异常处理的方法,也有了更深一步的印象,DataOutputStream可以把各种丰富类型的数据写入磁盘,在实际操作中用的这种方法,也可以解决很多不同类对象。
实验一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]);
}
}
}
运行结果(每次运行结果不一样):
友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。