在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();

        }

    }

}

 

 

你可能感兴趣的:(oop)