实验2:Java面向对象程序设计
- 格式:doc
- 大小:75.50 KB
- 文档页数:3
实验报告课程名称面向对象技术(Java)实验项目类和对象实验仪器个人计算机学院计算机学院专业计算机大类班级/学号学生姓名___ ___________实验日期2019/04/03指导教师___ _________实验项目二类和对象一、实验目标1.掌握类的定义和对象的创建以及使用方法;掌握UML类图的绘制。
2.掌握实例变量与静态变量、实例方法与静态方法的区别与使用。
3.掌握成员变量与局部变量的定义与使用。
4.理解和掌握面向对象技术的封装性,能够运用面向对象思想、术语和相关技术正确表达一般工程问题。
二、实验要求1.上机实验前,按照每一个实验题目的具体要求提前完成准备工作,如:查找资料、设计算法、写出全部源程序,做好预习笔记,做到有准备地上机。
2.上机实验课内,积极调试及修改程序。
上传程序到过程化考核平台/http://211.68.40.252:8008/3.上机实验课后,学生应根据实验数据及结果,完成实验报告。
实验报告是评定实验成绩的重要组成部分。
完成的实验报告交给课代表,课代表收齐本班的实验报告后统一交指导教师审阅评定。
三、实验环境硬件环境:个人电脑一台软件环境:JDK1.8及以上版本,NetBeans8.0及以上版本四、实验内容任务1 、定义一个名为Circle的类表示圆形。
这个Circle类包括:(1)一个名为radius的私有double型数据域,表示圆的半径。
radius的默认值为1。
(2)一个名为numberOfObjects的私有静态数据域,用于记录创建的圆对象的个数。
(3)一个无参构造方法。
(4)一个能指定radius的构造方法。
(5)一个名为getArea()的方法返回这个圆形的面积。
(6)一个名为getNumberOfObjects的类静态方法,返回已创建圆的个数。
(7)radius的set/get方法。
然后,编写一个测试程序。
要求在测试程序中:(1)创建一个半径为5.0的圆对象myCircle,并输出这个圆的半径及面积。
淮海工学院计算机工程学院实验报告书课程名:面向对象程序设计A实验题目: Java面向对象编程初步(2)班级:软嵌151学号:2015123349姓名:陈正宁一、实验目的(1)通过实验,进一步掌握类的定义,尤其是类中方法(包含构造方法)的定义。
掌握对象的创建方法及对象成员变量和方法的调用;(2)通过编写图形界面的程序,完成对象的创建和调用。
二、实验内容(1)定义教师类Teacher,包含属性工号,姓名,性别,所在部门,职称,职位,专业,学历;定义若干个构造方法,完成对象的各种初始化需要;定义若干个分别能够获取和修改成员变量的方法,如获取工号/修改工号;获取学历/修改学历等;定义toString()方法,能够输出教师的所有相关信息。
(50分)(2)编写字符界面的程序,能够创建若干个教师对象,并输出教师的相关信息;(30分)(3)编写图形界面的程序,能够创建若干个教师对象,并输出教师的相关信息。
(20分)三、实验步骤(1)字符界面的程序class Teacher //定义一个名为Teacher公共类{String number; //工号String name; //姓名String sex; //性别String department; //部门String title; //职称String post; //职位String major; //专业String education; //学历Teacher() //构造方法1{number="";name="";sex="";department="";title="";post="";major="";education="";}Teacher(String name,String sex) //构造方法2{this();=name;this.sex=sex;}/*更改一些特性或者获取信息*/public void setnumber(String newnumber){number=newnumber;}public String getnumber(){return number;}public void setname(String newname){name=newname;}public String getname(){return name;}public void setsex(String newsex){sex=newsex;}public String getsex(){return sex;}public void setdepartment(String newdepartment) {department =newdepartment;}public String getdepartment(){return department;}public void settitle(String newtitle){title=newtitle;}public String gettitle(){return title;}public void setpost(String newpost){post=newpost;}public String getpost(){return post;}public void setmajor(String newmajor){major=newmajor;}public String getmajor(){return major;}public void seteducation(String neweducation){education=neweducation;}public String geteducation(){return education;}public String toString() //重写toString输出方法{return "\n教师工号:"+number+";姓名:"+name+";性别:"+sex+";所在部门:"+department+";\n职称:"+title+";职位:"+post+";专业:"+major+";学历:"+education+"\n";}}public class shiyan4_1{public static void main(String args[]){System.out.println("初始情况如下");Teacher teacher1=new Teacher(); //调用构造方法1Teacher teacher2=new Teacher("张老师","男"); // 调用构造方法2Teacher teacher3=new Teacher("刘老师","男");Teacher teacher4=new Teacher("李老师","女");Teacher teacher5=new Teacher("施老师","女");Teacher teacher6=new Teacher("闵老师","男");Teacher teacher7=new Teacher("王老师","女");System.out.println(teacher1.toString()+teacher2.toString()+teacher3.toString()+teach er4.toString()+teacher5.toString()+teacher6.toString()+teacher7.toString());System.out.println("教师信息如下");teacher1.setnumber("1000");teacher1.setname("孙老师");teacher1.setsex("男");teacher1.setdepartment("电子工程学院");teacher1.settitle("讲师");teacher1.setpost("教师");teacher1.setmajor("模拟电路");teacher1.seteducation("博士");teacher2.setnumber("1001");teacher2.setdepartment("计算机工程学院");teacher2.settitle("讲师");teacher2.setpost("教师");teacher2.setmajor("计算机硬件");teacher2.seteducation("硕士");teacher3.setnumber("1002");teacher3.setsex("女");teacher3.setdepartment("理学院");teacher3.settitle("讲师");teacher3.setpost("教师");teacher3.setmajor("数学分析与统计");teacher3.seteducation("硕士");teacher4.setnumber("1003");teacher4.setdepartment("外国语学院");teacher4.settitle("讲师");teacher4.setpost("教师");teacher4.setmajor("大学英语");teacher4.seteducation("硕士");teacher5.setnumber("1004");teacher5.setdepartment("计算机工程学院");teacher5.settitle("副教授");teacher5.setpost("副院长");teacher5.setmajor("计算机");teacher5.seteducation("硕士");teacher6.setnumber("1005");teacher6.setdepartment("机械工程学院");teacher6.settitle("教授");teacher6.setpost("教师");teacher6.setmajor("工程力学");teacher6.seteducation("博士");teacher7.setnumber("1009");teacher7.setdepartment("理学院");teacher7.settitle("讲师");teacher7.setpost("教师");teacher7.setmajor("线性代数");teacher7.seteducation("硕士");System.out.println(teacher1.toString()+teacher2.toString()+teacher3.toString()+teacher4.t oString()+teacher5.toString()+teacher6.toString()+teacher7.toString());}}(2)图形界面程序import javax.swing.*;import java.awt.*;import java.awt.event.*;class Teacher //定义一个名为Teacher公共类{String number; //工号String name; //姓名String sex; //性别String department; //部门String title; //职称String post; //职位String major; //专业String education; //学历Teacher() //构造方法1{number="";name="";sex="";department="";title="";post="";major="";education="";}Teacher(String name,String sex) //构造方法2{this();=name;this.sex=sex;}/*更改一些特性或者获取信息*/public void setnumber(String newnumber){number=newnumber;}public String getnumber(){return number;}public void setname(String newname){name=newname;}public String getname(){return name;}public void setsex(String newsex){sex=newsex;}public String getsex(){return sex;}public void setdepartment(String newdepartment) {department =newdepartment;}public String getdepartment(){return department;}public void settitle(String newtitle){title=newtitle;}public String gettitle(){return title;}public void setpost(String newpost){post=newpost;}public String getpost(){return post;}public void setmajor(String newmajor){major=newmajor;}public String getmajor(){return major;}public void seteducation(String neweducation) {education=neweducation;}public String geteducation(){return education;}public String toString() //重写toString输出方法{return "\n教师工号:"+number+";姓名:"+name+";性别:"+sex+";所在部门:"+department+";\n职称:"+title+";职位:"+post+";专业:"+major+";学历:"+education+"\n";}}public class shiyan4_2{public static void main(String args[]){new FrameInOut();}}class FrameInOut extends Frame implements ActionListener{JButton btn1,btn2,btn3;JTextArea ta;JPanel p1,p2,p3;FrameInOut(){super("教师信息!");this.setFont(new Font("楷体",Font.BOLD,100));this.setBackground(Color.pink);btn1=new JButton("初始信息");btn2=new JButton("教师信息");btn3=new JButton("退出");ta=new JTextArea(20,50);p1=new JPanel();p2=new JPanel();p3=new JPanel();p1.add(btn1);p1.add(btn2);p1.add(btn3);p2.add(ta);add(p1);add(p2);setLayout(new FlowLayout());p1.setBackground(Color.yellow);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);setSize(600,360);setVisible(true);}public void actionPerformed(ActionEvent e){Teacher teacher1=new Teacher(); //调用构造方法1Teacher teacher2=new Teacher("张老师","男"); // 调用构造方法2Teacher teacher3=new Teacher("刘老师","男");Teacher teacher4=new Teacher("李老师","女");Teacher teacher5=new Teacher("施老师","女");Teacher teacher6=new Teacher("闵老师","男");Teacher teacher7=new Teacher("王老师","女");if(e.getSource()==btn1){ta.setText(null);ta.setForeground(Color.black);ta.setFont(new Font("楷体",Font.BOLD,16));ta.append(teacher1.toString()+teacher2.toString()+teacher3.toString()+teacher4.toStr ing()+teacher5.toString()+teacher6.toString()+teacher7.toString());}teacher1.setnumber("1000");teacher1.setname("孙老师");teacher1.setsex("男");teacher1.setdepartment("电子工程学院");teacher1.settitle("讲师");teacher1.setpost("教师");teacher1.setmajor("模拟电路");teacher1.seteducation("博士");teacher2.setnumber("1001");teacher2.setdepartment("计算机工程学院");teacher2.settitle("讲师");teacher2.setpost("教师");teacher2.setmajor("计算机硬件");teacher2.seteducation("硕士");teacher3.setnumber("1002");teacher3.setsex("女");teacher3.setdepartment("理学院");teacher3.settitle("讲师");teacher3.setpost("教师");teacher3.setmajor("数学分析与统计");teacher3.seteducation("硕士");teacher4.setnumber("1003");teacher4.setdepartment("外国语学院");teacher4.settitle("讲师");teacher4.setpost("教师");teacher4.setmajor("大学英语");teacher4.seteducation("硕士");teacher5.setnumber("1004");teacher5.setdepartment("计算机工程学院");teacher5.settitle("副教授");teacher5.setpost("副院长");teacher5.setmajor("计算机");teacher5.seteducation("硕士");teacher6.setnumber("1005");teacher6.setdepartment("机械工程学院");teacher6.settitle("教授");teacher6.setpost("教师");teacher6.setmajor("工程力学");teacher6.seteducation("博士");teacher7.setnumber("1009");teacher7.setdepartment("理学院");teacher7.settitle("讲师");teacher7.setpost("教师");teacher7.setmajor("线性代数");teacher7.seteducation("硕士");if(e.getSource()==btn2){ta.setText(null);ta.setForeground(Color.black);ta.setFont(new Font("楷体",Font.BOLD,16));ta.append(teacher1.toString()+teacher2.toString()+teacher3.toString()+teacher4.toStr ing()+teacher5.toString()+teacher6.toString()+teacher7.toString());}if(e.getSource()==btn3){dispose();System.exit(0);}}}四、实验结果(结论)(1)字符界面运行结果(2)图形界面运行结果五、实验的分析体会通过这次实验,对类的定义有更深一层的理解,尤其是类中方法(包含构造方法)的定义。
实验报告课程Java语言程序设计实验名称面向对象程序设计实验任务二第页专业班级学号__ __ 姓名实验日期:2010 年9 月21 日报告退发(订正、重做)一、实验目的•掌握类、域、方法的定义和实例对象的创建•理解类的继承性、多态性、封装性•掌握包的应用•掌握关键字abstract、static、final和this的使用•掌握接口的定义和使用•掌握内部类使用•理解变量作用域范围的含义和参数传递方式•体会面向对象程序设计基本思想二、实验环境1、微型计算机一台2、DOS或WINDOWS操作系统,j2se开发包三、实验内容1.定义一个员工类,包含姓名、出生年月、性别三个属性,包含计算员工到目前为止年龄段方法。
●源文件名为:Employee.java●类名:Employee●要求定义静态成员域,以便统计该类及其子类的实例对象中,男性和女性的数量。
2.定义一个教师类,继承员工类,增设开始从教时间属性及职称属性,增设计算教师到目前为止教龄的方法。
●源文件名:Teacher.java●类名:Teacher3.定义一个行政人员类,继承员工类,增设开始工作时间及职务属性,增设计算该工作人员到目前为止工龄的方法。
●源文件名:Staff.java●类名:Staff4.定义主类,●源文件名:School.java●类名:School●完成以下工作:✓创建一个教师类实例,性别为女性,输入各个属性,输出她的姓名、年龄、教龄及职称。
✓创建一个行政人员实例,性别为男性,输入各个属性,输出他的姓名、年龄、工龄及职务。
✓统计输出程序执行到此,所创建男性和女性实例对象的个数。
该操作要求在员工类中定义静态成员实现。
四、实验步骤和结果1.在Eclipse中新建名字为test的工程。
2.新建Employee.java,Teacher.java,Staff.java,School.java 四个类。
3.分别编写java程序,求解员工类、教师类、行政人员类和主类问题。
Java程序设计-试验2(学生版)
华北电力大学
实验报告
实验名称Java程序面向对象设计(一)课程名称Java程序设计
专业班级:学生姓名:
学号:成绩:指导教师:张学斌实验日期:
自己的speed的值增加80
【代码10】//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());
}
}
1.3 实验指导
●创建一个对象时,成员变量被分配空间,这些内
存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。
●空对象不能使用,即不能让一个空对象去调用方
法产生行为。
假如程序中使用了空对象,在运行时会产生异常:NullPointerException,对象时。
面向对象程序设计实验报告一.实验目的进一步熟悉Java程序的结构,掌握Java的运算符、表达式、数组及流程控制语句的应用。
二. 实验内容(1)编写Application。
实现:将上学期所学的各门课程的名称及考试成绩的信息用数组存放,并在for(或while)循环中利用排序算法,将成绩进行升(或降)序排列,最后输出排序后的课程成绩。
(2)编写Applet程序,实现:将上学期所学的各门课程的名称及考试成绩的信息用数组存放,并在for(或while)循环中利用排序算法,将成绩进行升(或降)序排列,最后输出排序后的课程成绩。
三. 实验步骤(1)进行模板设计,设计出自己想要的模板。
(2)根据自己设计的模板编写出代码,并进行Java Application程序调试。
(3)编写并调试Java Applet程序。
四.实验结果1.编写一个application程序。
截图如下代码如下:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class applicationInOut{public static void main(String args[]){new FrameInOut();}}class FrameInOut extends Frame implements ActionListener{JPanel p1,p2,p3,p4;JButton btn1,btn2,btn3;JTextArea t1;TextField text1,text2,text3,text4,text5,text6,text7,text8;Label lab1,lab2,lab3,lab4,lab5,lab6,lab7,lab8;String information1[]={"姓名","性别:","学号","班级"};String information2[]={"","","",""};String course[]={"数据结构","线性代数","大学英语","电子电路"}; int score[]={0,0,0,0};FrameInOut(){super("学生成绩信息排名");btn1=new JButton("信息显示");btn2=new JButton("按成绩排名");btn3=new JButton("退出");lab1=new Label("姓名");lab2=new Label("性别");lab3=new Label("学号");lab4=new Label("班级");lab5=new Label("数据结构");lab6=new Label("线性代数");lab7=new Label("大学英语");lab8=new Label("电子电路");text1=new TextField(10);text2=new TextField(10);text3=new TextField(10);text4=new TextField(10);text5=new TextField(10);text6=new TextField(10);text7=new TextField(10);text8=new TextField(10);t1=new JTextArea(10,20);p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p1.add(btn1);p1.add(btn2);p1.add(btn3);p2.add(lab1);p2.add(text1);p2.add(lab2);p2.add(text2);p2.add(lab3);p2.add(text3);p2.add(lab4);p2.add(text4);p3.add(lab5);p3.add(text5);p3.add(lab6);p3.add(text6);p3.add(lab7);p3.add(text7);p3.add(lab8);p3.add(text8);p4.add(t1);add(p1);add(p2);add(p3);add(p4);setLayout(new FlowLayout());p1.setBackground(Color.red);p2.setBackground(Color.orange);p3.setBackground(Color.orange);p4.setBackground(Color.blue);t1.setForeground(Color.blue);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);setSize(700,400);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btn1){t1.setText("");information2[0]=text1.getText();information2[1]=text2.getText();information2[2]=text3.getText();information2[3]=text4.getText();score[0]=Integer.parseInt( text5.getText());score[1]=Integer.parseInt( text6.getText());score[2]=Integer.parseInt( text7.getText());score[3]=Integer.parseInt( text8.getText());for(int i=0;i<information1.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(information1[i]+":"+information2[i]+"\n");}for(int i=0;i<course.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(course[i]+":"+score[i]+"\n");}}else if(e.getSource()==btn2){information2[0]=text1.getText();information2[1]=text2.getText();information2[2]=text3.getText();information2[3]=text4.getText();score[0]=Integer.parseInt( text5.getText());score[1]=Integer.parseInt( text6.getText());score[2]=Integer.parseInt( text7.getText());score[3]=Integer.parseInt( text8.getText());int i,j,m;String coursename;for(i=0;i<score.length;i++){for(j=i+1;j<course.length;j++){if(score[i]>score[j]){m=score[j];score[j]=score[i];score[i]=m;coursename=course[i];course[i]=course[j];course[j]=coursename;}}}t1.setText("");for(i=0;i<information1.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(information1[i]+":"+information2[i]+"\n");}for(i=0;i<course.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(course[i]+" 成绩为:"+score[i]+"\n");}}if(e.getSource()==btn3){dispose();System.exit(0);}}}2.编写一个applet程序。
实验二面向对象编程实验报告一、实验目的本次实验旨在深入理解和掌握面向对象编程的基本概念和方法,通过实际编程操作,提高运用面向对象思想解决问题的能力,熟悉面向对象编程的开发流程和技巧,培养良好的编程习惯和代码规范。
二、实验环境本次实验使用的编程环境为具体编程环境名称及版本,操作系统为操作系统名称及版本。
三、实验内容(一)问题描述设计一个简单的学生管理系统,能够实现对学生信息(包括姓名、学号、年龄、成绩等)的录入、查询、修改和删除操作。
(二)类的设计1、设计一个`Student` 类,用于表示学生对象。
该类包含以下属性:`name`(姓名)、`student_id`(学号)、`age`(年龄)、`score`(成绩)。
2、为`Student` 类添加构造函数,用于初始化学生对象的属性。
3、为`Student` 类添加`get` 和`set` 方法,用于获取和设置学生对象的属性值。
(三)功能实现1、录入功能:实现用户输入学生信息,并创建`Student` 对象进行存储。
2、查询功能:根据学号或姓名查询学生信息,并输出查询结果。
3、修改功能:根据学号或姓名找到对应的学生对象,修改其属性值。
4、删除功能:根据学号或姓名删除对应的学生对象。
四、实验步骤(一)类的实现```javapublic class Student {private String name;private String studentId;private int age;private double score;public Student(String name, String studentId, int age, double score) {thisname = name;thisstudentId = studentId;thisage = age;thisscore = score;}public String getName(){return name;}public void setName(String name) {thisname = name;}public String getStudentId(){return studentId;}public void setStudentId(String studentId) {thisstudentId = studentId;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}public double getScore(){return score;}public void setScore(double score) {thisscore = score;}}```(二)主函数实现```javaimport javautilArrayList;import javautilScanner;public class StudentManagementSystem {private ArrayList<Student> students;public StudentManagementSystem(){students = new ArrayList<>();}public static void main(String args) {StudentManagementSystem system = new StudentManagementSystem();Scanner scanner = new Scanner(Systemin);while (true) {Systemoutprintln("1、录入学生信息");Systemoutprintln("2、查询学生信息");Systemoutprintln("3、修改学生信息");Systemoutprintln("4、删除学生信息");Systemoutprintln("5、退出系统");int choice = scannernextInt();switch (choice) {case 1:systemaddStudent(scanner);break;case 2:systemqueryStudent(scanner);break;case 3:systemmodifyStudent(scanner);break;case 4:systemdeleteStudent(scanner);break;case 5:Systemoutprintln("感谢使用,再见!");Systemexit(0);default:Systemoutprintln("输入有误,请重新输入!");}}}//录入学生信息public void addStudent(Scanner scanner) {Systemoutprintln("请输入学生姓名:");String name = scannernext();Systemoutprintln("请输入学生学号:");String studentId = scannernext();Systemoutprintln("请输入学生年龄:");int age = scannernextInt();Systemoutprintln("请输入学生成绩:");double score = scannernextDouble();Student student = new Student(name, studentId, age, score);studentsadd(student);Systemoutprintln("学生信息录入成功!");}//查询学生信息public void queryStudent(Scanner scanner) {Systemoutprintln("请输入查询方式(1、按学号查询 2、按姓名查询):");int queryType = scannernextInt();if (queryType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (queryType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//修改学生信息public void modifyStudent(Scanner scanner) {Systemoutprintln("请输入修改方式(1、按学号修改 2、按姓名修改):");int modifyType = scannernextInt();if (modifyType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("请输入新姓名:");String newName = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetName(newName);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (modifyType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("请输入新学号:");String newStudentId = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetStudentId(newStudentId);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//删除学生信息public void deleteStudent(Scanner scanner) {Systemoutprintln("请输入删除方式(1、按学号删除 2、按姓名删除):");int deleteType = scannernextInt();if (deleteType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (deleteType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}}```五、实验结果通过对程序的运行和测试,能够成功实现学生信息的录入、查询、修改和删除功能。
java面向对象编程实验报告篇一:java面向对象编程实验报告信息工程学院Java程序设计实验/实习报告学院:信息工程学院班级:信息112 姓名:吴连梅学号:XX013305 成绩:A实验二面向对象编程1.实验目的(1)掌握类与对象基本知识;(2)Java中的继承机制及包(package)、接口(interface)等的设计方法;(3)掌握static、this、super等关键字的使用;(4)掌握Java中两种比较器的用法。
2.实验内容实验题 1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice ()。
基本要求:(1)设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性;(2)重写父类的toString()方法,实现Book类实例的两个属性的输出。
实验过程:新建工程后,在工程下面建立一个包Book,在包下再建立一个Book类,类中包含两个属性,一个是private的String类型的属性title、一个是private的float类型的属性listPrice,之后是封装这两个属性的四个方法,用快捷键Alt+Shift+S选择gennerate Getters and Setters,再实验报告的内容与格式按任课教师的要求书写。
然后就是重写父类的toString()方法,用快捷键Alt+Shift+S选择gennerate toString,快捷重写。
这段程序写完是这样的:接下来便是BookManagement类,在包book下新建一个类BookManagement,写完的程序是这样的:BookManagement类中创建了书的对象,在主方法中调用output函数,赋值,输出。
Java2 面向对象程序设计课程设计本文将介绍 Java2 面向对象程序设计课程的设计,包括课程设置、教学目标、教学内容、实验项目等方面。
本课程旨在向学生介绍面向对象编程思想和 Java2语言的基本语法,并通过实验项目加强学生的实践能力和代码能力。
课程设置Java2 面向对象程序设计课程是计算机科学与技术专业的必修课程,是二年级下学期的专业课程。
本课程每周共计4学时,其中理论课2学时,实验课2学时。
教师采用面授+实验的教学模式进行教学。
教学目标通过本课程的学习,学生应当达到以下目标:1.理解面向对象编程思想并掌握 Java2 语言的基本语法;2.掌握 Java2 中的继承、多态、接口等面向对象的高级特性;3.能够运用所学知识进行简单的面向对象程序设计;4.加强实践能力和代码能力,提高解决问题的能力。
教学内容第一周1.1 面向对象编程概述1.2 Java2 程序设计语言简介1.3 Java2 开发环境的安装和配置第二周2.1 Java2 数据类型和运算符2.2 Java2 流程控制语句第三周3.1 Java2 数组3.2 Java2 方法第四周4.1 面向对象编程基础4.2 Java2 类和对象第五周5.1 Java2 面向对象的高级特性之继承5.2 多态和动态绑定第六周6.1 Java2 面向对象的高级特性之接口6.2 Java2 面向对象的高级特性之抽象类第七周7.1 Java2 内部类7.2 Java2 异常处理第八周8.1 Java2 输入输出流8.2 Java2 网络编程基础第九周9.1 Java2 图形用户界面 Swing9.2 Java2 数据库编程 JDBC实验项目本课程总共包含5个实验项目,每个项目占据2学时,共计10学时。
实验项目的具体内容如下:实验1学生要求通过 Java2 语言编写一个控制台程序,实现根据输入的学生分数与及格线进行判断成绩是否及格的功能。
实验2学生要求通过 Java2 语言编写一个控制台程序,实现根据输入的三角形三条边的长度,判断是何种类型的三角形(等边三角形、等腰三角形、普通三角形)的功能。
《⾯向对象程序设计》实验指导书《⾯向对象程序设计》实验指导书郭⽟柱⼴东商学院信息学院⼆0⼀0 年⼗⼆⽉⽬录实验⼀ Java基础实验实验⼆ Java⾯向对象特性试验--Java中的类、对象和⽅法实验三类的继承、多态、接⼝、访问控制符与修饰符实验四 Java资源及其利⽤实验五 Java 语⾔的异常处理实验六输⼊输出流实验七图形⽤户界⾯设计实验⼋ Java Applet及多线程试验附录1 实验报告格式实验⼀ Java 基础实验⼀、实验⽬的与要求1. 学习编写简单的Java 程序。
2. 学习掌握Java 基本数据类型及其基本运算。
3. 学习掌握Java 的基本流程控制语句。
⼆、相关知识1. 了解JDK 的⼯作环境,以及如何使⽤JDK 进⾏编程。
2. 熟悉集成软件 eclipse3.5及其使⽤。
⼆、实验内容1. 编写Hello.java 程序并运⾏。
2. ⽤Java 语⾔编写⼀个应⽤程序在屏幕上输出1000之内的素数。
3. ⼀个数如果恰好等于它的因⼦之和,这个数就称为“完数”,⽐如28=1+2+4+7+14。
编写⼀个应⽤程序在屏幕上输出1000之内的完数。
4. 求满⾜1!+2!+3!+ …+n!≤9999的最⼤整数n 。
5. ⼀个三位的整数如果它的各位数字的⽴⽅之和等于这个三位数,就称此数为⽔仙花数,⽐如 333173371++=,编写⼀个应⽤程序在屏幕上输出所有⽔仙花数。
6. 下⾯程序的输出结果是什么?实验⼆ Java⾯向对象特性试验-Java中的类、对象和⽅法⼀、实验⽬的与要求1. 掌握类的定义和使⽤。
2. 掌握对象的声明、创建和使⽤。
3. 掌握构造⽅法的定义和使⽤。
4. 掌握类⽅法(静态⽅法)和⾮类⽅法(⾮静态⽅法)的区别和使⽤。
5. 掌握成员变量和局部变量的区别和使⽤。
⼆、实验内容1. 编写⼀个Java程序,定义⼀个表⽰学⽣的类,类名Student,其成员变量有:学号、班级姓名、性别、年龄;成员⽅法:(1)获得班号(2)获得姓名(3)获得年龄(4)修改年龄;创建⼀个Student的对象,修改该对象的年龄,并输出该对象的年龄。
20145215实验⼆Java⾯向对象程序设计⼀、实验内容初步掌握单元测试和TDD理解并掌握⾯向对象三要素:封装、继承、多态初步掌握UML建模熟悉S.O.L.I.D原则了解设计模式⼆、实验步骤(⼀)单元测试(1)三种代码伪代码:百分制转五分制:如果成绩⼩于60,转成“不及格”如果成绩在60与70之间,转成“及格”如果成绩在70与80之间,转成“中等”如果成绩在80与90之间,转成“良好”如果成绩在90与100之间,转成“优秀”其他,转成“错误”产品代码:public class MyUtil{public static String percentage2fivegrade(int grade){//如果成绩⼩于60,转成“不及格”if (grade < 60)return "不及格";//如果成绩在60与70之间,转成“及格”else if (grade < 70)return "及格";//如果成绩在70与80之间,转成“中等”else if (grade < 80)return "中等";//如果成绩在80与90之间,转成“良好”else if (grade < 90)return "良好";//如果成绩在90与100之间,转成“优秀”else if (grade < 100)return "优秀";//其他,转成“错误”elsereturn "错误";}}测试代码:测试⼀:public class MyUtilTest {public static void main(String[] args) {// 百分制成绩是50时应该返回五级制的“不及格”if(MyUtil.percentage2fivegrade(50) != "不及格")System.out.println("test failed!");elseSystem.out.println("test passed!");}}运⾏结果如下:测试⼆:全⾯覆盖各等级段public class MyUtilTest {public static void main(String[] args) {//测试正常情况if(MyUtil.percentage2fivegrade(55) != "不及格")System.out.println("test failed!");else if(MyUtil.percentage2fivegrade(65) != "及格")System.out.println("test failed!");else if(MyUtil.percentage2fivegrade(75) != "中等")System.out.println("test failed!");else if(MyUtil.percentage2fivegrade(85) != "良好")System.out.println("test failed!");else if(MyUtil.percentage2fivegrade(95) != "优秀")System.out.println("test failed!");elseSystem.out.println("test passed!");}}运⾏结果如下:测试三:异常情况测试public class MyUtilTest {public static void main(String[] args) {//测试出错情况if(MyUtil.percentage2fivegrade(-10) != "错误")System.out.println("test failed 1!");else if(MyUtil.percentage2fivegrade(115) != "错误")System.out.println("test failed 2!");elseSystem.out.println("test passed!");}}运⾏结果如下:和我们预期的结果不⼀样,原因是判断不及格时没有要求成绩⼤于零,因此我们增加对负分的判断:if ((grade < 0))return "不符合实际情况";测试四:测试分段结点public class MyUtilTest {public static void main(String[] args) {//测试边界情况if(MyUtil.percentage2fivegrade(0) != "不及格")System.out.println("test failed 1!");else if(MyUtil.percentage2fivegrade(60) != "及格")System.out.println("test failed 2!");else if(MyUtil.percentage2fivegrade(70) != "中等")System.out.println("test failed 3!");else if(MyUtil.percentage2fivegrade(80) != "良好")System.out.println("test failed 4!");else if(MyUtil.percentage2fivegrade(90) != "优秀")System.out.println("test failed 5!");else if(MyUtil.percentage2fivegrade(100) != "优秀")System.out.println("test failed 6!");elseSystem.out.println("test passed!");}}运⾏结果如下:于是把判断优秀的条件中包含输⼊为100的情况,对下⾯代码进⾏修改:else if (grade < 100)return "优秀";改成else if (grade <= 100)return "优秀";再次运⾏,测试结果符合预期,如下图所⽰:(2)TDD(Test Driven Devlopment, 测试驱动开发)TDD:先写测试代码,然后再写产品代码的开发⽅法。
Java程序设计实验报告班级:电气F1104学号:201123910723姓名:曹俊波指导老师:魏蔚一、实验题目面向对象的程序设计二、实验内容1)完成对象的使用和创建。
2)完成java中多态性中的冲在多态性的验证。
3)掌握抽象类的与接口的作用与用法。
三、实验步骤1)对象的使用实验一的原程序如下:class Point{int x,y;String name="a point";Point(){x=0;y=0;}Point(int x,int y,String name){this.x=x;this.y=y;=name;}int getX(){return x;}int getY(){return y;}void move(int newX,int newY){x=newX;y=newY;}Point newPoint(String name){Point newP=new Point(-x,-y,name);return newP;}boolean equal(int x,int y){if(this.x==x&&this.y==y)return true;elsereturn false;}void print(){System.out.println(name+": x="+x+" y="+y);}}public class UsingObject{public static void main(String args[]){Point p=new Point();p.print();p.move(50,50);System.out.println("****after moving****");System.out.println("Get x and y directly");System.out.println("x="+p.x+" y="+p.y);System.out.println("or Get x and y by calling method");System.out.println("x="+p.getX()+" y="+p.getY());if(p.equal(50,50))System.out.println("I like this point!");elseSystem.out.println("I hate it!");p.newPoint("a new point").print();new Point(10,15,"another new point").print();}}第一步:先在D盘建一个“工作目录”的文件夹。
实验2:Java面向对象程序设计(一)
实验目的
●掌握类的定义;掌握构造方法的使用;掌握对象的创建。
●掌握静态变量与静态方法的使用;了解静态变量和成员变量的区别。
●熟悉访问修饰符的作用;掌握访问修饰符的使用方法。
●掌握方法的重载;掌握访问器get/set方法。
实验步骤
一、类和对象的创建
1. 创建一个圆类,成员变量有半径radius和圆周率pi,提供计算圆面积的方法,并在main方法中创建圆类的对象,调用其计算面积的方法进行测试。
2. 编写上述代码,编译运行代码,查看程序执行结果。
●试述程序中两个类的各自作用。
●类Circle都封装了什么?求圆面积的初始数据是通过哪个方法实现的?请修改程序采用构造函数的方法初始化数据。
●类Circle是如何声明的?在类中都声明了什么?在主函数中是如何创建Circle类对象的?
二、静态变量和静态方法的设计
(一). 静态变量和实例变量练习
1. 创建一个类,类名为StaticVariableTest,包含static变量和实例变量,类型为int型,在main方法中分别调用这2个变量并且输出结果。
2. 部分源代码如下:
3. 将上述代码中的main方法补充完整后,编译运行代码,查看程序执行结果。
●根据完善后的源码,分析调用静态变量和实例变量有什么不同?
(二). 静态方法和实例方法练习
1. 创建一个类,类名为StaticMethodTest,包含一个静态方法和一个实例方法,在main方法中分别调用这个两个方法进行测试。
2. 部分源代码如下:
3. 将上述代码中的main函数补充完整,编译运行代码,查看程序执行结果。
●根据完善后的源码,分析如何调用静态方法和实例方法?
三、访问修饰符与方法的重载
(一). 访问修饰符练习
1. 创建一个Person类,在该类中用不同的访问修饰符设立不同的person属性,再创建一个PersonTest类,包括main方法,在此类中分别访问Person类中各个属性。
2. 源代码如下:
3. 先填写下面的表格,在预测结果中,如果能打印输出,填写程序输出结果,否则填“N”。
●记录程序运行结果。
表4-3-1 预测和验证结果
4. 编写上述代码,编译运行代码。
在上表中填写程序验证结果。
●访问private变量时,编译会出现什么问题,为什么?
●通过什么方式能访问private变量?编程实现访问Person类中的private变量。
(二). 方法重载练习
1. 给出一个OverloadTest类,并定义了一个amethod()方法,分析A)、B)、C)、D)四个方法能否正确编译;
2. 源代码如:
3. 编写上述代码,编译运行代码,查看程序执行结果。
●根据程序执行结果分析类中A)、B)、C)、D)四个方法哪些能编译,哪些不能编译,为什么?。