C#学习笔记:1.C#中学生类clsStudent 中实现Grow()方法的重载学习
本代码实现了学生信息毕业前后的更替,完整代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//使用Grow()重载的方法实现学生入学直到毕业的信息记录
namespace StudentInfo
{class clsStudent{//成员字段int nNum;//学号public string strName;//姓名private int nAge;//年龄private string strSex;//性别//声明公有、含参数的构造函数//参数num,name,age,sex分别传递学号、姓名、年龄、性别public clsStudent(int num, string name, int age, string sex){nNum = num;strName = name;nAge = age;strSex = sex;}//声明不含参数的构造函数public clsStudent(){nNum = 1801001;strName = "赵中华";nAge = 18;strSex = "男";}//析构函数//~clsStudent()// {// Console.WriteLine("学生类的析构函数被调用!");// }//学生入学public void Enrollment(){Console.WriteLine("学号为:{0},姓名为:{1}同学入学", nNum, strName);}//学生长大一岁public void Grow(){nAge++;}//学生长大n_AgeSpan岁public void Grow(int n_Agespan){nAge += n_Agespan;}//学生毕业public void Graduate(){Console.WriteLine("学号为:{0},姓名为:{1}同学毕业", nNum, strName);}//输出信息public void Display(){Console.WriteLine("学号为:{0}", nNum);Console.WriteLine("姓名为:{0}", strName);Console.WriteLine("年龄为:{0}", nAge);Console.WriteLine();}}public class test{static void Main(){//调用含参数的构造函数,初始化对象clsStudent s = new clsStudent(201803008, "李四", 17, "女");s.Enrollment();s.Display();s.Grow();s.Display();//李四成长一岁s.Grow(3);s.Display();//李四成长三岁s.Graduate();}}
}
结果如下:
部分代码学习:
1.构造函数:具有与类相同的名称,主要用来在创建对象时初始化对象,总与New运算符一起使用在创建对象的语句中,没有返回值。
public clsStudent(int num, string name, int age, string sex){nNum = num;strName = name;nAge = age;strSex = sex;}
调用含参数的构造函数,初始化对象
clsStudent s = new clsStudent(201803008, "李四", 17, "女");s.Enrollment();s.Display();s.Grow();s.Display();//李四成长一岁s.Grow(3);s.Display();//李四成长三岁s.Graduate();
2.析构函数: 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放),相当于一个垃圾回收机制。
析构函数,没有返回值,且不带任何参数。
//析构函数~clsStudent(){Console.WriteLine("学生类的析构函数被调用!");}
然后,想写一个类似的,但是学生信息可以自己输入进去的C#代码:
参考了别的博主写的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace The_experiment__of__three__week
{class Program{static void Main(string[] args){int count;bool b = true;Console.Write("请您输入您想保存的学生数:");count = int.Parse(Console.ReadLine());hashtable[] h = new hashtable[count];int i = 1, j = i;while (j > 0){j = i;if (i <= count){Console.Write("请您输入第{0}个学生的学号:", i);int number = int.Parse(Console.ReadLine());Console.Write("请您输入第{0}个学生的姓名:", i);String name = Console.ReadLine();Console.Write("请您输入第{0}个学生的年龄:", i);int age = int.Parse(Console.ReadLine());for (int k = 0; k < i - 2; ++k){if (h[k].number1().Equals(number)){Console.WriteLine("您已经输过该同学的信息了,请不要重复输入!");b = false;break;}}if (b){h[i - 1] = new hashtable();h[i - 1].input(number, name,age);}++i;}else{Console.WriteLine("您输入的学生数已达到您刚才预先设定值,请停止输入!");break;}Console.WriteLine();Console.WriteLine("想结束输入请按 ‘0’ 继续输入请按 ‘1’ ");j = int.Parse(Console.ReadLine());}for (int n = 0; n < count; ++n){h[n].output();}Console.ReadKey();}}class hashtable{public int number;public string name;public int age;private int agenow;public hashtable(int number, string name,int age){number = 0;name = null;age = 0;}public hashtable(){number = 0;name = null;age = 0;}public void input(int number1, string name1, int age1){number = number1;name = name1;age = age1;}public int number1(){return number;}public void output(){Console.WriteLine(" 学号 姓名 入学年龄 毕业年龄");Console.WriteLine(" {0} {1} {2} {3}", number, name,age,age+4);}}
}
加油~
C#学习笔记:1.C#中学生类clsStudent 中实现Grow()方法的重载学习相关推荐
- # C# 学习笔记(4) 类
C# 学习笔记(4) 类 面向对象编程主要是为了写出一个通用的代码,屏蔽差异,方便开发大型项目.类就是面向对象编程的核心之一.和C语言的结构体相比,结构体拥有的功能,类统统都有,除此之外,类还有许多新 ...
- Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- AJPFX学习笔记JavaAPI之String类
学习笔记JavaAPI之String类 [size=10.5000pt]一.所属包java.lang.String,没有子类.特点:一旦被初始化就不可以被改变. 创建类对象的两种方式: String ...
- JDBC学习笔记02【ResultSet类详解、JDBC登录案例练习、PreparedStatement类详解】
黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...
- kotlin学习笔记——枚举、封闭类
1.枚举 kotlin中提供类枚举的实现,与java相同.枚举可以带参数,如 enum Icon(val res: Int){MENU(R.drawable.menu),BACK(R.drawable ...
- Python学习笔记:创建分数类
Python学习笔记:创建分数类 1.编写创建分数类.py # 创建分数类from math import gcd# 定义分数类 class Fraction: def __init__(self, ...
- Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25
Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...
- c# 学习笔记 (2) 窗体之间互相调用的方法
c# 学习笔记 (2) 窗体之间互相调用的方法 创建一个winform工程 创建两个窗体 一个子窗体,一个父窗体,这里为了演示,子窗体和父窗体上都有一个文本框和按键,点击任意一个窗体上的按键,窗体上文 ...
- OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十
OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...
最新文章
- 【 Verilog HDL 】清晰的时序逻辑描述方法之计数器的描述范例
- 【Android 应用开发】 Android 各种版本简介 ( Support 支持库版本 | Android Studio 版本 | Gradle 版本 | jcenter 库版本 )
- 一文读懂大数据平台——写给大数据开发初学者的话!
- mysql安装图形化管理界面phpMyAdmin
- QTP自动化测试视频系列
- 数字图像处理之边缘检测,图像分割
- HDU 1597 find the nth digit (二分查找)
- oracle错误27101,ORA-27101ORA-01034错误解决
- 防火墙阻止网页连接网络连接_win7电脑打不开网页怎么办 win7电脑打不开网页解决步骤【图文步骤】...
- 阿里云的RDS 查看binlog日志的方法
- Angular Js对象的拷贝复制
- Spring提供的iBatis的SqlMap配置
- 配置Android应用开发环境
- python从js文件中取数据_Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程...
- 什么是SPREADJS的脏数据?
- numpy - 数组随机排序
- 《创业维艰》详细的思维导图
- Linux编程起步 GCC基本用法
- 玉柴spn码故障对照表_玉柴ECI故障码表
- Transformer 中 比较晦涩难懂的东西