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

 

 

posted @ 2013-01-07 11:24  摩天轮的幸福  阅读(2288)  评论(4编辑  收藏  举报