在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(); } } }
欢迎转载或分享,如果文章对你有帮助,请给予推荐,欢迎交流及关注!!!