zoukankan      html  css  js  c++  java
  • 在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();
            }
        }
    }
  • 相关阅读:
    财报就像一本故事书270页完整版本.pdf
    洛克菲勒留给儿子的38封信打包下载
    pip-20.2.3.tar.gz安装包下载
    python-3.8.6rc1-amd64.exe安装包下载
    apache-maven-3.6.3-bin.tar.gz 安装包下载
    中文拼音排序 element-ui的table web端实现
    vue中用axios下载后端的文档流(excel)
    git历史重写
    AMQP
    TODO
  • 原文地址:https://www.cnblogs.com/dong897812629/p/2847467.html
Copyright © 2011-2022 走看看