实验六 类和对象

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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(){ //获取实部

相关文档
最新文档