实验2:Java面向对象程序设计
面向对象技术(Java)-实验2-类与对象
实验报告课程名称面向对象技术(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,并输出这个圆的半径及面积。
Java实验二 Java面向对象程序设计、异常处理
publicvoidwithdraw(longx)throwsInsufficientFundsException{//取款
if(x <=balance) {
balance=balance- x;
System.out.println("取"+ x +"元成功。");
}else
thrownewInsufficientFundsException("余额小于取款额,取款失败。"+"\n");
+this.ImaginaryPart+"i");
}
}
publicclassshiyan4_2_1 {
publicstaticvoidmain(String[]args) {
Complex x1, x2, x3;
x1 =newComplex(2.000F, 3.000F);
x2 =newComplex(3.000F, 5.000F);
System.out.print(f.getMessage());
}
break;
case3:
account.getbalance(account.balance);
break;
}
}
}
}
@SuppressWarnings("serial")
classInsufficientFundsExceptionextendsException {
3.掌握异常的概念和Java异常处理机制,学会异常处理5个关键字的使用;
4.熟悉Applet小程序的特点和运行过程,掌握Applet程序中常用的方法。
实验二-Java面向对象编程初步(2)-陈正宁-2015123349
淮海工学院计算机工程学院实验报告书课程名:面向对象程序设计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实验二面向对象编程s
System.out.println("对应的面积为:" + 对 应 的 周 长 为 :"+
super.doSomething(); System.out.println("in SubClass.doSomething()"); System.out.println("super.x ="+super.x+"sub.x="+x); } } 3. Super public class SuperTest { public static void main(String []args) { SubClass subC = new SubClass(); subC.doSomething(); } } 4. 电话类的设计 1) 父类设计
5
3)固定电话的设计
//固定电话类 class TelePhone extends PhoneClass{ public void PrintTelePhone(){ System.out.println("This is a TelePhone!"); } }
3
4)无绳电话
//无绳电话类 class ColdlessPhone extends TelePhone{ public void PrintfColdless(){ System.out.println("This is a ColelessPhone!"); } }
public float perimeter(){ return (length + wide) * 2; }
3) 主函数中调用ຫໍສະໝຸດ Rectangel rec = new Rectangel(); rec.setLength(7); rec.SetWide(8); System.out.println("长方形的长为:" + rec.geLength()); System.out.println("长方形的宽为:" + rec.getWide());
【兔年惊喜】Java语言程序设计 实验二 面向对象程序设计实验任务二
实验报告课程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程序设计-试验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.实验一
2.实验二
五、实验总结(包括心得体会、问题回答及实验改进意见,可附页)
通过本次实验,我学会了要好好学习java,不然啥都不会。
6、其它:
评定等级:良好日期:2018年7月4日
附五-1、实验总结(包括心得体会、问题回答及实验改进意见,可附页)
问题回答:
1、方法的重载是什么?什么是构造方法的重载?
重载就是几个相同功能的函数用同一个名字;构造方法是可以重载的.比如带参数的构造函数和不带参数的构造函数。
2、简述构造方法的特点?
构造方法名和类名相同,无返回类型,构造方法的调用是在创建一个对象时使用new操作符进行的。构造方法的作用是初始化对象。一个文件只有一个公共类,并且类名跟文件名一致。
实验报告
课程名称:Java程序设计
实验编号
及实验名称
实验二Java面向对象知识
系别
姓名
学号
班级
实验地点
新电602
实验日期
实验时数
6
指导老师
同组其他成员
无
成绩
一、实验目的及要求
通过实验理解Java的类与对象、面向对象思想、内容。
二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等)
1.使用软件:使用软件:JDK,Eclipse
2.实验设备:装有Windows XP的联网的个人计算机
三、实验内容及步骤(包含简要的实验步骤流程)
1.编写一个Java程序,用面向对象知识解决:定义一个student类,包含以下内容:成员变量:学号,姓名,性别,班干部否,JAVA,计算机网络,网页设计。
面向对象程序设计实验报告2
面向对象程序设计实验报告一.实验目的进一步熟悉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程序。
实验二 Java面向对象编程
public Bank() {
customer = new Customer[10];
numberofCustomer = 0;
}
public void addCustomer(Customer aa) {// addCustomer方法
customer[numberofCustomer++] = aa;
·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户姓名;
·添加getFirstName方法:该方法返回客户的firstName实例变量;
·添加getLastName方法:该方法返回客户的lastName实例变量;
·添加getAccount方法:该方法返回客户的account实例变量;
}
public int getnumberofCustomer() {// getNumberOfCustomers方法
return numberofCustomer;
}
public Customer getCustomer(int number) {// getCustomer方法:根据传进来的数组下标返回指定下标的Customers对象。
·添加一个公有方法:getBalance(),用于返回balance的值,返回值是double型;
·该类文件位于包:com.mybank.domain。
3.创建Customer类:
·位于包:com.mybank.domain中;
·向Customer类添加三个实例变量:firstName,lastName,account(Account对象);
public class Customer {//创建Customer类
实验二 面向对象编程实验报告
实验二面向对象编程实验报告一、实验目的本次实验旨在深入理解和掌握面向对象编程的基本概念和方法,通过实际编程操作,提高运用面向对象思想解决问题的能力,熟悉面向对象编程的开发流程和技巧,培养良好的编程习惯和代码规范。
二、实验环境本次实验使用的编程环境为具体编程环境名称及版本,操作系统为操作系统名称及版本。
三、实验内容(一)问题描述设计一个简单的学生管理系统,能够实现对学生信息(包括姓名、学号、年龄、成绩等)的录入、查询、修改和删除操作。
(二)类的设计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面向对象编程实验报告信息工程学院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语言的基本语法,并通过实验项目加强学生的实践能力和代码能力。
课程设置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的对象,修改该对象的年龄,并输出该对象的年龄。
面向对象程序设计(java)实验二
a[i]=i+1; while(number>1) {
for (int i = 0; i < m; i++) {
if (a[i] == 0) continue;
count++; if (count == n) {
a[i] = 0; count = 0; number--; } }
} for (int i = 0; i < m; i++)
if (a[i] != 0) System.out.println("大王的编号是"+a[i]);
}
}
(3)运行结果
(4)四、遇到的问题及解决方案 1、问题 1:冒泡算法的代码出现错误 2、解决方案:查找资料解决 2、问题 2: 解决方案:
五、总结:
本次实验使我能够更加灵活地运用数组,排序算法等,这使我 java 有了更加深入的了解。 我会更加努力地学习 java。
“面向对象程序设计 A”课程实验报告
班级: 学号: 姓名:源自成绩:一、实验名称:java 编程基础(2)
二、实验目标:数组的灵活运用。
三、实验内容及完成情况
1、(此处为每次实验内容) (1)思路:先排序,去掉最高分和最低分,求和再取平均值。 (2)源码 package 实验二;
public class 程序一 {
public static void main(String[] args) { int[] score= {8,9,7,6,3,5,4,2,1,10};int t,sum=0; for(int i=0;i<score.length-1;i++)//进行排序 for(int j=0;j<score.length-1-i;j++) { if(score[j]>score[j+1]) { t=score[j];score[j]=score[j+1];score[j+1]=t; } } for(int i=1;i<score.length-1;i++) sum=sum+score[i]; System.out.println("平均值是:"+(sum/(score.length-2)));
java上机实验二 初步的面向对象的程序设计练习
String name; String id; float comScore; float score ;
步骤(2):在类Student中添加如下方法,并编写代码实现具体方法的功能:
Student(String name,String id, float comScore, float score){……}
步骤(4)定义一个Application程序类Enroll并添加方法:
public static void main(String args[]){……}
staticboolean isEnroll(Student s){……}
步骤(5)保存文件名为Enroll.java,然后编译、调试和运行程序。
}
运行结果:
主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)
实验小结:
本次上机做的是初步的面向对象的程序设计练习,通过两个具体的实例让我基本掌握了类和构造方法的定义,创建类实例的方法以及初步掌握面向对象的编程思想。更加清楚的了解了类、域和方法之间的关系。在做第一道题的时候因为忽略了符号的问题,导致结果总是出错,经过仔细的检查才发现是字符串类型用双引号,字符型用
源程序:
public class TestTriangle {
public static void main(String args[]) {
class Triangle {
private double a,b,c;
Triangle(double a,double b,double c) {
double min;
else System.out.println(a[i].name+" is not enrolled.");
20145215实验二Java面向对象程序设计
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 面向对象的程序设计
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盘建一个“工作目录”的文件夹。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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)四个方法哪些能编译,哪些不能编译,为什么?。