面向对象练习
来源:互联网 发布:大富豪棋牌源码3.4.1 编辑:程序博客网 时间:2024/06/05 18:48
/* 面向对象练习 (题干见本文尾)*//* C# */using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Test_004{ class Program { static void Main(string[] args) { Person person = new Person("张三",'男',1990); Person person2 = new Person(); Console.WriteLine(person.ToString()); Console.WriteLine(person2.ToString()); Console.WriteLine(person.Equals(person2)); Student student = new Student("张三",'男',1990,2015001,70,80,90); Student student2 = new Student(); Console.WriteLine(student.ToString()); Console.WriteLine(student2.ToString()); Console.WriteLine(student.Equals(student2)); Console.ReadLine(); } } class Person { private string name; private char sex; private int year; public string Name { get { return name; } set { name = value; } } public Char Sex { get { return sex; } set { sex = value; } } public int Year { get { return year; } set { year = value; } } public int Age { get { return (2017 - year); } } public Person(string Name,char Sex,int Year) { this.name = Name; this.sex = Sex; this.year = Year; } public Person() { this.name = "匿名"; this.sex = '男'; this.year = 2015; } public override string ToString() { //return base.ToString(); return name + " " + sex + " " + year; } public override bool Equals(object obj) { if (obj == null || !obj.GetType().Equals(this.GetType())) return false; if (obj == this) return true; Person you = (Person)obj; return (this.name == you.name && this.sex == you.sex && this.year == you.year); //return base.Equals(obj); } } class Student : Person { private long number; private double phi, eng, comp; public long Number { get { return number; } set { number = value; } } public double Phi { get { return phi; } set { phi = value; } } public double Eng { get { return eng; } set { eng = value; } } public double Comp { get { return comp; } set { comp = value; } } public double Avg { get { return (phi + eng + comp) / 3; } } public Student(string Name, char Sex, int Year, long Number, double Phi, double Eng, double Comp) : base(Name, Sex, Year) { this.number = Number; this.phi = Phi; this.eng = Eng; this.comp = Comp; } public Student() : base() { this.number = 0; this.phi = this.eng = this.comp = 0; } public override string ToString() { //return base.ToString(); return Name + " " + Sex + " " + Year + " " + number; } public override bool Equals(object obj) { //return base.Equals(obj); if (obj == null || !(obj.GetType().Equals(this.GetType()))) return false; if (obj == this) return true; Student you = (Student) obj; return (this.number == you.number && this.Name == you.Name && this.Sex == you.Sex); } }}/* problem describe */ /* 定义一个学生类 Student,它继承自 Person 类。(1)Person类:字段(私有的): 姓名(name),字符串类型(String); 性别(sex),字符型(char); 出生年份(year),整型(int)。属性(公有的): 姓名:可读/写 性别:可读/写 出生年份:可读/写 年龄:只读成员方法: 构造函数(两个):a) 第一个:将姓名,性别,出生年份字段初始化为指定的值b) 第二个:未指定任何字段值,则将姓名初始化为“匿名”,姓别初始化为“男”,出生年份初始化为“2015”。此构造函数通过调用第一个构造函数,初始化姓名、性别和出生年份。 重写ToString方法,使得该方法返回如下格式字符串(以“张三,男,1990”为例):姓名:张三,性别:男,出生年份:1990 重写Person类的Equals方法,当且仅当两人的姓名相等且性别相等且出生年份相等时,认为两人是同一个人。(2)Student 类继承自Person类:新增加的字段(私有的): 学号(number):长整型; 三门功课的成绩:哲学(phi),double;英语 (eng),double;计算机(comp),double新增加的属性 学号:可读/写; 哲学成绩,英语成绩,计算机成绩:可读/写 平均成绩(Avg):只读新增加的方法: 构造函数(两个):a) 第一个:将所有字段初始化为指定的值,其中姓名、性别、出生年份通过调用父类的构造函数初始化;b) 第二个:未指定任何字段值,学号初始化为0,各门课的成绩都初始化为0,姓名,性别和出生年份通过调用父类的构造函数将其分别初始化为“匿名”,“男”,“2015”。 覆盖父类的ToString()方法:使得该方法返回如下格式字符串,以“张三,男,1990,1001(学号)”为例姓名:张三,性别:男,年龄20,平均成绩:90,最高分:99 覆盖父类的Equals:只要两个Student对象的学号、姓名和性别相等时,认为两学生相等。(3)试自行编写一段测试程序,测试Person和Student的构造方法和属性是否能正常使用,测试重写的ToString 和Equals方法是否运行正常。 */
阅读全文
0 0
- 面向对象小练习
- 面向对象小练习
- js 面向对象练习
- 面向对象练习
- 面向对象练习
- 面向对象练习
- 面向对象练习
- 面向对象练习
- 面向对象练习
- 面向对象练习
- 面向对象练习
- 面向对象练习
- Java面向对象练习
- 面向对象练习
- 面向对象练习
- JavaSE面向对象练习
- JAVA面向对象练习
- java面向对象-练习四
- 在Ubuntu 16.04下安装g2o
- 七种循环方式实现题目
- 安装SVN步骤
- spring、springmvc、mybatis整合搭建ssm项目(Eclipse+maven)
- 写一个函数,实现数组的赋值 清空 和逆置
- 面向对象练习
- python Debug 单步调试
- 发布订阅模式
- contextPath获取项目名
- 1092: 并查集(模版 家族)
- hdu1300 pearls 【dp】
- 对称的二叉树
- Jzoj4625 树
- 400和500错误的统一处理