创建一个employee类

合集下载

employee类的无参构造方法书写

employee类的无参构造方法书写

employee类的无参构造方法书写在面向对象编程中,构造函数是一种特殊的函数,用于对对象进行初始化。

其中,类的无参构造函数是一种特殊的构造函数,它不需要参数来进行初始化,而是使用默认的初始值进行初始化。

例如,定义一个Employee类,代表一个雇员,则可以使用以下无参构造函数进行初始化:public Employee(){this.ID = null;this.firstName = null;stName = null;this.salary = 0;}上面的代码使用无参构造函数创建了一个新的Employee对象,并将其ID、firstName、lastName和salary属性设置为默认值,分别为null、null、null和0。

一般来说,在类的定义中,只要定义了无参构造函数,类的实例就可以使用无参构造函数进行实例化,而不需要使用带有参数的构造函数。

使用无参构造函数的优点有很多,其中最主要的一点是可以明确表明类的初始状态,无论程序的具体实现如何,都可以明确知道类实例的初始值。

有了这样的初始值,就可以方便地判断类实例的当前状态,进而采取有效的处理措施。

另外,无参构造函数可以提高代码的可读性、可维护性和可复用性。

例如,假如有多个类的实例,他们的一部分可以使用同一个无参构造函数进行初始化,从而简化代码,使得整个程序可以更加高效。

然而,类的无参构造函数也并不是万能的,也存在一些缺点。

例如,无参构造函数使得类实例的初始状态比较固定,无法满足不同类实例使用不同初始值的需求,而且会有一些额外的限制,比如不能使用带有参数的构造函数进行初始化。

另外,使用无参构造函数进行初始化时,容易出现默认值的冲突,比如两个类实例的某一属性的初始值都是0,则它们的实际值其实是一样的,而程序实际运行过程中可能会遇到一些困难。

总之,类的无参构造函数具有很多优点,可以方便地应用于类的实例进行初始化,提高代码的可读性、可维护性和可复用性。

第9章 面向对象编程习题及答案

第9章 面向对象编程习题及答案

1、关于python类说法错误的是:A 类的实例方法必须创建对象后才可以调用B 类的实例方法必须创建对象前才可以调用C 类的类方法可以用对象和类名来调用D 类的静态属性可以用类名和对象来调用答案:B2、如下类的定义,下列描述错误的是?class A(object):passclass B(A):passb=B()A、i sinstance(b,A)==TrueB、isinstance(b,object)==TrueC、i ssubclass(B,A)==TrueD、i ssubclass(b,B)==True答案:D3、定义类如下class Hello():def __init__(self,name)=namedef showInfo(self)print()下面代码能正常执行的:A、h = Helloh.showInfo()B、h = Hello()h.showInfo(‘张三’)C、h = Hello(‘张三’)h.showInfo()D、h = Hello(‘admin’)showInfo答案:C4、导入模块的方式错误的是:A、i mport moB、from mo import *C、i mport mo as mD、i mport m from mo答案:D5、以下关于模块说法错误的是:A、一个xx.py就是一个模块B、任何一个普通的xx.py文件可以作为模块导入C、模块文件的扩展名不一定是 .pyD、运行时会从制定的目录搜索导入的模块,如果没有,会报错异常答案:C6、多重继承的执行顺序,请解答以下输出结果是什么?并解释。

class A(object):def __init__(self):print('A')super(A, self).__init__()class B(object):def __init__(self):print('B')super(B, self).__init__()class C(A):def __init__(self):print('C')super(C, self).__init__()class D(A):def __init__(self):print('D')super(D, self).__init__()class E(B, C):def __init__(self):print('E')super(E, self).__init__()class F(C, B, D):def __init__(self):print('F')super(F, self).__init__()class G(D, B):def __init__(self):print('G')super(G, self).__init__()g = G()f = F()答案:GDABFCBDA7、编写程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法ToFahrenheit(将摄氏温度转换为华氏温度)和ToCelsius(将华氏温度转换为摄氏温度),其中,(华氏度-32)*5/9=摄氏度,摄氏度*9/5+32=华氏度答案:class Temperature:def __init__(self, degree):self.degree = degreedef toFahrenheit(self):return self.degree*9/5 + 32def toCelsius(self):return (self.degree -32) * 5/9n1 = float(input("请输入摄氏温度:"))t1 = Temperature(n1)print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(n1, t1.toFahrenheit()))n2 = float(input("请输入华氏温度:"))t2 = Temperature(n2)print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(t2.toCelsius(), n2))8、定义一个至少有两个方法的类: getString:从控制台输入获取字符串 printString:打印输入字符串对应的大写形式。

声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及chang_name等函数

声明一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及chang_name等函数

//和display()等函数。

display()显示姓名、街道地址、城市和邮编等属性,chang_name()改变//对象的姓名属性,实现并测试这个类。

#include <>int i,j,k;//char name1[],add1[],city1[],postCode1[];class Employee{public:Employee(char name1[],char add1[],char city1[],char postCode1[]) ;void set();void change_name();void display();void jixu();private:char *name,*add,*city,*postCode,*name1;};Employee::Employee(char name1[],char add1[],char city1[],char postCode1[]) {name = name1;add =add1;city = city1;postCode = postCode1;}void Employee::change_name(){cin>>name1;name=name1;}void Employee::set(){char name1[10], add1[10],city1[10], postCode1[10];name = name1;add =add1;city = city1;postCode = postCode1;}void Employee::display(){cout << " 姓名 : " << name << endl;cout << " 街道地址 : " << add << endl;cout << " 城市 : " << city << endl;cout << " 邮政编码 : " << postCode << endl;}void Employee::jixu(){cout<<endl<<endl<<endl;cout<<"是否要修改姓名信息:"<<endl<<" 1、是2、否"<<endl;cin>>i;if(i==1) k=1;if(i==2) k=0;}void main(){Employee abc("小明","建设一路","武汉","100056");cout<<"修改前属性信息:"<<endl;();j=1;while(j){j=0;();j=k;if(j==1){cout<<"请输入姓名信息:"<<endl<<" ";//cin>>name1;();();();}}}。

类与对象的复习与练习

类与对象的复习与练习

一选择题1.下面方法定义中,正确的是:A)int x(int a,b){return a-b;}B)double x(int a,int b){int w;w=a-b;}C)double x(a,b){return b;}D)int x(int a,int b){return a-b;}2.下面方法定义中,不正确的是:A)float x(int a,int b){return a-b;}B)int x(int a,int b){return a-b;}C)int x(int a,int b){return a*b;}D)int x(int a,int b){return 1.2*(a-b);}3下面方法定义中,正确的是:A)int x(){char ch='a';return (int)ch;}B)void x(){return true;}C)int x(){return true;}D)int x(int a,b){return a-b;}4设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是?X x1=new X(); B)X x1= X ( );C)X x1=new Y( ); D)int X x1;5设A为已定义的类名,下列声明并创建A 类的对象a的语句中正确的是?A)A a=new A( ); B)public A a=A( );B)C)A a=new class( ); D)a A;6下面类的定义中结构正确的是?A)class A B)class 2A C)int class A D)public class A ()7下面关于类的结构的说法正确的是?A)类只能包含一个构造方法B)类可以没有属性C)类只能包含方法D)类只能包含属性8下面哪个关键字在定义类头时用不到?A)class B)public C)extends D)int339 this在程序中代表的是?A)类的对象B)属性C)方法D)父类10下列对构造方法的调用方式的描述中正确的是?A)使用new调用B)使用类名调用C)使用对象名调用D)调用方法为对象名.方法名()11 以下关于构造函数的描述错误的是?A)构造函数的返回类型只能是void型B)构造函数是类的一种特殊函数,它的方法名必须与类名相同C)构造函数的主要作用是完成对类的对象的初始化工作D)一般在创建新对象时,系统会调用构造函数12下列构造方法的调用方式中,正确的A)按照一般方法调用B)由用户直接调用C)只能通过new自动调用D)不用调用,自动执行13有一个类A,以下为其构造方法的声明,其中正确的是?A) v oid A(int x)B)A(int x)C)a(int x)D)void a(int x)14设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( )。

经理与员工工资案例java

经理与员工工资案例java

经理与员工工资案例java一、背景介绍在企业中,经理和员工的薪资是一项非常重要的问题。

如果薪资分配不公,就会影响到员工的积极性和团队合作精神,进而影响到企业的发展。

因此,对于经理和员工的薪资制度设计和实施非常重要。

二、案例描述假设某公司有10个员工,其中有5个普通员工、3个高级员工和2个经理。

公司规定普通员工每月底薪为3000元,高级员工每月底薪为5000元,经理每月底薪为8000元。

此外,公司还规定了以下奖金制度:1. 普通员工:按照月度销售额给予2%的销售提成。

2. 高级员工:按照月度销售额给予5%的销售提成。

3. 经理:按照公司整体利润给予10%的年终奖。

现在需要编写一个Java程序来计算每个员工的实际收入,并输出结果。

三、解决方案1. 设计Employee类首先需要设计一个Employee类来表示每个员工。

该类包含以下属性:- name:姓名- position:职位(普通员工、高级员工或经理)- baseSalary:底薪- sales:月度销售额- profit:公司整体利润该类还包含以下方法:- 构造方法:根据职位设置底薪。

- getSalary()方法:计算实际收入,包括底薪和奖金。

2. 编写程序在主程序中,创建10个Employee对象,分别表示10个员工。

根据每个员工的职位、销售额和公司利润,计算出每个员工的实际收入,并输出结果。

四、代码实现1. Employee类```public class Employee {private String name;private String position;private double baseSalary;private double sales;private double profit;public Employee(String name, String position) { = name;this.position = position;if (position.equals("普通员工")) {this.baseSalary = 3000;} else if (position.equals("高级员工")) {this.baseSalary = 5000;} else if (position.equals("经理")) {this.baseSalary = 8000;}}public void setSales(double sales) {this.sales = sales;}public void setProfit(double profit) {this.profit = profit;}public double getSalary() {double salary = baseSalary;if (position.equals("普通员工")) {salary += sales * 0.02; // 计算销售提成} else if (position.equals("高级员工")) {salary += sales * 0.05; // 计算销售提成} else if (position.equals("经理")) {salary += profit * 0.1; // 计算年终奖}return salary;}public String toString() {return "姓名:" + name + ",职位:" + position + ",实际收入:" + getSalary();}}```2. 主程序```public class Main {public static void main(String[] args) {Employee[] employees = new Employee[10];employees[0] = new Employee("张三", "普通员工");employees[1] = new Employee("李四", "普通员工");employees[2] = new Employee("王五", "普通员工");employees[3] = new Employee("赵六", "普通员工");employees[4] = new Employee("钱七", "普通员工");employees[5] = new Employee("孙八", "高级员工");employees[6] = new Employee("周九", "高级员工");employees[7] = new Employee("吴十", "高级员工");employees[8] = new Employee("郑一", "经理");employees[9] = new Employee("陈二", "经理");for (int i = 0; i < 10; i++) {if (employees[i].getPosition().equals("普通员工") || employees[i].getPosition().equals("高级员工")) {double sales = Math.random() * 100000; // 随机生成销售额employees[i].setSales(sales);} else if (employees[i].getPosition().equals("经理")) {double profit = Math.random() * 1000000; // 随机生成公司利润employees[i].setProfit(profit);}System.out.println(employees[i]);}}}```五、运行结果运行程序,输出每个员工的实际收入:```姓名:张三,职位:普通员工,实际收入:3600.0 姓名:李四,职位:普通员工,实际收入:3900.0 姓名:王五,职位:普通员工,实际收入:3200.0 姓名:赵六,职位:普通员工,实际收入:3700.0 姓名:钱七,职位:普通员工,实际收入:3800.0 姓名:孙八,职位:高级员工,实际收入:7505.8 姓名:周九,职位:高级员工,实际收入:8537.9 姓名:吴十,职位:高级员工,实际收入:7275.7 姓名:郑一,职位:经理,实际收入:80800.8 姓名:陈二,职位:经理,实际收入:240873.3 ```六、总结与思考通过本案例,可以看出Java语言的面向对象特性在实际开发中的应用。

C程序设计实验指导

C程序设计实验指导

《C++程序设计》实验指导目录实验0 认识开发环境........................................错误!未定义书签。

实验1 数据类型与输入输出............................错误!未定义书签。

实验2 分支语句 ................................................错误!未定义书签。

实验3 循环语句 ................................................错误!未定义书签。

实验4 函数和程序结构....................................错误!未定义书签。

实验5 数组 ........................................................错误!未定义书签。

实验6 指针和引用 ............................................错误!未定义书签。

实验7 类和对象 ................................................错误!未定义书签。

实验8 继承和派生 ............................................错误!未定义书签。

实验9 多态 ........................................................错误!未定义书签。

实验10 输入/输出流.........................................错误!未定义书签。

实验0 认识开发环境实验目的●了解和使用集成开发环境。

●熟悉集成开发环境的基本编辑命令及功能键,学会常规窗口操作,熟悉常用的菜单命令。

●学习完整的C++程序开发过程(编辑、编译、连接、调试、运行及查看结果)。

C#2005 创建员工类和管理员类

C#2005  创建员工类和管理员类
表4-3员工信息
内容
类型
说明
employeeID
string
用于存储员工编号
employeeName
string
用于存储员工姓名
employeeAge
string
用于存储员工性别
employeeDepartment
string
用于存储员工所在部门
employeeWork
string
用于存储员工职位
employeeSalary
public void InsertEmployee()
{
//处理插入
System.Console.WriteLine("添加员工成功!");
}
public void UpdateEmployee()
{
//处理更新
System.Console.WriteLine("修改员工信息成功!");
}
//其他处理...
//...
}
在上述代码中,每个属性都包含两个代码块,其中get块包含的是在读取属性时要执行的语句;set块包含的是在写入属性时要执行语句。属性的类型指定了由get和set这两种读取和写入的数据的类型。ShowAdminInfo()作为Admin类中的方法,它用于显示管理员的相关信息。
(4)员工信息应包括员工的编号、姓名、性别、年龄、所在部门、职位、工资、联系电话、联系地址、邮政编码等。下面我们来看一下有关员工信息所包括的内容,具体如表4-3所示:
public class Admin
{
string adminID; //记录管理员编号
string adminName; //记录管理员姓名

oracle创建类型

oracle创建类型

oracle创建类型在Oracle中,你可以使用`CREATE TYPE`语句来定义一个用户自定义类型。

以下是创建用户自定义类型的步骤和示例:步骤 1: 登录到Oracle数据库首先,你需要使用适当的工具(如SQLPlus)连接到你的Oracle数据库。

步骤 2: 创建类型你可以使用`CREATE TYPE`语句来定义一个用户自定义类型。

以下是一个简单的示例,创建一个名为`EmployeeType`的类型,该类型包含两个属性:`EmployeeID`和`EmployeeName`:```sqlCREATE TYPE EmployeeType AS OBJECT (EmployeeID NUMBER,EmployeeName VARCHAR2(100));在这个示例中,我们定义了一个名为`EmployeeType`的对象类型,它有两个属性:`EmployeeID`和`EmployeeName`。

步骤 3: 使用类型一旦你创建了类型,你就可以在表或其他对象中使用它。

例如,你可以创建一个表,该表使用`EmployeeType`作为其一部分:```sqlCREATE TABLE Employees (ID NUMBER PRIMARY KEY,EmployeeObj EmployeeType);```在这个示例中,我们创建了一个名为`Employees`的表,该表包含一个名为`ID`的列和一个名为`EmployeeObj`的列,该列使用我们之前创建的`EmployeeType`类型。

示例总结1. 连接到Oracle数据库。

2. 使用`CREATE TYPE`语句定义一个用户自定义类型。

3. 在其他对象(如表)中使用该类型。

注意:在创建类型之前,请确保你有足够的权限来执行这些操作,并且始终在生产环境中测试你的代码以确保其功能正常。

创建一个employee类

创建一个employee类

创建一个employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。

把表示构造函数、changname()、display()的函数的原型放在类定义中,构造函数初始化每个成员,display()函数把完整的对象数据打印出来。

其中的数据成员是保护的,函数是公共的。

#include<iostream.h>#include<string.h>class employee{protected:char name[10]; // 姓名char street[20]; // 街道地址char city[10]; // 市char prov[10]; // 省char post[7]; // 邮政编码int no; // 记录序号public:employee(char [],char [],char [],char [],char [],int);void changename(char str[]);void display();};employee::employee(char n[],char s[],char c[],char p1[],char p2[],int num){strcpy(name,n);strcpy(street,s);strcpy(city,c);strcpy(prov,p1);strcpy(post,p2);no=num;}void employee::changename(char n[]){strcpy(name,n);}void employee::display(){cout<<"输出记录"<<no<<endl;cout<<" 姓名:"<<name<<endl;cout<<"街道地址:"<<street<<endl;cout<<" 市:"<<city<<endl;cout<<" 省:"<<prov<<endl;cout<<"邮政编码"<<post<<endl;}void main(){employee obj1("王华","中华路15号","武汉市","湖北省","430070",1); employee obj2("杨丽","天津路30号","南京市","江苏市","210020",2); obj1.display();obj2.display();}还可以这么写:class Employee{public:Employee(char* n,char* a,char* c,char* s,char* z);void ChangeName(char* n);void Display();protected:char name[20];char addr[40];char city[20];char state[20];char zip[10];};Employee::Employee(char* n,char* a, char* c, char* s, char* z){strncpy(name,n,20);name[19]='\0';strncpy(addr,a,40);addr[39]='\0';strncpy(city,c,20);city[19]='\0';strncpy(state,s,20);state[19]='\0';strncpy(zip,z,10);zip[9]='\0';}void Employee::ChangeName(char* n) {strncpy(name,n,20);name[19]='\0';}void Employee::Display(){cout <<name <<endl<<addr <<" " <<city <<endl<<state <<" "<<zip <<endl;}。

实验报告(类和对象1)

实验报告(类和对象1)

面向对象的编程C++ 课程实验报告课程名称面向对象的编程C++班级B0901 实验日期姓名贺军学号09405020107 实验成绩实验名称实验:类和对象(1)实验目的及要求了解面向对象程序设计基本原理及主要特点——抽象、封装、继承和多态,掌握类和对象的概念以及如何利用类来解决具体问题。

实验环境Visual C++集成环境、Windows XP 操作系统实验内容1. 写出声明一个称为Employee的类的代码,该类有一下数据成员:age、yearsOfService、Salary;重写Employee类使其数据成员为私有并提供公有方法来获得和设置每个数据成员;写一个带有Employee类的程序,生成两个Employees;设置它们的age、yearsOfService和Salary;且打印它们的值。

2. 定义一个Dog类,包含name、age、sex和weight等属性及对这些属性的操作方法。

实现并测试这个类。

参考输出结果:算法描述及实验步骤定义一个类Employee。

在主函数中,定义了该类的两个一般对象d1和d2,有定义了一个指向类Employee的指针pd,初始化后它指向对象d2。

通过调试成员函数setEmployee()分别给对象d1和d2进行了赋值,即改变了这两个对象的数据成员的值。

根据给出的四个条件设置不同的类型的参数,在根据类的定义格式写出程序。

在定义name时,一定要注意设置参数。

调试过程及实验结果总结(对实验结果进行分析,问题回答,实验心得体会及改进意见)附录第一个程序:#include<iostream.h>class Employee{public:void setEmployee(int a,int b,int c){age=a;yearofservice=b;salary=c;}void Print(){cout<<"age="<<age<<"yearofservice="<<yearofservice<<"salary="<<salary<<endl;}private:int age,yearofservice,salary;};void main(){第二个程序:#include <iostream.h>#include <string.h>class Dog{public:Dog(char a[],int b,char c,float d){strcpy(name,a);age=b;sex=c;weight=d;}void print(){cout<<"Dog'name:"<<name<<endl;cout<<"Dog'age:"<<age<<endl;cout<<"Dog'sex:"<<sex<<endl;cout<<"Dog'weight:"<<weight<<endl;Employee d1,d2,*pd=&d2;d1.setEmployee(26,2,5000); pd->setEmployee(34,1,4800); d1.Print();d2.Print();}}private:char name[20];int age;char sex;float weight;};void main(){Dog d("旺财",3,'m',2.4);d.print();}。

employee类的无参构造方法书写

employee类的无参构造方法书写

employee类的无参构造方法书写实现员工类之无参构造方法的书写提供的解决思路,本文将以Java语言作为实现的编程语言进行演示。

一、定义Employee类首先,需要定义一个类Employee,它的定义如下:public class Employee {private int id;private String name;private int age;//他属性和方法}上面的Employee类定义既有属性,也有方法,但这里不再赘述,下面将重点介绍它的构造函数。

二、实现无参构造函数要实现Employee类的无参构造函数,语法如下:public Employee() {// 代码}完整的代码如下:public class Employee {private int id;private String name;private int age;public Employee(){// 代码}//他属性和方法}现在,Employee类已经具有无参构造函数,但它不能什么都不做,它必须做一些基本的初始化工作。

三、进行基本初始化1.先,声明默认值:public Employee(){this.id = 0; =this.age = 0;}2.,可以使用随机数给id赋值:public Employee(){this.id = new Random().nextLong(); =this.age = 0;}3.次,可以使用当前时间来给name赋值:public Employee(){this.id = new Random().nextLong(); = new SimpleDateFormat(yyyy-MM-ddHH:mm:ssformat(new Date());this.age = 0;}四、编写测试方法为了测试Employee类的无参构造函数,我们可以编写一个测试方法:public static void main(String[] args){Employee employee = new Employee();System.out.println(编号: + employee.getId());System.out.println(姓名: + employee.getName());System.out.println(年龄: + employee.getAge());}五、运行测试运行测试之后,可以得到下面的结果:编号:xxx姓名:yyyy-MM-dd HH:mm:ss年龄:0这就是使用Java实现Employee类无参构造函数的实现过程,可以看到,无参构造函数非常简单,仅需定义和初始化属性,即可实现,但它也有一定的局限性,不能实现初始化复杂对象的操作,比如将文件中的数据读取到对象中、将数据库中的数据读取到对象中等。

定义并测试一个代表员工的Employee类。

定义并测试一个代表员工的Employee类。

//定义并测试一个代表员工的Employee类。

员工属性包括“编号“、“姓名”、“基本工资”、“薪水增长额”,还包括计算薪水增长额及计算增长后的工资总额的操作方法。

class Employee{private String number;//员工编号private String name;//员工姓名private int salary;//员工基本工资private int increase;//员工薪水增长额public Employee(String number,String name,int salary,int increase)//用构造方法接收输入的所有参数{this.number=number;=name;this.salary=salary;this.increase=increase;}public String getNumber(){return number;}public void setNumber(String number){this.number=number;}public String getName(){return name;}public void setName(String name){=name;}public int getSalary(){return salary;}public void setSalary(int salary){this.salary=salary;}public int getIncrease(){return increase;}public void setIncrease(int increase){this.increase=increase;}public int sum()//计算工资总额{return salary+increase;}public void print()//用于输出{System.out.print("员工编号:"+this.number+"\n"+"员工姓名:"++"\n"+"基本工资:"+this.salary+"\n"+"总工资:"+this.sum());}}public class Test02{public static void main(String args[]){Employee emp=new Employee("num-03","张三",5000,250);//实例化对象emp.print();}}。

java多态练习题

java多态练习题

Java多态练习题一、选择题A. 多态是指同一方法可以根据对象的不同而有不同的实现B. 多态只能用于类的继承关系中C. 在Java中,方法重载不属于多态D. 多态可以提高代码的可扩展性和可维护性A. extendsB. implementsC. staticD. overrideA. 可以直接调用子类的特有方法B. 必须进行类型转换才能调用子类的特有方法C. 可以调用父类的所有方法D. 无法调用任何方法二、填空题1. 在Java中,多态的三个必要条件是:________、________和________。

2. 当子类重写父类的方法后,可以使用________关键字来调用父类的方法。

3. 在Java中,________关键字用于判断两个对象的类型是否相同。

三、判断题1. 多态允许同一操作作用于不同的对象,产生不同的执行结果。

()2. 方法重载(Overload)和方法重写(Override)都是实现多态的方式。

()3. 在Java中,子类对象可以直接赋值给父类引用,而无需进行类型转换。

()四、简答题1. 请简述Java中多态的作用。

2. 请说明方法重写(Override)和方法重载(Overload)的区别。

3. 在使用多态时,如何访问子类特有的方法?五、编程题1. 定义一个动物类(Animal),包含一个吃(eat)的方法。

再定义一个狗类(Dog),继承动物类,并重写吃(eat)方法。

编写一个测试类,创建一个动物类引用,指向一个狗对象,并调用吃(eat)方法。

2. 编写一个图形类(Shape),包含一个求面积(getArea)的方法。

再定义两个子类:矩形类(Rectangle)和圆形类(Circle),分别重写求面积(getArea)方法。

编写一个测试类,创建一个图形数组,包含矩形和圆形对象,遍历数组并调用求面积(getArea)方法。

3. 定义一个员工类(Employee),包含姓名、工资等属性,以及一个计算工资(calculateSalary)的方法。

java 实现员工工资类

java  实现员工工资类
import java.util.*;
public class EmployeeTest
{
public static void main(String[] args)
{ //将三个员工对象的数据赋值给职工数组
Employee[] staff = new Employee[3];
staff[0] = new Employee("张三", 75000,1987, 12, 15);
}
private String name;//声明员工名称
private double salary;//声明员工工资
private Date hireDay;//声明工作时间
}
(2)添加EmployeeTest类,在主方法中声明3个Employee类型实例,并每个进行多参构造。然后通过for循环输出员工信息,所有代码如下所示。
// GregorianCalendar计算月份从0开始
hireDay = calendar.getTime();
}
public String getName()//构造getXXX方法
{
return name;
}
public double getSalary()//构造getXXX方法
{
return salary;
}
public Date getHireDay()//构造getXXX方法
{
return hireDay;
}
public void raiseSalary(double byPercent)//声明方法计算员工工资
{
double raise = salary * byPercent / 100;

employee类的无参构造方法书写

employee类的无参构造方法书写

employee类的无参构造方法书写员工类(EmployeeClass)是一种用来封装描述员工信息的Java类,它可以帮助我们更好地管理员工信息,从而更有效地运行一个组织。

员工类有很多不同类型的构造方法,其中无参构造方法是最简单的一种。

无参构造方法(default constructor)是一种不需要任何参数即可运行的构造方法,它用来创建一个新的实例,而不需要任何额外的信息。

它最简单的形式如下:public Employee() {// constructor code}这个无参构造方法用来创建一个新的员工实例,但是这个实例还没有任何的信息。

我们可以通过设置类的属性来为新创建的实例赋值,从而得到我们期望的结果。

要完成这一步骤,需要使用setter方法(setter methods)。

Setter方法是一种用来更改对象属性值的特殊方法。

例如,如果想要给一个员工实例一个新的姓名,可以这样写:public void setName(String name){ = name;}在调用setter方法之后,我们就可以把这个实例中的某个属性修改为指定的值。

通过设置属性,我们可以把一个完整的员工信息保存到一个实例中。

当开发的系统中需要创建多个员工实例时,无参构造方法就有用武之地了。

使用无参构造方法可以简便地创建出一个新实例,而不用每次都写一大堆代码。

这样一来可以提高程序开发的效率,有助于提高软件开发效率。

当开发员工类时,无参构造方法也起到重要作用。

首先,它可以使新的员工实例的创建更加简单,减少编写代码的工作量,而且还可以避免出现与参数数量不符的错误。

其次,使用无参构造方法还可以让代码更加简洁,更易读。

从上面可以看出,无参构造方法对于员工类的开发有着重要的作用。

针对员工类,如果我们不使用无参构造方法,就必须编写每一个实例所需要的所有参数,这显然是一件很繁琐的事情。

另一方面,使用无参构造方法可以让我们更加简单的创建出新的实例,而且可以通过调用setter方法来更新实例中的属性值。

实现一个名为Person的类和它的子类Employee,Employee有两个子类Facu。。。

实现一个名为Person的类和它的子类Employee,Employee有两个子类Facu。。。

实现⼀个名为Person的类和它的⼦类Employee,Employee有两个⼦类Facu。

(1)Person类中的属性有:姓名name(String类型),地址address(String类型),电话号码telphone(String类型)和电⼦邮件地址email(String类型);(2)Employee类中的属性有:办公室office(String类型),⼯资wage(double类型),受雇⽇期hiredate(String类型);(3)Faculty类中的属性有:学位degree(String类型),级别level(String类型);(4)Staff类中的属性有:职务称号duty(String类型)。

package com.chuoji.text01;public class Person {private String name;private String address;private String telphone;private String email;public String getName() {return name;}public void setName(String name) { = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getTelphone() {return telphone;}public void setTelphone(String telphone) {this.telphone = telphone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}package com.chuoji.text01;public class Employee extends Person {private String office;private double wage;private String hiredate;public String getOffice() {return office;}public void setOffice(String office) {this.office = office;}public double getWage() {return wage;}public void setWage(double wage) {this.wage = wage;}public String getHiredate() {return hiredate;}public void setHiredate(String hiredate) {this.hiredate = hiredate;}}package com.chuoji.text01;public class Faculty extends Employee {private String degree;private String level;public String getDegree() {return degree;}public void setDegree(String degree) {this.degree = degree;}public String getLevel() {return level;}public void setLevel(String level) {this.level = level;}}package com.chuoji.text01;public class Staff {private String duty;public String getDuty() {return duty;}public void setDuty(String duty) {this.duty = duty;}}package com.chuoji.text01;public class ceshi {public static void main(String[] args) {Faculty a=new Faculty();a.setName("⼩张");a.setTelphone("184********");a.setDegree("本科");a.setLevel("⼀级");a.setEmail("33695422@");System.out.println("员⼯姓名:"+a.getName()+" 电话:"+a.getTelphone());System.out.println(" 学位:"+a.getDegree()+" 级别:"+a.getLevel()+" 邮箱:"+a.getEmail()); }}。

设计某小型公司的 employee(人员)类

设计某小型公司的 employee(人员)类

{ if(n==Getno(*persons[i])) { cout<<"\n\n1:名字修改 2:职位修改"<<endl; cout<<"选择您要进行的修改方式:"<<endl; cin>>choose1; switch(choose1) { case 1: cout<<"输入员工姓名:"; cin>>str; persons[num-1]=new employee(n,str,s,Date(y,m,d),p); break; case 2: cout<<"输入员工职位:"; cin>>p; persons[num-1]=new employee(n,str,s,Date(y,m,d),p); break; } break; } else cout<<"该员工不存在"<<endl; } break; case 4: cout<<"输入员工编号:"; cin>>n; for(i=0;i<=num;i++) { if(n==Getno(*persons[i])) { cout<<"编号\t"<<"姓名\t"<<"性别\t"<<"生日\t\t"<<"职务"<<endl; cout<<Getno(*persons[i])<<"\t"<<Getname(*persons[i])<<"\t" <<Getsex(*persons[i])<<"\t"<<Getbirth(*persons[i]).GetYear() <<" "<<Getbirth(*persons[i]).GetMonth()<<" " <<Getbirth(*persons[i]).GetDay()<<"\t"<<Getpos(*persons[i])<<endl; break; } }

某公司的雇员分为以下若干类。写一个程序,把若干各种类型的员工放在一个Employee数组里。。。

某公司的雇员分为以下若干类。写一个程序,把若干各种类型的员工放在一个Employee数组里。。。

某公司的雇员分为以下若⼲类。

写⼀个程序,把若⼲各种类型的员⼯放在⼀个Employee数组⾥。

某公司的雇员分为以下若⼲类:Employee:这是所有员⼯总的⽗类,属性:员⼯的⽣⽇⽉份。

⽅法:getSalary(int month) 根据参数⽉份来确定⼯资,如果该⽉员⼯过⽣⽇,则公司会额外奖励100 元。

SalariedEmployee:Employee 的⼦类,拿固定⼯资的员⼯。

属性:⽉薪HourlyEmployee:Employee 的⼦类,按⼩时拿⼯资的员⼯,每⽉⼯作超出160 ⼩时的部分按照1.5 倍⼯资发放。

属性:每⼩时的⼯资、每⽉⼯作的⼩时数SalesEmployee:Employee的⼦类,销售⼈员,⼯资由⽉销售额和提成率决定。

属性:⽉销售额、提成率BasePlusSalesEmployee:SalesEmployee 的⼦类,有固定底薪的销售⼈员,⼯资由底薪加上销售提成部分。

属性:底薪。

写⼀个程序,把若⼲各种类型的员⼯放在⼀个Employee 数组⾥,写⼀个函数,打印出某⽉每个员⼯的⼯资数额。

注意:不允许⾮私有化属性。

BasePlusSaleEmployee.javapackage ex4_2;public class BasePlusSaleEmployee extends SalesEmployee {private double baseSalary;private double addRate;private double sale;public BasePlusSaleEmployee(double sale,double addRate,double baseSalary) {super(sale, addRate);// TODO Auto-generated constructor stubsetAddRate(addRate);setBaseSalary(baseSalary);setSale(sale);}@Overridepublic double getSalary() {SalesEmployee a=new SalesEmployee(sale, addRate);// TODO Auto-generated method stubreturn baseSalary+a.getSalary();}public double getBaseSalary() {return baseSalary;}public void setBaseSalary(double baseSalary) {this.baseSalary = baseSalary;}public double getAddRate() {return addRate;}public void setAddRate(double addRate) {this.addRate = addRate;}public double getSale() {return sale;}public void setSale(double sale) {this.sale = sale;}}Employee.java1 package ex4_2;23 public class Employee {45 private int monthN=6;//假设现在六⽉6 private int month;7 private int salary=100;89 public Employee() {10 setMonth(month);11 }1213 public int getMonth() {14 return month;15 }1617 public void setMonth(int month) {18 this.month = month;19 }20 public double getSalary() {21 if(monthN==month) {22 return salary;23 }24 else return 0;25 }26 }HourlyEmployee.javapackage ex4_2;public class HourlyEmployee extends Employee {private double hourlySalary;private int hour;public HourlyEmployee(double hourlySalary,int hour) {super();setHour(hour);setHourlySalary(hourlySalary);}@Overridepublic double getSalary() {if(hour>160)return 160*hourlySalary+(hour-160)*1.5*hourlySalary; elsereturn hour*hourlySalary;}public double getHourlySalary() {return hourlySalary;}public void setHourlySalary(double hourlySalary) {this.hourlySalary = hourlySalary;}public int getHour() {return hour;}public void setHour(int hour) {this.hour = hour;}}SalariedEmployee.javapackage ex4_2;public class SalariedEmployee extends Employee {private double salary;public SalariedEmployee(double salary) {// TODO Auto-generated constructor stubsuper();setSalary(salary);}@Overridepublic double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}}SalesEmployee.java1 package ex4_2;23 public class SalesEmployee extends Employee {45 private double sale;6 private double addRate;78 public SalesEmployee(double sale,double addRate) {9 setAddRate(addRate);10 setSale(sale);11 }121314 @Override15 public double getSalary() {16 // TODO Auto-generated method stub17 return sale*addRate;18 }192021 public double getSale() {22 return sale;23 }2425 public void setSale(double sale) {26 this.sale = sale;27 }2829 public double getAddRate() {30 return addRate;31 }3233 public void setAddRate(double addRate) {34 this.addRate = addRate;35 }363738 }Tester.javapackage ex4_2;import java.util.Calendar;//import java.util.Scanner;public class Tester {public static void main (String[] args) {Employee employee[]= {new SalariedEmployee(1000),new HourlyEmployee(16,150),new SalesEmployee(500,0.2),new BasePlusSaleEmployee(500,0.2,1000)};Calendar cal=Calendar.getInstance();cal.set(1994, 6, 18);for(int i=0;i<employee.length;i++) {int month=cal.get(Calendar.MONTH);Employee a=new Employee();a.setMonth(month);double welfare=a.getSalary();double salary=employee[i].getSalary();System.out.println("第"+(i+1)+"个:"+(welfare+salary)); }}}。

某公司的雇员分为以下若干类-Employee这是所有员工总的父类属性员工的姓名和生日月份方法根据月份

某公司的雇员分为以下若干类-Employee这是所有员工总的父类属性员工的姓名和生日月份方法根据月份

Employee。

avaimport java。

util.Calendar;import java.util.GregorianCalendar;public class Employee {/***Employee:这是所有员工总的父类,属性:员工的姓名和生日月份。

方法:getSalary (int month) 根据参数月份来确定工资,* 如果该月员工过生日,则公司会额外奖励100元.*/private String name;protected int month;private int base = 6000;private int salary;public Employee() {}public Employee(String name,int month){this.setName(name);this.setMonth(month);}public String getName() {return name;}public void setName(String name) {this。

name = name;}public int getMonth(){return month;}public void setMonth(int month) {this。

month = month;}GregorianCalendar g = new GregorianCalendar();int flag = (int) g。

get(Calendar。

MONTH) + 1;public int getSalary(int month){int s = this。

getMonth();if (flag == s) {salary = base + 100;}elsesalary = base;return salary;}void says(){System。

out。

println("当前月份:" + flag);}}// SalaryEmployee:Employee的子类,拿固定工资的员工。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创建一个employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。

把表示构造函数、changname()、display()的函数的原型放在类定义中,构造函数初始化每个成员,display()函数把完整的对象数据打印出来。

其中的数据成员是保护的,函数是公共的。

#include<iostream.h>
#include<string.h>
class employee
{
protected:
char name[10]; // 姓名
char street[20]; // 街道地址
char city[10]; // 市
char prov[10]; // 省
char post[7]; // 邮政编码
int no; // 记录序号
public:
employee(char [],char [],char [],char [],char [],int);
void changename(char str[]);
void display();
};
employee::employee(char n[],char s[],char c[],char p1[],char p2[],int num)
{
strcpy(name,n);
strcpy(street,s);
strcpy(city,c);
strcpy(prov,p1);
strcpy(post,p2);
no=num;
}
void employee::changename(char n[])
{
strcpy(name,n);
}
void employee::display()
{
cout<<"输出记录"<<no<<endl;
cout<<" 姓名:"<<name<<endl;
cout<<"街道地址:"<<street<<endl;
cout<<" 市:"<<city<<endl;
cout<<" 省:"<<prov<<endl;
cout<<"邮政编码"<<post<<endl;
}
void main()
{
employee obj1("王华","中华路15号","武汉市","湖北省","430070",1); employee obj2("杨丽","天津路30号","南京市","江苏市","210020",2); obj1.display();
obj2.display();
}
还可以这么写:
class Employee{
public:
Employee(char* n,char* a,char* c,char* s,char* z);
void ChangeName(char* n);
void Display();
protected:
char name[20];
char addr[40];
char city[20];
char state[20];
char zip[10];
};
Employee::Employee(char* n,char* a, char* c, char* s, char* z)
{
strncpy(name,n,20);
name[19]='\0';
strncpy(addr,a,40);
addr[39]='\0';
strncpy(city,c,20);
city[19]='\0';
strncpy(state,s,20);
state[19]='\0';
strncpy(zip,z,10);
zip[9]='\0';
}
void Employee::ChangeName(char* n) {
strncpy(name,n,20);
name[19]='\0';
}
void Employee::Display()
{
cout <<name <<endl
<<addr <<" " <<city <<endl
<<state <<" "
<<zip <<endl;
}。

相关文档
最新文档