实验四类和对象;类的继承和派生;多态性;接口;构造器应用一、实验目的1、掌握类与对象的关系;2、掌握类的定义;3、掌握对象的声明及使用;4、掌握构造方法的概念及调用时机;5、掌握构造方法的重载;6、掌握匿名对象的使用。
二、实验学时2学时三、实验类型验证性实验四、实验需求1、硬件每位学生配备计算机一台2、软件Windows 7操作系统,JDK,eclipse,MySQL3、网络无4、工具无五、实验理论与预备知识1、类与对象的关系;2、类的定义;3、对象的声明及使用;4、构造方法的概念及调用时机;5、构造方法的重载;6、匿名对象的使用。
六、实验内容与结果1、编写一个应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
//三角形类class Trangle {double sidea,sideb,sidec,sjxzc,sjxmj;boolean boo;public Trangle(double a,double b,double c){sidea=a;sideb=b;sidec=c;if(a+b>c && a+c>b && b+c>a){boo=true;}else{boo=false;}}double getlength(){double length;length=sidea+sideb+sidec;return length;}public double getarea(){if(boo){double area;double p=(sidea+sideb+sidec)/2.0;area=Math.sqrt(p*(p-sidea)*(p-sideb)*(p-sidec));return area;}else{System.out.println("不是一个三角形,不能计算面积");return 0;}}}//梯形类class Laderdouble txsd,txxd,txhigh,txarea;Lader(double a,double b,double c){txsd=a;txxd=b;txhigh=c;}double getarea(){double area;area=(txsd+txxd)*txhigh/2.0;return area;}}//圆形类class Circle{double ybj,yzc,yarea;Circle(double r){ybj=r;}double getarea(){double area;area=3.14*ybj*ybj;return area;}double getlength(){double length;length=2*3.14*ybj;return length;}void setybj(double newybj){ybj=newybj;}double getybj(){return ybj;}}public class one {public static void main (String args[]){double length,area;Circle circle=new Circle(5);Trangle trangle=new Trangle(3,4,5);Lader lader=new Lader(3,4,6);length=circle.getlength();System.out.println("圆的周长:"+length);area=circle.getarea();System.out.println("圆的面积:"+area);length=trangle.getlength();System.out.println("三角形的周长:"+length);area=trangle.getarea();System.out.println("三角形的面积:"+area);area=lader.getarea();System.out.println("梯形的面积:"+area);trangle=new Trangle(1,1,3);area=trangle.getarea();System.out.println("三角形的面积:"+area);length=trangle.getlength();System.out.println("三角形的周长:"+length);}}2、编写一个公司员工类。
(1)数据成员:员工号、姓名、薪水、部门。
(2)方法:①设置数据成员信息;②显示信息。
要求:利用构造方法完成设置信息,其中有四个重载的构造方法单参:只传递员工号,则员工姓名:无名氏。
薪水:0,部门:未定。
双参:传递员工号,姓名,则员工薪水为1000,部门:后勤4参:传递员工号,姓名,部门,薪水无参:数据成员则均为空值class Gsyg{String ygh;double ygxs;String xm,bm;public Gsyg() {}public Gsyg(String ygh) {this.xm="无名氏";this.ygh=ygh;this.bm="未定";this.ygxs=0;}public Gsyg(String ygh,String xm){this.xm=xm;this.ygh=ygh;this.bm="后勤";this.ygxs=1000;}public Gsyg(String ygh,String xm,String bm,double ygxs) {this.xm=xm;this.ygh=ygh;this.bm=bm;this.ygxs=ygxs;}public void print() {System.out.println("员工号:"+this.ygh+" "+"员工姓名:"+this.xm+" "+"员工薪水"+this.ygxs+" "+"员工所在部门:"+this.bm);}}public class two {public static void main(String args[]){Gsyg a=new Gsyg();Gsyg b=new Gsyg("20200202");Gsyg c=new Gsyg("20200202","姓名");Gsyg d=new Gsyg("20200202","姓名","语言处",22222);a.print();b.print();c.print();d.print();}}3、完成图书馆管理系统中相关的类定义。
(1)定义与编写学生student类,学生属性包括“学号”、“姓名”、“性别”、“专业”、“班级”。
(2)定义与编写图书book类,图书属性包括“书名”、“ISBN号”、“册数”。
(3)登陆角色role类,角色类包括“用户名”、“密码”、“角色类型”。
要求:1、完成以上各类中的setter和getter接口。
2、测试以上各类,并写出每个测试用例。
class Student{int xh;String xm,xb,zy,bj;public Student (String xm,String xb,String zy,String bj,int xh) { this.setXm(xm);this.setXb(xb);this.setZy(zy);this.setBj(bj);this.setXh(xh);}public String getXm() {return xm;}public void setXm(String xm) {this.xm=xm;}public String getXb() {return xb;}public void setXb(String xb) {this.xb=xb;}public String getZy() {return zy;}public void setZy(String zy) {this.zy=zy;}public String getBj() {return bj;}public void setBj(String bj) {this.bj=bj;}public int getXh() {return xh;}public void setXh(int xh) {this.xh=xh;}}class Book{int isbn,cnum;String sm;public Book(int isbn,int cnum,String sm) {this.setIsbn(isbn);this.setCnum(cnum);this.setSm(sm);}public int getIsbn() {return isbn;}public void setIsbn(int isbn) {this.isbn=isbn;}public int getCnum() {return cnum;}public void setCnum(int cnum) {um=cnum;}public String getSm() {return sm;}public void setSm(String sm) {this.sm=sm;}}class Role{int mima;String yhname,jstype;public Role(int mima,String yhname,String jstype){ this.setMima(mima);this.setYhname(yhname);this.setJstype(jstype);}public int getMima() {return mima;}public void setMima(int mima) {this.mima=mima;}public String getYhname() {return yhname;}public void setYhname(String yhname) {this.yhname=yhname;}public String getJstype() {return jstype;}public void setJstype(String jstype) {this.jstype=jstype;}}public class four {public static void main(String args[]) {//student类Student s1=new Student("陈红军","男","计算机科学与技术","2018级计算机科学与技术本科班",20);System.out.println("姓名:"+s1.getXm());System.out.println("姓别:"+s1.getXb());System.out.println("专业:"+s1.getBj());System.out.println("班级:"+s1.getZy());System.out.println("学号:"+s1.getXh());//book类Book b1=new Book(123456,20,"JAVA编程");System.out.println("书名:"+b1.getSm());System.out.println("ISBN号:"+b1.getIsbn());System.out.println("册数:"+b1.getCnum());//Role类Role r1=new Role(123,"chj","射手类");System.out.println("用户名:"+r1.getYhname());System.out.println("密码:"+r1.getMima());System.out.println("角色类型:"+r1.getJstype());}}4、字符串操作。