• 在C#中实现OOP概念


    1.C#中的对象和类

      类是对一组具有相同属性和行为的对象的描述

      编码惯例:

        给公共成员变量、受保护的成员变量或内部成员变量命名应使用帕斯卡命名法,如Score、Name和Staus

        给私有成员变量命名应使用骆驼命名法,并以下划线开头,如_age、_length 和_radius

    class Employee
    {
      private string _name;
      private char _gender;
      private string _qualification;
      private uint _salary;
    }

    2.访问修饰符

       public 可被所属类的成员以及不属于类的成员访问

       internal 可被当前程序集访问

       protected 可被所属类或派生自所属类的类型访问

       private 仅所属类的成员才可以访问

       如果对类不指定访问修饰符,则类的默认访问修饰符为internal ,但类成员的默认访问修饰符为private

    3.构造函数和析构函数

      C#提供了一个名为构造函数的结构来自动初始化成员变量,但构造函数是类中的一种特殊方法,每次创建类的实例都会调用此方法。构造函数与类同名,它不返回任何值。

    using System;
    
    namespace BaseConsole
    {
        class Employee
        {
            private string _name;
            private char _gender;
            private string _qualification;
            private uint _salary=0;
            //默认构造函数
            private Employee()
            {
                _qualification = "大学毕业生";
            }
            //参数化构造函数
            private Employee(string strQualification,string strName,char gender,uint empSalary)
            {
                _qualification = strQualification;
                _name = strName;
                _gender = gender;
                _salary = empSalary;
            }
            [STAThread]
            static void Main(string[] args)
            {
                Employee objEmployee = new Employee();
                //调用参数化构造函数
                Employee objMBA = new Employee("工商管理学硕士","tom",'M',4000);
                Console.WriteLine("资格="+objEmployee._qualification);
                Console.WriteLine("薪水="+objEmployee._salary);
                Console.WriteLine("资格="+objMBA._qualification);
                Console.ReadKey();
            }
        }
    }

    析构函数

    ~ Employee()
    {
      //实现析构函数
    }

     析构函数不接受任何参数,也不带任何访问修饰符。析构函数的主体包括了一些代码,通常用于关闭由实例打开的数据库、文件或网络连接等
      一个类只能有一个析构函数

      析构函数不能重载

      析构函数不能显式或手动调用,只能由垃圾回收器自动调用

    4.方法重载

      多个方法共用一个名称但对不同数据执行相似的功能,这种概念称为方法重载

    using System;
    
    namespace BaseConsole
    {
        class OverloadParameters
        {
            int greatest(int num1,int num2)
            {
                Console.WriteLine("{0}和{1}中较大的数字是:",num1,num2);
                if(num1>num2)
                {
                    return num1;
                }else
                {
                    return num2;
                }
            }
            int greatest(int num1,int num2,int num3)
            {
                Console.WriteLine("{0}、{1}和{2}中最大的数字是:",num1,num2,num3);
                if (num1 > num2 && num1 > num3)
                {
                    return num1;
                }
                else if (num2 > num1 && num2 > num3)
                {
                    return num2;
                }
                else
                {
                    return num3;
                }
                
            }
            [STAThread]
            static void Main(string[] args)
            {
                OverloadParameters obj = new OverloadParameters();
                Console.WriteLine(obj.greatest(22,88));
                Console.WriteLine(obj.greatest(300,200,100));
                Console.ReadKey();
            }
        }
    }
  • 相关阅读:
    JS 实现页面跳转
    JavaScript 获取指定的cookie值
    Jquery为单选框checkbox绑定单击事件
    “25岁博导”是“破五唯”的 正面榜样 还是 反面教材 ???
    国产软件如何让人再次失望——!20824 mindspore1.3.0gpu version can not compile from source code, because openmpi source code has bug
    sqlserver触发器引起的死锁问题
    Oracle客户端tnsnames.ora连接配置
    win7 调整C盘大小,不使用PQ
    C# 适合vs 2008和vs 2010的变量高亮highlight工具
    C# Response.Redirect引起的错误
  • 原文地址:https://www.cnblogs.com/dong897812629/p/2847467.html
Copyright © 2020-2023  润新知