合肥师范学院java实验三

发布时间:

少年易学老难成,一寸光阴不可轻-百度文库

实验三面向对象程序设计
实验要求
1、编写Java应用程序,完成类、对象的创建及使用;完成成员方法和构造方法的创建及使用。
2、掌握权限访问控制符publicprivate的用法;实现类的继承;实现变量的隐藏和方法的重写;实现成员方法和构造方法的重载;掌握多态的意义,学会多态在程序设计中的应用。
3、编写Java应用程序,完成接口的实现;体会抽象类和接口的区别;体会接口的继承原理;将接口和类分别定义在不同的包中,掌握包的使用。
实验内容
1、定义一个学生类,为其添加成员变量为学号、年龄、姓名、班级和学校,其中学号为最终变量,学校为类变量;为其添加构造方法以完成对学生对象的初始化;为其添加成员方法getInfo(),作用是获取学生的所有信息;在main中创建一个学生对象,并验证学生类中所有方法。
packagepackage1;
publicclassStudentsClass{/***@paramargs*/privateStringnumber;privateintage;privateStringname;privateStringclasss;staticStringschool="合肥师范学院";publicStudentsClass(Stringnumber,Stringname,intage,Stringclasss{this.number=number;this.age=age;this.name=name;this.classs=classs;}publicvoidget({System.out.println("学号:"+number;System.out.println("姓名:"+name;System.out.println("年龄:"+age;System.out.println("班级:"+classs;System.out.println("学校:"+school;}publicstaticvoidmain(String[]args{//TODOAuto-generatedmethodstubStudentsClassstu=newStudentsClass("1111100007","wewr",21,"计算机科学与技1

少年易学老难成,一寸光阴不可轻-百度文库

";
stu.get(;}}
2、在第一题的基础上,添加三个成员方法以用来改变年龄、姓名、班级的值;添加五个成员方法以用来分别获取学号、年龄、姓名、班级和学校的值;在main中创建一个学生对象,并验证这些方法。
packagepackage1;
publicclassStudentsClass2{/***@paramargs*/privateStringnumber;privateintage;privateStringname;privateStringclasss;staticStringschool="合肥师范学院";publicStudentsClass2(Stringnumber,Stringname,intage,Stringclasss{this.number=number;this.age=age;this.name=name;this.classs=classs;}publicvoidget({System.out.println("学号:"+number;System.out.println("姓名:"+name;System.out.println("年龄:"+age;System.out.println("班级:"+classs;System.out.println("学校:"+school;}//添加三个成员方法以用来改变年龄、姓名、班级的值;publicvoidsetAge(intage{this.age=age;}publicvoidsetName(Stringname{this.name=name;}publicvoidsetClasss(Stringclasss{this.classs=classs;}2

少年易学老难成,一寸光阴不可轻-百度文库


//添加五个成员方法以用来分别获取学号、年龄、姓名、班级和学校的值;publicstaticStringgetNumber(Stringnumber{returnnumber;}publicstaticintgetAge(intage{returnage;}publicstaticStringgetName(Stringname{returnname;}publicstaticStringgetClasss(Stringclasss{returnclasss;}publicstaticStringgetSchool(Stringschool{returnschool;}publicstaticvoidmain(String[]args{//TODOAuto-generatedmethodstubStudentsClass2stu=newStudentsClass2("1111100007","wewi",21,"计算机科学与技术";
//获取没有修改前的信息,利用五个成员方法分别获取System.out.println("修改前的信息:";System.out.println("学号是:"+getNumber("1111100007";System.out.println("年龄为:"+getAge(21;System.out.println("姓名是:"+getName("wewqi";System.out.println("班级为:"+getClasss("计算机科学与技术";System.out.println("学校是:"+getSchool("合肥师范学院";System.out.println("--------------------------------------------------";System.out.println("--------------------------------------------------";//获取在修改之后的信息,利用两个成员方法进行修改stu.setName("wuyou";stu.setAge(22;stu.setClasss("软件工程";stu.get(;}}
3、修改学生类中成员的访问权限,体会publicprivate两种访问权限的用法。packageclasstest;
publicclassStudentsClass3{3

少年易学老难成,一寸光阴不可轻-百度文库

//4
/**
*@paramargs*/
publicStringnumber;publicintage;
publicStringname;publicStringclasss;
staticStringschool="合肥师范学院";
publicStudentsClass3(Stringnumber,Stringname,intage,Stringclasss{this.number=number;this.age=age;this.name=name;this.classs=classs;}
publicvoidget({System.out.println("学号:"+number;System.out.println("姓名:"+name;System.out.println("年龄:"+age;System.out.println("班级:"+classs;System.out.println("学校:"+school;}
//添加三个成员方法以用来改变年龄、姓名、班级的值;publicvoidsetAge(intage{this.age=age;}
publicvoidsetName(Stringname{this.name=name;}
publicvoidsetClasss(Stringclasss{this.classs=classs;}
添加五个成员方法以用来分别获取学号、年龄、姓名、班级和学校的值;publicstaticStringgetNumber(Stringnumber{returnnumber;}
publicstaticintgetAge(intage{returnage;}
publicstaticStringgetName(Stringname{returnname;}
publicstaticStringgetClasss(Stringclasss{

少年易学老难成,一寸光阴不可轻-百度文库

returnclasss;}publicstaticStringgetSchool(Stringschool{returnschool;}publicstaticvoidmain(String[]args{//TODOAuto-generatedmethodstubStudentsClass3stu=newStudentsClass3("1111100007","youwu",21,"计算机科学与技术";
//获取没有修改前的信息,利用五个成员方法分别获取System.out.println("修改前的信息:";System.out.println("学号是:"+getNumber("1111100007";System.out.println("年龄为:"+getAge(21;System.out.println("姓名是:"+getName("youwu";System.out.println("班级为:"+getClasss("计算机科学与技术";System.out.println("学校是:"+getSchool("合肥师范学院";System.out.println("--------------------------------------------------";System.out.println("--------------------------------------------------";//获取在修改之后的信息,利用两个成员方法进行修改stu.setName("wuyou";stu.setAge(22;stu.setClasss("软件工程";stu.get(;}}
4、定义一个People类,它包含属性有姓名name和性别sex,为People类派生出一个子类Employee类,为其增加两个属性年龄age和工资等级grade,工资等级分ABC个等级,在子类中增加用于打印出员工的姓名、性别、年龄和工资等级的方法print,编写一个应用程序,测试定义的类。
packageclasstest;
//定义一个People类,它包含属性有姓名name和性别sexclassPeople{Stringname;Stringsex;}
//People类派生出一个子类Employee类,为其增加两个属性年龄age和工资等级gradeclassEmployeeextendsPeople{publicintage;5

少年易学老难成,一寸光阴不可轻-百度文库

publicStringgrade;
//构造方法,,,添加异常处理机制,防止等级输入中出现除ABC之外的等级publicEmployee(Stringname,Stringsex,intage,StringgradethrowsException{if(grade=="A"||grade=="B"||grade=="C"{this.name=name;this.sex=sex;this.age=age;this.grade=grade;}else{System.out.println("等级输入有误!";wait(;}/*this.name=name;this.sex=sex;this.age=age;this.grade=grade;*/}publicvoidprint({System.out.println("姓名是:"+name;System.out.println("性别是:"+sex;System.out.println("年龄是:"+age;System.out.println("等级是:"+grade;}}
publicclassPeopleTest4{/***@paramargs*@throwsException*/publicstaticvoidmain(String[]argsthrowsException{//TODOAuto-generatedmethodstubEmployeee=newEmployee("xiaoqiang","male",20,"A";e.print(;}}5定义一个People类,它包含属性有姓名name和性别sex和年龄age一个构造方法,用来初始化这三个属性;定义一个People类的子类Student,添加一个属性学好number,添加两个构造方法,一个有参构造方法,一个无参构造方法,他们都要调用父类的构造方法或本类的构造方法来完成对象的初始化,添加两个成员方法,一个事选课choose(,用来输出“我没有选课”,另一个是选课choose(String,用来选择由参数指定的课程。6

少年易学老难成,一寸光阴不可轻-百度文库

packageclasstest;
//定义一个People类,它包含属性有姓名name和性别sex和年龄age,一个构造方法,用来初始化这三个属性;
classPeople{Stringname;Stringsex;intage;
//一个构造方法,用来初始化这三个属性;publicPeople({}//无参构造方法publicPeople(Stringname,Stringsex,intage{this.name=name;this.sex=sex;this.age=age;}}
classStudentextendsPeople{privateStringnumber;//无参构造方法publicStudent({super(;}
//有参构造方法publicStudent(Stringname,Stringsex,intage,Stringnumber{super(name,sex,age;this.number=number;}publicvoidchoose({System.out.println("我没有选课";}publicvoidchoose(Stringchoose{System.out.println("我的选课是:"+choose;}publicvoidprint({System.out.println("姓名是:"+name;System.out.println("性别是:"+sex;System.out.println("年龄是:"+age;System.out.println("学号是:"+number;}}
publicclassPeopleTest5{7

少年易学老难成,一寸光阴不可轻-百度文库

/***@paramargs*/publicstaticvoidmain(String[]args{//TODOAuto-generatedmethodstubStudentstu=newStudent("旺财","",21,"1310411000";stu.print(;System.out.println("--------------华丽的分割线------------------";System.out.println("第一种情况,没有选课时的信息:";stu.choose(;System.out.println("--------------华丽的分割线------------------";System.out.println("第二种情况,选了课程时的信息:";stu.choose("java";}
}
6、创建一个接口Shape,其中有抽象方法area,类CircleRectangle实现area方法计算其面积并返回,又有Star类实现Shapearea方法,其返回值是0Star类另有一返回值boolean型的方法isStar;在main方法中创建一个数组,根据随机数向其中加入Shape的不同子类对象,然后将数组元素依次取出,判断其是否为Star类,如是返回其个数,否则返回其面积。
packagetest3forjava;interfaceShape{finalstaticdoublePI=3.1415926;doublearea(;}classCircleimplementsShape{doubler;publicCircle({}publicCircle(doubler{this.r=r;}publicdoublearea({returnPI*r*r;}}classRectangleimplementsShape{doublea;doubleb;8

少年易学老难成,一寸光阴不可轻-百度文库


}
publicRectangle(doublea,doubleb{this.a=a;this.b=b;}
publicdoublearea({returna*b;}
classStarimplementsShape{publicdoublearea({return0;}publicstaticbooleanisStar(Shapes{return(sinstanceofStar?true:false;}}
publicclassShapeForInterface{publicstaticvoidmain(String[]args{Circlec=newCircle(5;Rectanglel=newRectangle(3,4;Starstar=newStar(;Shape[]array={c,star,star,l,star,star};for(inti=0,j=1;i此处可进行改进,提高效率{if(Star.isStar(array[i]System.out.println("isStar:"+j++;elseSystem.out.println("notStararea:"+array[i].area(;}}}
实验内容中遇到的问题、解决方法和体会。
答:实验中遇到的0题:1、问题:个实验中,对于等级的含义不明确,一直在思考是不是等级先要定义好或者输入时附带解决办法:仔细审题,后查阅相关资料,确定最终的情况,之后在仔细的书写代码,9

少年易学老难成,一寸光阴不可轻-百度文库

解决问题。2、在第六题中,对接口和抽象类不是太熟悉,导致写代码解决问题时,出现问题,还有在异常处理方面出现一定的问题,比如说try.catch的使用规范化解决办法:仔细的看课本,然后在根据题目,一步一步的解决问题,最后得到正确的结果。
10

合肥师范学院java实验三

相关推荐