定义person类
属性:名字,性别,年龄,身份证号行为:交流定义学生类继承人类
属性:学号,班级,行为:学习
定义测试(Text)类
在测试类主函数(main)中,创建一个学生
类对象,在控制台上输出,学生对象的所有
信息
#include<iostream>
#include<string.h>
using namespace std;
class Person{
public:
string name;
string sex;
string nationality;
int age;
// 构造函数,用来初始化对象的属性
Person(string na,string se,int ag,string national){
name= na;
sex = se;
age = ag;
nationality = national;
}
void eat()
{
cout<<"Everyone need eat."<<endl;
}
void sleep(double time)
{
if(time>23.30)
{
cout<<"You went to bed too late. You should go to bed early."<<endl;
}
else
{
cout<<"还没到睡觉时间!"<<endl;
}
}
void sleep(int time)
{
if(time<7)
{
cout<<"你睡的太少了,这样会变傻的!"<<endl;
}
else
{
cout<<"你的睡眠充足!"<<endl;
}
}
void work()
{
cout<<"Everyone need work."<<endl;
}
void print()
{
cout<<"姓名:"<<name<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"国籍:"<<nationality<<endl;
}
};
class student:public Person{
public:string school;
string number;
student(string na,string se,int ag,string national,string sch,string num):Person(na,se,ag,national)
{
school=sch;number=num;
}
void work()
{
cout<<"I will good good study, day day up."<<endl;
}
void print()
{
cout<<"学校:"<<school<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"学号:"<<number<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"国籍:"<<nationality<<endl;
}
};
class worker:public Person{
private:
string danwei;
int goling;
public:worker(string na,string se,int ag,string national,string da,int gl):Person(na,se,ag,national)
{
danwei=da;goling=gl;
}
void fagongzi(int time)
{
if(time<6)
{
cout<<"工人的工资为3500元."<<endl;
}
else if(time>=6 &&time<8)
{
cout<<"工人的工资为4500元"<<endl;
}
else if(time>=8 &&time<=10)
{
cout<<"工人的工资为6000元"<<endl;
}
else
{
cout<<"输入的工作时间有误!!!" <<endl;
}
}
void print()
{
cout<<"姓名:"<<name<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"国籍:"<<nationality<<endl;
cout<<"单位:"<<danwei<<endl;
cout<<"工龄:"<<goling<<endl;
}
};
class studentleading:public student{
private:string job;
public:
studentleading(string na,string se,int ag,string national,string sch,string num,string j):student(na,se,ag,national,sch,num)
{
job=j;
}
void print()
{
cout<<"学校:"<<school<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"学号:"<<number<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"工作:"<<job<<endl;
cout<<"国籍:"<<nationality<<endl;
}
void meeting()
{
cout<<"学生会经行开会!"<<endl;
}
};
int main()
{
Person p1("小王","男",18,"中国");//共同属性
p1.print();//输出共用属性。
p1.sleep(7) ;//调用公用的时间。
cout<<"**********************"<<endl; //学生类
student st1("小天","女",17,"中国","希望中学","1002");
st1.print();
cout<<"**********************"<<endl; //工人类
worker w1("小李","男",25,"中国","流水线部门",3);
w1.print();
w1.fagongzi(8);
cout<<"**********************"<<endl; //学生会部门类
studentleading s1("小明","男",17,"中国","希望中学","1001","学生会");
s1.print();
s1.meeting();
return 0;
}
根据题目所示,定义类和方法即可.
代码如下:
package persontest;
public class Test { // 测试类
public static void main(String[] args) {
// TODO Auto-generated method stub
// 用Student类的有参的构造方法,创建一个学生对象
Student s1 = new Student("张三","男",22, "110101200103094955", 202303071562L, "软件工程1班");
System.out.println(s1); // 打印这个学生的所有信息
// 用Person类有参的构造方法,创建一个Person类对象
Person p1 = new Person("李四","男",21,"35010220020301687X");
System.out.println(p1); // 打印这个Person对象的所有信息
//Student s2 = new Student("王五","男",23, "110101200003044956", 202303071563L, "软件工程2班");
//System.out.println(s2); // 打印这个学生的所有信息
s1.talk(p1); // 调用学生类对象继承至父类的交流方法
//s1.talk(s2); // 调用学生类对象继承至父类的交流方法
s1.study(); // 调用学生类对象的学习方法
}
}
class Person{ // 如果Person类单独放一些代码文件,可以在class前面加个public
private String name; // 姓名
private String sex; //性别
private int age; //年龄
private String ID; // 身份证号
public Person() { // Person类无参的构造器
}
// Person类有参数的构造器
public Person(String name, String sex, int age, String iD) {
this.name = name;
this.sex = sex;
this.age = age;
ID = iD;
}
// 交流方法
public void talk(Person p) {
System.out.println("\n"+this.name+"同"+p.getName()+"开始交流!");
System.out.println(this.name+"同"+p.getName()+"交流完毕!\n");
}
// 下面是Person类各属性的set和get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
@Override
// person类的toSting方法,用于打印Person类的所有成员属性
public String toString() {
return "人员信息 [姓名:" + this.getName() + ", 性别:" + this.getSex() + ", 年龄:" + this.getAge() + ", 身份证号:" + this.getID() + "]";
}
}
//如果Student类单独放一些代码文件,可以在class前面加个public
class Student extends Person{ // 继承了Person类的学生类
private long sID; // 学号
private String className; // 班级
// 无参的构造方法
public Student() {
}
// 有参的构造方法
public Student(String name, String sex, int age, String iD,long sID, String className) {
super(name,sex,age,iD);
this.sID = sID;
this.className = className;
}
// 学习方法
public void study() {
System.out.println("\n"+this.getName()+"开始学习!");
System.out.println(this.getName()+"学习完毕!\n");
}
// Student类各属性的get和set方法
public long getsID() {
return sID;
}
public void setsID(int sID) {
this.sID = sID;
}
public String getClassName() {
return className;
}
public void setcID(String className) {
this.className = className;
}
@Override
// Student类的toString方法,用于打印学生类对象的所有成员信息
public String toString() {
return "学生信息 [姓名:" + this.getName() + ", 性别:" + this.getSex()
+ ", 年龄:" + this.getAge() + ", 身份证号:" + this.getID()
+ ", 学号: "+this.getsID()+", 班级:"+this.getClassName()+"]";
}
}
https://blog.csdn.net/weixin_63802670/article/details/123818228
大同小异,参考下吧