1、JAVA语言程序设计实验五 定义和使用类和对象实验报告 2*大学*学院 JAVA语言程序设计 实验报告实验名称:实验五 定义和使用类和对象班 级:姓 名:学 号:实验地点:日 期:一、实验目的:1、掌握类和构造方法的定义2、理解静态和非静态成员变量的区别3、掌握创建类实例的方法二、实验环境:有Java环境的计算机若干台三、实验内容和要求:1下面是一个教师类Teacher,用于学校某个系部的管理。系部在管理教师时,所关心的信息主要有教师编号、姓名、性别、年龄、家庭住址、电话号码等,于是抽取这些属性来描述教师这个实体。考虑到教师年龄、家庭住址、电话号码等不宜对无关人员公开,于是将这些数据设为私有的
2、成员变量(即实行保护)。要获得这些数据,必须使用类所提供的一组方法,并给出口令。检查口令是否正确是由私有方法checkPasswork完成的。阅读并编译这一程序,体会类的成员变量、类的方法以及访问权限的设计。 要求a:先不看下面代码,自己先设计一个类要求b:阅读下面程序,错误改正后,并进行验证测试。 class Teacher /定义教师类 /声明成员变量 String tCode; /教师编号String tName; /教师姓名 String tSex; /教师性别 private String tAge; /教师年龄 private String tAddr; /家庭住址 private
3、 String tTelenmb; /电话号private String tPassword;/访问口令 /声明构造方法 Teacher(String password) tPassword = password; /声明成员方法 private int checkPassword(String password) /私有方法:检查口令是否正确 if(tPassword=password)return 1; else return 0; void print() System.out.println(tco de=+tCode+n +tname=+tName +tage=+tAge +tAdd
4、r=+tAddr +tTelenmb=+tTelenmb); void setAge(String password,String age) /置年龄 if(checkPassword(password)=1) tAge =age; String getAge(String password) /取年龄 if(checkPassword(password) =1) return tAge; else return Wrong password!; void setAddr(String password,String addr) /置家庭地址 if(checkPassword(password
5、)=1) tAddr =addr; String getAddr(String password) /取家庭地址 if(checkPassword(password)=1) return tAddr; else return Wrong password!; void setTelenmb(String password, String telenmb) /置电话号码 if(checkPassword(password)=1) tTelenmb =telenmb; String getTelenmb(String password) /取电话号码 if(checkPassword(passwo
6、rd) =1) return tTelenmb; else return Wrong password!; public class TestTeacher public static void main(String args) Teacher t1=new Teacher(123);t1.setAge(124,46);/error t1.setAge(123,48);/right t1.setAddr(124,ttt); t1.setAddr(123,学院); t1.setAddr(124,88362146); t1.setTelenmb(123,88362146); t1.print()
7、; 2、参考上题实例,设计学生类class Student /Student是类名 /声明成员变量int sNumber; /学号 String sName; /姓名 String sClass; /班号 public class Check0 /主类Check0 public static void main(String args ) /主方法main Student x= new Student( ); /创建Student类的对象x /访问成员变量 xsName=myname; xsNumber=900001; System.out.println(xsName); System.ou
8、t.println(xsNumber); 若要使Student类可用于一个全校同学的通信录程序,设计一具更完善的Student类,设计时应考虑抽取哪些属性来描述学生这个实体,哪些数据需要保护,应提供哪些方法,等等3、(课堂讲解实例)定义一个银行账户,要求有身份证号码,用户名和密码,余额等属性:定义一个银行账户类,该类中有以下几个属性和方法:class Account int id; String name; float leftmoney; String pass; public boolean withdrawMoney(float amount) public boolean saveMo
9、ney(float amount ) 要求:第一:使用eclipse 给每个属性增加get和set方法,即封装性第二在读余额的属性上要求验证密码第三、完成存钱和取钱的方法,要求也需要密码验证最后写一个类测试账户类。附课堂代码:import javax.swing.JOptionPane;public class account private int ID;private float left;private String pass;public int getID() return ID;public void setID(int iD) ID = iD;public float getLe
10、ft() return left;public void setLeft(float left) this.left = left;public String getPass() return pass;public void setPass(String pass) this.pass = pass;void inqury() String pass1=JOptionPane.showInputDialog(输入密码); if(pass1.equals(getPass() float a=getLeft(); JOptionPane.showConfirmDialog(null, a, 余额
11、, 0);void despoit(float money) left=left+money;void witharaw(float money) left=left-money;class banktestpublic static void main(String args) /account aofzdd =new account(); account aofzdd; aofzdd=new account(); aofzdd.setPass(123); aofzdd.setLeft(456789123); aofzdd.inqury(); 4、编写一个学校类,其中包括成员变量scoreL
12、ine(录取分数线)和对该变量进行设置和获取的方法。1) 编写一个学生类,她的成员变量有考生的name(姓名)、id(考号)、intgretResult(综合成绩)、sports(体育成绩)。它还有获取学生的综合成绩和体育成绩的方法。2) 编写一个录取类,它的一个方法用于判断学生是否符合录取条件。其中录取条件为:综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分。该类中的main()方法建立若干个学生对象,对输出符合录取条件的学生,输出其信息及“被录取”。要求:1) 学生类的构造方法带4个参数,分别接收学生的姓名、考号、综合成绩和体育成绩。2)学校类仅包括静态成员变量和方
13、法四、实验步骤:1.class Teacher /定义教师类 /声明成员变量 String tCode; /教师编号 String tName; /教师姓名 String tSex; /教师性别 private String tAge; /教师年龄 private String tAddr; /家庭住址 private String tTelenmb; /电话号 private String tPassword;/访问口令 /声明构造方法 Teacher(String password) tPassword = password; /声明成员方法 private boolean checkPa
14、ssword(String password) /私有方法:检查口令是否正确 if(tPassword=password) return true; else return false; void print() System.out.println(tcode=+tCode+ntname=+tName+ ntage=+tAge+ntAddr=+tAddr+ntTelenmb=+tTelenmb); void setAge(String password,String age) /置年龄 if(checkPassword(password) tAge =age; String getAge(S
15、tring password) /取年龄 if(checkPassword(password) return tAge; else return Wrong password!; void setAddr(String password,String addr) /置家庭地址 if(checkPassword(password) tAddr =addr; String getAddr(String password) /取家庭地址 if(checkPassword(password) return tAddr; else return Wrong password!; void setTele
16、nmb(String password, String telenmb) /置电话号码 if(checkPassword(password) tTelenmb =telenmb; String getTelenmb(String password) /取电话号码 if(checkPassword(password) return tTelenmb; else return Wrong password!; public class TestTeacher public static void main(String args) Teacher t1=new Teacher(123); t1.s
17、etAge(124,46);/error t1.setAge(123,48);/right t1.setAddr(124,ttt); t1.setAddr(123,学院);/right t1.setAddr(124,88362146); t1.setTelenmb(123,88362146);/right t1.print(); 2.class Student /Student是类名 int sNumber; /学号 String sName; /姓名 String sClass; /班号 private String sAge;/年龄 private String sAddr;/家庭住址 p
18、rivate String sTelenmb;/联系电话 private String sDormitory;/寝室号 private String sPassword;/访问口令 Student(String password) sPassword = password; /声明成员方法 private boolean checkPassword(String password) if(sPassword=password) return true; else return false; void print() System.out.println(sName=+sName+nsNumbe
19、r=+sNumber+nsClass+sClass+ nsage=+sAge+ntAddr=+sAddr+nsTelenmb=+sTelenmb+nsDormitory=+sDormitory); void setAge(String password,String age) /置年龄 if(checkPassword(password) sAge=age; String getAge(String password) /取年龄 if(checkPassword(password) return sAge; else return Wrong password!; void setAddr(S
20、tring password,String addr) /置家庭地址 if(checkPassword(password) sAddr =addr; String getAddr(String password) /取家庭地址 if(checkPassword(password) return sAddr; else return Wrong password!; void setTelenmb(String password, String telenmb) /置电话号码 if(checkPassword(password) sTelenmb =telenmb; String getTele
21、nmb(String password) /取电话号码 if(checkPassword(password) return sTelenmb; else return Wrong password!; void setDormitory(String password, String dormitory) /置寝室号 if(checkPassword(password) sDormitory =dormitory; String getDormitory(String password) /取寝室号 if(checkPassword(password) return sDormitory; e
22、lse return Wrong password!; public class Check0 /主类Check0 public static void main(String args ) /主方法main Student x= new Student(123); /创建Student类的对象x /访问成员变量 x.sName=张三 ; x.sNumber=900001; x.sClass=1801; x.setAge(123, 18); x.setAddr(123, 浙江); x.setTelenmb(123, 10086); x.setDormitory(123, 101); x.pri
23、nt(); 3.import java.util.Scanner;class Account private int id;/身份证号码 private String name;/用户名 private String password;/密码 private float leftmoney;/余额 void setID(int ID) /置身份证号码 id=ID; int getID() /取身份证号码 return id; void setname(String name) /置用户名 this.name=name; String getname() /取用户名 return name; v
24、oid setleftmoney(float leftmoney) /置余额 this.leftmoney=leftmoney; float getleftmoney() /取余额 System.out.println(读余额验证密码); if(inqury() return leftmoney; return 0; void setpassword(String password) /置密码 this.password=password; String getpassword() /取密码 return password; public boolean inqury() /密码验证 Scan
25、ner s=new Scanner(System.in); System.out.println(请输入密码:); String pass=s.next(); if(pass.equals(getpassword() System.out.println(密码正确); return true; else System.out.println(密码错误); return false; public void withdrawMoney(float money) /取钱 System.out.println(取钱验证密码); if(inqury() leftmoney=leftmoney-mone
26、y; public void saveMoney(float money) /存钱 System.out.println(存钱验证密码); if(inqury() leftmoney=leftmoney+money; public class TestAccount /测试账户类 public static void main(String args) Account a1=new Account(); a1.setID(1); a1.setname(我); a1.setpassword(123); a1.setleftmoney(10000); System.out.println(余额为+
27、a1.getleftmoney(); a1.saveMoney(500); System.out.println(存钱5000后的余额为+a1.getleftmoney(); a1.withdrawMoney(100); System.out.println(取钱100后的余额为+a1.getleftmoney(); 4.class Student String name;/姓名 String id;/考号 float intgretResult;/综合成绩 float sports;/体育成绩 public Student(String name,String id,float intgre
28、tResult,float sports) /构造方法 this.name=name; this.id=id; this.intgretResult=intgretResult; this.sports=sports; public void setintgretResult(float intgretResult) /置综合成绩 this.intgretResult=intgretResult; public float getintgretResult() /取综合成绩 return intgretResult; public void setsports(float sports) /置体育
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1