• 【web后端】C#类与继承、随机数写法、虚函数、例题


    目录

    总结:

    1.get和set方法。

    2.父类调用基类的构造函数

    3.重载(有参数/多参数/无参数)||编译时多态

    4.Virtual与override||运行时多态

    5.继承写法

    6. 静态函数

    7.给出1~1000的随机数

    例题 

    person(父类)

    子类1:雇员类

    子类2:经理类

    主函数调用


     

    总结:

    1.get和set方法。

    [访问修饰符] 类型名  属性名

    {  get

       {  return  字段;   }

        set

       { 私有字段 = value; }

    }

    右键点击类成员快速重构。

    快速重构后get、set函数↓

    public int Rank1 { get => Rank; set => Rank = value; }  

     

    赋值:

    p.Rank1 = 2;  //person类的实例化对象p的属性rank赋值为2

    读取值

    p.Rank1//读取值

     

    2.父类调用基类的构造函数

    class Car

    {

        public Car(int i)    { }

    }

    class TrashCar : Car

    {

        public TrashCar(int i):base(i) { }

    }

    3.重载(有参数/多参数/无参数)||编译时多态

        public void PushBreak() { speed = 0; }

        public void PushBreak(int s)

    4.Virtual与override||运行时多态

      派生类将同名方法覆盖。

    5.继承写法

    class Manager : Person 

    Manager 继承Person 

    6. 静态函数

    private static int num = 0;  

    只能用类调用,不能由对象调用。

     

    7.给出1~1000的随机数

    1. Random rand = new Random(Guid.NewGuid().GetHashCode());  
    2. no_rand = rand.Next(01000);  


    例题 

     答:

     

    person(父类)

    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Text;  
    5. using System.Threading.Tasks;  
    6.   
    7. namespace ConsoleApp1  
    8. {  
    9.     public class Person  
    10.     {  
    11.         private string Name;  
    12.         private int Phone;  
    13.         private string Email;  
    14.         private int Rank;  
    15.   
    16.         public string Name1 { get => Name; set => Name = value; }  
    17.         public int Phone1 { get => Phone; set => Phone = value; }  
    18.         public string Email1 { get => Email; set => Email = value; }  
    19.         public int Rank1 { get => Rank; set => Rank = value; }  
    20.   
    21.         public virtual void ComputeSalary()  
    22.         {  
    23.             Console.WriteLine("姓名:" + this.Name1 + "工资:" + 1000 * Rank);  
    24.         }  
    25.     }  
    26. }  

    子类1:雇员类

    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Text;  
    5. using System.Threading.Tasks;  
    6.   
    7. namespace ConsoleApp1  
    8. {  
    9.     public class Employee : Person  
    10.     {  
    11.         private int Otime;  
    12.   
    13.         public int Otime1 { get => Otime; set => Otime = value; }  
    14.   
    15.         public override void ComputeSalary()  
    16.         {  
    17.             int temp = 1000 * this.Rank1 + 50 * Otime;  
    18.             Console.WriteLine("姓名:" + this.Name1 + "工资:" + temp);  
    19.         }  
    20.     }  
    21. }

    子类2:经理类

    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Text;  
    5. using System.Threading.Tasks;  
    6.   
    7. namespace ConsoleApp1  
    8. {  
    9.     class Manager : Person  
    10.     {  
    11.         private int performance;  
    12.         private int Members;  
    13.   
    14.         public int Members1 { get => Members; set => Members = value; }  
    15.         public int Performance { get => performance; set => performance = value; }  
    16.   
    17.         public override void ComputeSalary()  
    18.         {  
    19.             int temp = 2000 + Performance * Members;  
    20.             Console.WriteLine("姓名:" + this.Name1 + "工资:" + temp);  
    21.         }  
    22.     }  
    23. }  

    主函数调用

    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Text;  
    5. using System.Threading.Tasks;  
    6.   
    7. namespace ConsoleApp1  
    8. {  
    9.     class Program  
    10.     {  
    11.         static void Main(string[] args)  
    12.         {  
    13.             Person p = new Person();  
    14.             p.Name1 = "人";  
    15.             p.Phone1 = 123123;  
    16.             p.Email1 = "231016@qq.com";  
    17.             p.Rank1 = 2;  
    18.             Console.WriteLine("姓名:" + p.Name1 + " 电话" + p.Phone1 + " 邮箱" + p.Email1 + " 等级" + p.Rank1);  
    19.             p.ComputeSalary();  
    20.   
    21.             Employee e = new Employee();  
    22.             e.Name1 = "雇员";  
    23.             e.Phone1 = 4567;  
    24.             e.Email1 = "4567@qq.com";  
    25.             e.Rank1 = 5;  
    26.             e.Otime1 = 10;  
    27.             Console.WriteLine("姓名:" + e.Name1 + " 电话" + e.Phone1 + " 邮箱" + e.Email1 + " 等级" + e.Rank1 + "加班时间" + e.Otime1);  
    28.             e.ComputeSalary();  
    29.   
    30.             Manager m = new Manager();  
    31.             m.Name1 = "经理";  
    32.             m.Phone1 = 6666;  
    33.             m.Email1 = "6666@qq.com";  
    34.             m.Rank1 = 100;  
    35.             m.Performance = 100;  
    36.             m.Members1 = 50;  
    37.             Console.WriteLine("姓名:" + m.Name1 + " 电话" + m.Phone1 + " 邮箱" + m.Email1 + " 等级" + m.Rank1 + "人数" + m.Members1 + "绩效" + m.Performance);  
    38.             m.ComputeSalary();  
    39.         }  
    40.     }  
    41. }  

  • 相关阅读:
    对汉诺塔n=4的情况进行解析
    Arduino驱动BMA220三轴加速度传感器(惯性测量传感器篇)
    vue-router4之路由的跳转
    4G模块驱动移植
    JUC - 线程基础
    1818. 绝对差值和-快速排序加二分查找
    封装一个中间大两头小的轮播图(vue-awesome-swiper、vue2)
    Linux常用命令总结
    Java基础 进程与线程3
    小程序:uniapp解决主包体积过大的问题
  • 原文地址:https://blog.csdn.net/weixin_56537692/article/details/126803512