设计一个学生类和它的一个子类——本科生类

2023-11-10

设计一个学生类(Student)和它的一个子类——本科生类(Undergraduate)。要求如下:
(1)Student类有姓名(name)和年龄(age)属性,两者的访问权限为protected;一个包含两个参数的构造方法,用于给姓名和年龄属性赋值;一个show( )方法用于输出Student的属性信息,输出格式为Student[name=XXX,age=XX]
(2)Undergraduate类增加一个专业(major)属性,该属性的访问权限为private;有一个包含三个参数的构造方法,前两个参数用于给继承的年龄和姓名属性赋值,第三个参数给专业属性赋值;一个show( )方法用于输出Undergraduate的属性信息,输出格式为Undergraduate[name=XXX,age=XXX,major=XXX]


在测试类Mainmain( )方法中,调用Student类的带参数的构造方法创建对象object1,调用Undergraduate类的带参数的构造方法创建对象object2,然后分别调用它们的show( )方法。

输入格式:

第一行从键盘输入姓名(字符串)、年龄(整数)给Student类的对象object1,中间以空格隔开。
第二行从键盘输入姓名(字符串)、年龄(整数)、专业(字符串)给Undergraduate类的对象object2,中间以空格隔开。

输出格式:

第一行输出object1的姓名、年龄,格式为:Student[name=XXX,age=XX]
第二行输出object2的姓名、年龄、专业,格式为: Undergraduate[name=XXX,age=XXX,major=XXX]

输入样例:

在这里给出一组输入。例如:

张三 12
李四 19 计算机科学与技术

输出样例:

在这里给出相应的输出,其中的标点符号为英文格式。例如:

Student[name=张三,age=12]
Undergraduate[name=李四,age=19,major=计算机科学与技术]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
   public class Student
    {
        protected  string name;
        protected int age;
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                age = value;
            }
        }
        public virtual void Register(string name,int age)
        {
              this.name=name;
             this.age =age;
        }
        public virtual  void  Show()
        {
            Console.WriteLine("Student[name={0},age={1}]",name,age);
        }


    }
    public class Undergraduate : Student
    {
        private string major;
        public  void Register( string name,int age ,string major) 
        {
            base.Register(name, age);
             this.major =major;
        }
        public string Major
        {
            get
            {
                return major;
            }
            set
            {
                major = value;
            }
        }
        public  override void Show()
        {
            Console.WriteLine("Undergraduate[name={0},age={1},major={2}]", name, age, major);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Student object1 = new Student();

            string s = Console.ReadLine();
            string[] a = s.Split(' ');
            object1.Name = Convert.ToString(a[0]);
            object1.Age = Convert.ToInt32(a[1]);
           
             Undergraduate object2 = new Undergraduate();
            string m = Console.ReadLine();
            string[] b = m.Split(' ');
            object2.Name = Convert.ToString(b[0]);
            object2.Age = Convert.ToInt32(b[1]);
            object2.Major = Convert.ToString(b[2]);
           object1.Show();
            object2.Show();
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设计一个学生类和它的一个子类——本科生类 的相关文章

  • 有没有办法为向量采用内存资源?

    我已经开始在我的项目中使用 pmr allocators 并且我已经看到使用它们带来了很多性能提升和优势 我使用的分配器与我在下面的简单示例中展示的非常相似 include
  • 请求的资源不支持 HTTP 方法“GET”

    我的路线配置正确 并且我的方法具有装饰标签 我仍然收到 请求的资源不支持 HTTP 方法 GET 消息 System Web Mvc AcceptVerbs GET POST System Web Mvc HttpGet public st
  • 在 C# 中实例化 python 类

    我已经用 python 编写了一个类 我想通过 IronPython 将其包装到 net 程序集中 并在 C 应用程序中实例化 我已将该类迁移到 IronPython 创建了一个库程序集并引用了它 现在 我如何真正获得该类的实例 该类看起来
  • System.MissingMethodException:找不到方法?

    以前工作的 ASP NET WebForms 应用程序现在抛出此错误 System MissingMethodException 找不到方法 The DoThis方法位于同一个类上 它应该可以工作 我有一个这样的通用处理程序 public
  • 根据另一个列表的内容对列表进行排序

    我有一个包含整数列表的列表和另一个包含同时包含整数和字符串的类的列表 我想做的是按字母顺序对列表进行排序 将第一个列表中存在的条目放在前面 这是我的代码和预期输出 using System using System Collections
  • C++ 中的字符串到 LPCWSTR

    我正在尝试从字符串转换为 LPCWSTR 我使用多位 1 例如 LPCWSTR ToLPCWSTR string text LPCWSTR sw LPCWSTR text c str return sw 2 返回中文字符 LPCWSTR T
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • 获取光标相对于控件的位置 - C#

    我想获取鼠标相对于鼠标指针所在控件的位置 这意味着当我将光标置于控件的起点 左上角 时 它应该给出 0 0 我正在使用以下代码 private void panel1 MouseMove object sender MouseEventAr
  • 使用 std::string 导致 Windows“找不到入口点”[重复]

    这个问题在这里已经有答案了 当我用 G C C 编译它时 include
  • 如何在 asp .net mvc 2 中对不直接属于我的模型的对象使用 DisplayFor()?

    我确信我在这里遗漏了一些非常简单的东西 我创建了一个自定义日期时间显示模板 使用以下方法时效果很好 但是 我遇到了这样的情况 在部分控件内 我在 for 循环中迭代模型中的对象 我想要一个 DateTime 属性来使用显示模板 但我不知道如
  • 是否有更好(更简单)的方法来获取特定域 SID?

    我被指派修改 WinForms 应用程序 主要检查登录用户是否属于特定域 这是我到目前为止所想出的 byte domainSid var directoryContext new DirectoryContext DirectoryCont
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • 如何检查是否发生溢出? [复制]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • 在 C# 中使用 as 关键字与泛型类型发生冲突的编译时行为

    当尝试对无法转换为的非泛型类型使用 C as 关键字时 编译器会给出无法转换类型的错误 但是 当对泛型类型使用 as 关键字时 编译器不会给出错误 public class Foo public class Bar
  • 将 libpng 链接到 android 原生项目

    我在尝试在本机 Android 项目中加载 libpng 时遇到问题 编译器似乎无法识别 libpng 函数 但可以识别类型 如 png byte 它可以正常编译类型 但如果我添加函数 则会抛出错误 这是编译输出 Windows 7 cmd
  • 在 C# 4.0 中,是否可以从泛型类型参数派生类?

    我一直在尝试这个 但我似乎无法弄清楚 我想做这个 public abstract class SingletonType
  • Facebook Graph API“/userid/feed”返回空白

    我正在使用 Facebook C SDK 但似乎无法使用 Graph API 获取反馈数据 我已从用户那里获得了以下扩展权限 范围 离线访问 publish stream publish checkins create event read
  • g++4.9 不支持 std::align

    在学习对齐问题等时 我意识到我的 g 4 9 macports OS X 实现不支持std align 如果我尝试编译 使用 std c 11 此示例代码来自http www cplusplus com reference memory a
  • 第一个随机数始终小于其余随机数

    我碰巧注意到 在 C 中 使用 std rand 方法调用的第一个随机数大多数时候都明显小于第二个随机数 关于 Qt 实现 第一个几乎总是小几个数量级 qsrand QTime currentTime msec qDebug lt lt q
  • 访问 Visual Studio 扩展中的当前代码窗格

    我正在编写一个 Visual Studio 2010 扩展 在代码视图中带有右键单击菜单 我希望能够从菜单项事件处理程序检查当前代码 但无法在对象模型中找到执行此操作的位置 如何在 Visual Studio 扩展中访问当前窗口中的代码 E

随机推荐

  • jenkins+allure,生成的allure报告打开空白

    问题 jenkins allure 生成的allure报告打开空白 分析过程 第一步 判断配置中的执行命令是否正确 命令行分析 cd auto INC MTISP CORE mtisp auto lqx 切换到我实际需要执行的包的路径下 D
  • K8S搭建以及使用

    组件 1 主机 Master 用于控制整个Kubernetes集群 2 节点 node 负责执行请求和分配所有任务的节点 3 容器集 Pod 部署在 node 节点上 且包至少含一个或多个容器 同一个容器集中的所有容器共享同一个IP地址 主
  • axes don‘t match array

    axis don t match array的问题 写一个神经网络进行图像分类 在读取数据的部分报错如下 1 numpy core exceptions UFuncTypeError Cannot cast ufunc subtract o
  • Linux(ubuntu)内容整理(常用命令)

    1 基础快捷键 命令 含义 ctrl c 强制停止 ctrl d 退出登出 histroy 查看历史命令 命令前缀 自动匹配上一个命令 ctrl r 搜索历史命令 ctrl a e 光标移动到命令开始或结束 ctrl 箭头 左右跳单词 ct
  • vue的学习与使用

    目录 基础语法 判断与循环v if v else for if for 事件 v on Vue双向绑定 Vue组件 计算属性 插槽 slot 自定义事件内容分发 创建一个vue程序 Webpack 什么是webpack 安装Webpack
  • 【VISIO安装问题】无法安装64位版本的office,因为在您的PC上找到以下32位程序

    无法安装64位版本的office 因为在您的PC上找到以下32位程序 当我们想要安装visio 64位程序的时候 我们的电脑提示这种错误 可能是我们电脑上32位 visio程序并未删除干净 直接卸载电脑上的32位visio程序有时候可能卸载
  • 严重: testWhileIdle is true, validationQuery not set ;使用连接池错误(无Spring框架,使用的JDK9,MYSQL8版本)

    在properties配置文件下添加一些配置 driverClassName com mysql cj jdbc Driver url jdbc mysql localhost 3306 javaweb userSSL true serve
  • C++ decltype用法详解

    1 什么是decltype decltype是C 11新增的一个关键字 和auto的功能一样 用来在编译时期进行自动类型推导 引入decltype是因为auto并不适用于所有的自动类型推导场景 在某些特殊情况下auto用起来很不方便 甚至压
  • Linux中grep函数的一些常见问题

    linux中grep 的详细用法已经有许多人介绍过了 本文是作者在学习过程中的总结和对原文中一些没有被提及或者含糊不清的概念的理解 一 grep概述 grep的全称是global regular expression print 即全局正则
  • 门子1200plc485 modbus rtu通讯,55条通讯,几百个数据,1s内完成

    门子1200plc485 modbus rtu通讯 55条通讯 几百个数据 1s内完成 最主要的是 别人的485要上升沿 还要写后面的完成和错误变量 又臭又长 我的 每条程序不用写上升沿 也不用管后面通讯的引脚 又快又省心 直接填写通讯地址
  • 云原生Kubernetes:pod基础与配置

    目录 一 理论 1 pod 2 pod容器分类 3 镜像拉取策略 4 pod 的重启策略 二 实验 1 Pod容器的分类 2 镜像拉取策略 三 问题 1 apiVersion 报错 2 pod v1版本资源未注册 3 格式错误 4 取行显示
  • Linux下安装Tomcat正常启动但是端口没有监听

    Linux下安装JDK1 7 然后安装Tomcat9 0 启动Tomcat端口没有监听 报错如下 Exception in thread main java lang UnsupportedClassVersionError org apa
  • 【火线解码】001.避免在finally语句块中使用return语句

    火线团队推出 火线解码 系列文章 每一篇解释一种不规范的代码写法 用较短的篇幅让大家快速的了解代码规范问题 001 避免在finally语句块中使用return语句 错误的代码示例 public class Bar public Strin
  •  Kaggle基本知识

    目录 Kaggle介绍 1 基本情况 2 含金量 部分Kaggle题目 kaggle的比赛类型选择 1 面向初学者 2 面向竞赛者 3 面向求职者 4 其他比较冷门的比赛类型 建议 申请Kaggle项目 1 项目导师背景 2 项目进阶分级
  • Task4 基于深度学习的文本分类

    fastText模型的输入是一个词的序列 一段文本或者一句话 输出是这个词序列属于不同类别的概率 在序列中的词和词组构成特征向量 特征向量通过线性变换映射到中间层 再由中间层映射到标签 fastText在预测标签时使用了非线性激活函数 但在
  • HTML <tbody> 标签

    实例 带有 thead tbody 以及 tfoot 元素的 HTML 表格 table border 1 thead tr th Month th th Savings th tr thead tfoot tr td Sum td td
  • Zmodem协议由浅入深

    Zmodem协议由浅入深 废话不多说直接解释 1 最简单的 ZMODEM 文件传输显示如下 例如 发送器要发送 爸爸的爸爸到底叫什么呀丫鸭压 gt gt gt gt gt 给接收器 逻辑如下 发送器 问 接收器可以接受什么类型的数据 接受器
  • stm32 Systick定时器

    Systick定时器属于是简单定时器 是为了节省定时器资源而存在的一个一般用于延时和用作实时系统的心跳时钟的一个定时器 Systick定时器就是系统滴答定时器 一个24 位的倒计数定时器 计到0 时 将从RELOAD 寄存器中自动重装载定时
  • 开发中遇到的线程不安全问题小结

    1 SimpleDateFormat 是线程不安全的 推荐使用如下 1 声明SimpleDateFormat变量时 加synchronized修饰 2 使用DateUtils 工具类 3 使用ThreadLocal 如下 private s
  • 设计一个学生类和它的一个子类——本科生类

    设计一个学生类 Student 和它的一个子类 本科生类 Undergraduate 要求如下 1 Student类有姓名 name 和年龄 age 属性 两者的访问权限为protected 一个包含两个参数的构造方法 用于给姓名和年龄属性