实验六 类和对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六类和对象(二)
一、实验目的
掌握类的定义、对象的创建与初始化、变量作用域及值传递。
二、实验要求
1、熟练掌握类的定义,构造方法的使用和对象的创建。
2、掌握方法的重载。
3、掌握变量的不同作用域及重载下变量值的传递。
4、分析程序的运行结果并记录所编写的程序、执行结果以及出错时的处理过程。
三、实验内容
参考书上示例及下面参考程序完成实验任务。
四、参考程序
1、编写一个userName类,包含两个成员变量:firstname,lastname;构建两个构造方法,一个是带参数,一个是不带参数,将firstname和lastname进行初始化;最后构建一个fullName 方法,用来返回全名。
2、变量值传递
class ValueTransfer {
void modify(int i){
i++;
}
void modify(int[] arr){
for(int i=0;i arr[i]=1; } } void modify(SimpleClass s){ s.field=1; } public static void main(String[] args) { ValueTransfer v=new ValueTransfer(); int intValue=0; v.modify(intValue); System.out.println("intValue="+intValue); int[] intArr=new int[1]; intArr[0]=100; v.modify(intArr); System.out.println("intArr[0]="+intArr[0]); SimpleClass s=new SimpleClass(); v.modify(s); System.out.println("s.field="+s.field); } } class SimpleClass{ int field; } 运行结果为: intValue=0 intArr[0]=1 s.field=1 五、实验任务 1. 什么是构造方法?它的作用是什么?怎么调用? 2. 什么叫方法重载? 3. 完成课后实验三。 class Employee{ private String name; private double salary; public Employee(String n,double s){ =n; this.salary=s; } public String getName(){ return ; } public double getSalary(){ return this.salary; } public void raiseSalary(double p){ double raise=salary*p/100; salary=salary+raise; } public static void main(String[] args){ Employee ee[]=new Employee[3]; ee[0]=new Employee("张三",1000); ee[1]=new Employee("李四",2000); ee[2]=new Employee("王五",1800); for(int i=0;i ee[i].raiseSalary(7); System.out.println("名字="+ee[i].getName()+" 薪水="+ee[i].getSalary()); } } } 运行结果为: 名字=张三薪水=1070.0 名字=李四薪水=2140.0 名字=王五薪水=1926.0 4. 公司给员工发工资,定义一个员工类,使用构造方法的重载,一般员工的2000,经理4000,董事长8000,一般员工发工资使用默认的构造方法,经理和董事长发工资使用带参数的。最后打印出不同职位的工资。 public class Employee{ private String job; private double sal; public Employee(){ job = "普通员工"; sal = 2000; } public Employee(String job, double sal){ this.job = job; this.sal = sal; } public String toString(){ return this.job + "\t工资为:" + this.sal; } public static void main(String [] args){ Employee e1 = new Employee(); Employee e2 = new Employee("经理", 4000); Employee e3 = new Employee("董事长", 8000); System.out.println(e1); System.out.println(e2); System.out.println(e3); } } 运行结果为: 普通员工工资为:2000.0 经理工资为:4000.0 董事长工资为:8000.0 5. 编写一个包含不同作用域变量的例子,体会不同作用域的具体含义。 6.编写一个复数类,具有实、虚部成员变量,可以完成加、减、乘、获得实部和虚部等操作,并编写一个主类测试复数类的运算。 class ImaginNo{ private double a;//实部 private double b;//虚部 public void set(double a,double b){ //设置当前复数的值 this.a=a; this.b=b; } public double getA(){ //获取实部