java 实验七 对象集合 实验报告
JAVA实验报告_Java类与对象

JAVA实验报告_Java类与对象贵州大学实验报告学院:计信学院专业:网络工程班级:101 姓名学号实验组实验时间05.11 指导教师肖源源成绩实验项目名称Java类与对象实验目的1)理解面向过程与面向对象区别2)理解面向对象的三大特征3)掌握类声明的方法4)掌握构造方法5)掌握对象的创建方法与创建机制6)掌握成员变量、类变量和局部变量区别7)掌握成员方法与类方法区别8)掌握函数的重载9)掌握4种访问修饰符的区别实验要求1.安装并设置Java SDK 软件包。
2.按要求编写程序完成实验指导所需实验要求。
3.调试并成功运行。
实验内容1、创建猴子类。
具体要求如下:1)编写一个类Monkey,用来表示猴子类;2)给Monkey类确定添加4个属性:3个实例成员变量(名字、体重、年龄)、1个静态成员变量(爱好:默认值为:吃香蕉);3)添加默认构造方法和有参构造方法(3个参数,分别给名字、体重和年龄赋初始值)4)编写展示猴子能够爬树(climbTree)的方法――提供两个参数传入:分别代码猴子的名字(name)和爬树的高度(height)(方法内只需打印猴子的”名字+会爬树,能爬+高度”)5)测试:在main方法中创建两个猴子对象monkey1(甲、50、3)和monkey2(乙、45、2),monkey1使用默认构造方法创建,monkey2使用有参构造方法创建。
分别打印出monkey1和monkey2的名字、体重、年龄和爱好。
并调用monkey1和monkey2的爬树方法。
2、创建矩形Rectangle类。
具体要求如下:1)创建一个Rectangle类;2)创建属性:两个double成员变量:width和height。
3)创建方法:计算矩形的周长getLength()和面积getArea()。
4)测试:创建Rectangle对象,并给两个成员变量赋值,调用周长和面积的方法,输出周长和面积。
实验数据实验总结整体实验基本达到要求,理解面向过程与面向对象区别,掌握类声明的方法,掌握对象的创建方法,掌握函数的重载等。
java 实验七 对象集合 实验报告

}
publicvoidwork(){
System.out.println(name+" work");
this.age= age;
this.salary= salary;
}
publicintgetAge() {
returnage;
}
publicvoidsetAge(intage) {
this.age= age;
}
publicString getName() {
returnname;
}
publicvoidsetName(String name) {
list.add("Hello");
list.add("World");
list.add(1,"Learn");
list.add(1,"Java");
printList(list);
}
publicstaticvoidprintList(Listlist){
//1
for(inti = 0; i< list.size();i++){
}
@Override
publicString toString() {
return"Worker [age="+age+", name="+name+", salary="+salary+"]";
}
}
publicclassEx7_3_3{
publicstaticvoidmain(String args[]){
Java集合框架实验报告

浙江大学城市学院实验报告课程名称Java高级程序设计实验项目名称Java集合框架实验学生姓名专业班级学号一、实验目的1.理解Java集合框架的特点、接口与类之间的关系2.掌握Java集合框架的List接口,以及List接口的重要实现类LinkedList、ArrayList3.掌握Java集合框架的Set、SortedSet接口,以及重要实现类HashSet与TreeSet4.掌握Java集合框架的Map、SortedMap接口及其重要实现类HashMap、TreeMap5.掌握Java集合框架的Collection与Iterator接口的特点与使用方式二、实验内容1、使用List管理对象集合2、使用Map管理对象集合3、使用Set管理对象集合4、设计一个自定义的集合类三、实验步骤1、在Eclipse中新建工程(即项目)2、使用List管理对象集合1)新建一个包listExample2)在这个包中新建三个类:Student类,StudentList类,StudentListTest类。
参考代码: Student、java, StudentList、java,StudentListTest、java3)完善上面三个类,相关要求参考源代码程序的注释,即根据要求修改源代码程序,给出具体的实现代码(不使用泛型类)。
void addStudent(Student student){//添加一个学生对象boolean a=true;for(int i=0;i<students、size();i++){Student stud = (Student)students、get(i);if(stud、getId()、equalsIgnoreCase(student、getId())) a=false;}if(a==true)students、add(student);//修改代码,保证students集合中所有学生对象的id号唯一}void deleteStudentById(String id){//根据学号删除学生对象for(int i=0;i<students、size();i++){Student stud = (Student)students、get(i);if(stud、getId()、equalsIgnoreCase(id))students、remove(stud);}}void deleteStudentByName(String name){//根据姓名删除学生对象for(int i=0;i<students、size();i++){Student stud = (Student)students、get(i);if(stud、getName()、equalsIgnoreCase(name))students、remove(stud);}}void deleteStudentByAge(int age){//根据年龄删除学生对象for(int i=0;i<students、size();i++){Student stud = (Student)students、get(i);if(stud、getAge()==age)students、remove(stud);}}Student[] findByName(String name){int a=0;for(int i=0;i<students、size();i++){Student stud = (Student)students、get(i);if(stud、getName()、equalsIgnoreCase(name))a++;}Student[] st=new Student[a];int b=0;for(int i=0;i<students、size();i++){Student stud = (Student)students、get(i);if(stud、getName()、equalsIgnoreCase(name)){st[b]=stud;b++;}}return st;}Student[] findByAge(int age){int a=0;for(int i=0;i<students、size();i++){Student stud = (Student)students、get(i);if(stud、getAge()==age)a++;}Student[] st=new Student[a];int b=0;for(int i=0;i<students、size();i++){Student stud = (Student)students、get(i);if(stud、getAge()==age){st[b]=stud;b++;}}return st;}4)新创建listExample2包,重新设计设计上述程序(新程序都属于这个包),这时需要使用泛型类,即出现的List、ArrayList或LinkedList都使用泛型。
实验七 JAVA数组与集合

实验七数组与集合●实验目的1.掌握对象数组的使用方法2.掌握集合操作●实验环境JDK1.4以上版本,Eclipse集成开发环境●实验内容1. 声明一个Student类,属性包括姓名、学号、总成绩;生成10个Student类对象,并放在一个一维数组中,编写方法按总成绩进行排序,将排序后的对象分别保持在Vector 、ArrayList、HashTable类型的对象中,并遍历显示其中元素的信息。
import java.util.Vector;import java.util.ArrayList;import java.util.Hashtable;import java.util.Enumeration;import java.util.Iterator;public class Ex71 {public static void main(String[] args){/** 定义Student类型的数组并初始化*//** 对数组中的元素按照总成绩从高第低排序*//** 将排序好的数组对象依次存入Vector*//** 将排序好的数组对象依次存入ArrayList*//** 将排序好的数组对象依次存入HashTable*//** 对集合中的元素进行遍历打印输出分别用Enumeration、Iterator*/}}class Student{private String xh;private String xm;private float zf;public Student(String xh, String xm, float zf) {super();this.xh = xh;this.xm = xm;this.zf = zf;}public String getXh() {return xh;}public void setXh(String xh) {this.xh = xh;}public String getXm() {return xm;}public void setXm(String xm) {this.xm = xm;}public float getZf() {return zf;}public void setZf(float zf) {this.zf = zf;}public String toString(){return"学号:"+xh+"姓名:"+xm+" 总成绩:"+zf;}}2.声明一个类,此类使用私有的ArrayList来存储对象。
JAVA实验7

浙江经贸职业技术学院实训报告系部______________ 班级____________ 姓名____________ 学号_______________日期______________ 地点____________ 指导教师_____________ 成绩实验七JAVA 面向对象编程(3)【实验目的】1.掌握JAVA语言类的定义和使用。
2.掌握JAVA语言对象的声明和使用。
3.掌握JAVA语言构造方法的概念和使用。
4.掌握类及其成员的访问控制符的区别和使用。
【预习内容】1. JAVA 类的定义格式;2.JAVA对象的使用三步骤:声明、创建以及初始化;3.访问控制修饰符:public、private和protected的功能和区别;4.JAVA构造方法的概念和特点;5.JAVA多态的概念,及重载和覆盖的区别;【实验内容及步骤】1.上机验证题1.阅读下面的程序,在main()方法里添加语句完成如下功能:(1)创建一个MyValue类的对象myValue.(2)为myValue对象中的value域赋值10。
(3)使用getVaule()方法获得myValue对象中的数据并将它打印在屏幕上。
class MyValue {private int value;public void setValue(int x) {value = x;}public int getValue() {return value;}}public class UseValue {public static void main(String args[]) {MyValue myvalue = new MyValue();myvalue.setValue(10);System.out.println(myvalue.getValue());}}[程序运行过程]2.(1)程序功能:通过LX7_1_P类产生子类LX7_2,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。
java 类与对象实验报告

java 类与对象实验报告Java 类与对象实验报告一、实验目的本次实验的目的是通过实际操作,加深对Java类与对象的理解与掌握。
通过编写程序,创建类和对象,实现类的各种属性和方法,并进行相应的测试和调试,从而熟悉类与对象的概念、创建与使用。
二、实验内容本次实验包括以下几个方面的内容:1. 创建一个名为"Student"的类,该类包含学生的姓名、年龄、性别等属性,以及相应的get和set方法。
2. 创建一个名为"Course"的类,该类包含课程的名称、学分、教师等属性,以及相应的get和set方法。
3. 创建一个名为"Teacher"的类,该类包含教师的姓名、年龄、性别等属性,以及相应的get和set方法。
4. 在"Student"类中添加一个名为"selectCourse"的方法,该方法可以选择课程,并将其添加到学生的课程列表中。
5. 在"Student"类中添加一个名为"dropCourse"的方法,该方法可以退选课程,并将其从学生的课程列表中移除。
6. 在"Course"类中添加一个名为"showInfo"的方法,该方法可以显示课程的详细信息。
7. 在"Teacher"类中添加一个名为"teachCourse"的方法,该方法可以教授课程,并显示教师的相关信息。
三、实验过程首先,我们需要创建一个名为"Student"的类。
在该类中,我们定义了学生的姓名、年龄、性别等属性,并为每个属性添加了相应的get和set方法。
接着,我们在该类中添加了一个名为"selectCourse"的方法,该方法可以选择课程,并将其添加到学生的课程列表中;同时,我们还添加了一个名为"dropCourse"的方法,该方法可以退选课程,并将其从学生的课程列表中移除。
java类与对象实验报告心得

java类与对象实验报告心得哇,做完这个Java类与对象的实验,真的是感触颇多呢。
在做这个实验之前呀,对于Java里的类和对象,我就只停留在理论知识上,觉得它们好抽象哦。
什么是类呢?就像是一个蓝图一样,描述了对象应该具有的属性和行为。
可那时候,我对这个概念也只是一知半解啦。
当开始做实验的时候,我才真正体会到其中的乐趣与挑战。
创建类的时候,我要去仔细思考这个类到底需要哪些属性。
就好比我要创建一个表示学生的类,那姓名、年龄、学号这些属性肯定是必不可少的呀。
这就像是在设计一个学生的模板一样,好有趣呢。
定义类中的方法也很有意思。
这些方法就像是这个类的功能一样。
比如说学生类中的学习方法,我可以在这个方法里编写一些代码来表示学生学习的过程。
刚开始写的时候,还老是出错呢,哎呀。
不是语法错误,就是逻辑上有点混乱。
不过这也是学习的过程嘛。
创建对象就像是根据这个蓝图来制造一个具体的东西。
我根据学生类创建了具体的学生对象,每个学生对象都有自己独特的属性值。
这就像是在现实生活中,每个学生都是独一无二的一样。
当我成功创建出这些对象并且让它们执行相应的方法时,那种成就感真的难以言表,哈哈。
在实验过程中,我还深刻体会到了封装的重要性。
把类的属性和方法封装起来,就像是给它们穿上了一层保护罩一样。
这样可以防止外部的代码随意修改类内部的数据,使得代码更加安全和可靠。
这让我觉得Java真的是一门很严谨的编程语言呢。
另外呀,类与类之间的关系也很复杂但又很有趣。
有继承关系,就像儿子类继承父亲类的属性和方法一样。
还有组合关系,一个类可以包含其他类的对象作为自己的属性。
理解这些关系的时候,我费了好大的劲呢,不过一旦理解了,就感觉像是打开了新世界的大门。
这次实验让我对Java类与对象的理解不再停留在书本上的文字,而是真正地可以运用它们来编写程序了。
我觉得自己在编程的道路上又前进了一大步呢。
希望以后还能做更多这样有趣又有挑战性的实验,让我可以更加熟练地掌握Java编程呀。
java类与对象实验报告

java类与对象实验报告Java类与对象实验报告一、引言Java是一种面向对象的编程语言,类和对象是Java编程的基本概念。
在本次实验中,我们将学习和掌握Java类和对象的概念、定义和使用方法,并通过实际的编程实验来加深对这些概念的理解。
二、实验目的1. 理解Java类和对象的概念;2. 学会定义和使用Java类;3. 掌握创建和操作Java对象的方法;4. 熟悉Java类和对象的相关语法和规范。
三、实验过程1. 类的定义在Java中,类是对象的模板,用于描述对象的属性和行为。
我们首先需要定义一个类,以便创建对象。
类的定义包括类名、属性和方法。
属性即对象的特征,方法即对象的行为。
2. 对象的创建通过使用关键字"new",我们可以创建一个类的对象。
对象是类的实例化,每个对象都有自己的属性和方法。
3. 对象的属性和方法对象的属性和方法可以通过对象名加点操作符来访问。
属性可以是基本类型或其他类的对象,方法可以是对象的行为或功能。
4. 构造方法构造方法是一种特殊的方法,用于创建对象时进行初始化操作。
构造方法的名称必须与类名相同,没有返回类型,可以有参数。
5. 封装性封装性是面向对象编程的重要特性之一,它将数据和方法封装在类中,对外部隐藏内部实现细节。
通过使用访问修饰符(private, public, protected)来控制属性和方法的访问权限。
6. 继承继承是面向对象编程的另一个重要特性,它允许我们创建一个新类,并从现有类中继承属性和方法。
通过使用关键字"extends"来实现继承。
7. 多态性多态性是面向对象编程的核心概念之一,它允许我们使用一个父类类型的引用来引用子类的对象。
通过方法的重写和重载来实现多态性。
四、实验结果通过本次实验,我们成功定义了一个Java类,并创建了多个对象。
我们可以通过对象名来访问对象的属性和方法,并对其进行操作。
我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
classWorker {
privateintage;
privateStringname;
privatedoublesalary;
publicWorker (){}
publicWorker (String name,intage,doublesalary){
= name;
this.age = age;
this.salary = salary;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
list.add("Hello");
list.add("World");
list.add(1,"Learn");
list.add(1,"Java");
printList(list);
}
publicstaticvoidprintList(Listlist){
//1
for(Object o : list) {
List<Worker> list=newArrayList<Worker>();
Worker w1=newWorker("赵一",30,5600);
Worker w2=newWorker("钱二",21,3800);
Worker w3=newWorker("孙三",28,4200);
list.add(w1);
}
public void work(){
System.out.println(name + “ work”);
}
}
完成下面的要求
1)创建一个List,在List中增加三个工人,基本信息包括:姓名年龄工资。
答:增加三个工人赵一,钱二,孙三及其他们的年龄和工资,其代码如下:
packagezi;
importjava.util.ArrayList;
}
}
}
运行结果如下,不知道为啥会出现乱码。
2)删除一个记录的信息
答:其代码如下:
packagezi;
importjava.util.ArrayList;
importjava.util.List;
classWorker{
privateintage;
privateStringname;
privatedoublesalary;
Worker w2=newWorker("钱二",21,3800);
Worker w3=newWorker("孙三",28,4200);
list.add(w1);
list.add(w2);
list.add(w3);
}
}
2)在第二个记录之前插入一个工人信息
答:插入后代码如下:
packagezi;
importjava.util.ArrayList;
= name;
}
publicdoublegetSalary(){
returnsalary;
}
publicvoidsetSalary(doublesalary){
this.salary= salary;
}
publicvoidwork(){
System.out.println(name+" work");
2)三种代码与执行结果截图
1、用Iterator实现的代码如下:
packagezi;
importjava.util.*;
publicclassEx7_2{
publicstaticvoidmain(String args[]){
Listlist =newArrayList();
list.add("Hello");
2. (List)有如下代码:
import java.util.*;
public class TestList{
public static void main(String args[]){
List list = new ArrayList();
list.add(“Hello”);
list.add(“World”);
= name;
this.age= age;
this.salary= salary;
}
publicintgetAge() {
returnage;
}
publicvoidsetAge(intage) {
this.age= age;
}
publicString getName() {
returnname;
list.add(1, “Learn”);
list.add(1, “Java”);
printList(list);
}
public static void printList(List list){
//1
}
}
要求:
1) 把//1 处的代码补充完整,要求输出list 中所有元素的内容,请使用三种方式来实现(课本227页,Iterator、增强for循环,普通循环)。
System.out.println(o);
}
}
}
其运行结果截图如下:
3、用普通循环的代码如下:
packagezi;
importjava.util.*;
publicclassEx7_2{
publicstaticvoidmain(String args[]){
Listlist =newArrayList();
System.out.println(list.get(i));
}
}
}
其运行结果截图如下:
3) 如果要把实现类由ArrayList 换为LinkedList,应该改哪一句?怎么修改?ArrayList和LinkedList 使用上有什么区别?请书面回答
答:List list = new LinkedList();
Vector:以线性结构存储,查询速度较慢,线程安全。
3.(List)已知有一个Worker类如下:
public class Worker {
private int age;
private String name;
private double salary;
public Worker (){}
public Worker (String name, int age, double salary){
this.salary= salary;
}
publicvoidwork(){
System.out.println(name+" work");
importjava.util.List;
classWorker{
privateintage;
privateStringname;
privatedoublesalary;
publicWorker (){}
publicWorker (String name,intage,doublesalary){
= name;
System.out.println(name+" work");
}
}
publicclassEx7_3_1{
publicstaticvoidmain(String args[]){
List<Worker> list=newArrayList<Worker>();
Worker w1=newWorker("赵一",30,5600);
list.add("World");
list.add(1,"Learn");
list.add(1,"Java");
printList(list);
}
publicstaticvoidprintList(Listlist){
//1
Iteratoritor = list.iterator();
while(itor.hasNext()){
this.age= age;
}
publicString getName() {
returnname;
}
publicvoidsetName(String name) {
= name;
}
publicdoublegetSalary(){
returnsalary;
}
publicvoidsetSalary(doublesalary){
list.add(1, w2);
list.add(w2);
list.add(w3);
Worker w2=newWorker("孙三",28,4200);
list.remove(3);
for(inti = 0; i < list.size(); i++) {
System.out.println(list.get(i));
this.age= age;
this.salary= salary;
}
publicintgetAge() {
returnage;
}
publicvoidsetAge(intage) {
this.age= age;