C#面向对象OOP之一

来源:互联网 发布:伊斯坦布尔之夜 知乎 编辑:程序博客网 时间:2024/06/04 19:07

一.类(class)

1.OOP(Object Oriented Programming


2.类要以class为开始,后接大括号{  }


3.类包含方法、变量、对象。


4.一个类里,可以有多个对象和多个方法。



二.对象(object)

1.对象是类的一个实例,用来存取和使用类中的方法和变量。


2.创建一个类的对象,例如

class ShanuHouseClass

{

int ...

public ...


static void Main (string [ ] args)

{

ShanuHouseClass objHouseOwner = new ShanuHouseClass();

...

}



三.变量(variable)

1.语法

(private) / public + 变量类型 + 名称

默认情况是private



四.方法(method)

1.语法

private / public / internal / protected / protected internal + 返回值类型 + 方法名(参数列表parameter list)



五.封装

1.封装就是对外部class隐藏成员或变量

封装这个功能是由访问修饰符 (access modifiers) 实现的


2.常用的访问修饰符有

private、public、internal、protected、protected internal


3.public

类和类之间可以互相访问


4.private

只有和private在同一个类中的才可以访问这个private,不在同一个类中的就不可以访问,除非以下两种方法

①在含有private的类中,用一个public的方法去调用这个private变量或private方法,然后在另一个类中调用这个类中的public方法

②在含有private的类中,声明另一个public变量,使用其属性,在另一个class中调用这个public变量

例如

    class program    {        static void Main(string[] args)        {            Person person = new Person();            Console.WriteLine(person.GetAge());            Console.ReadLine();        }    }    class Person    {        private int age;        public int Age        {            get { return age; }            set { age = value; }        }        public int GetAge()        {            return age;        }    }


下面例子是不可以调用private

    public class baseClass    {         private void privateMethod()         {             Console.WriteLine("private Method");         }         public void publicMethod()         {             Console.WriteLine("This Method Shared");         }     }     public class DerivedClass : baseClass     {         static void Main(string[] args)        {             DerivedClass obj = new DerivedClass();             obj.publicMethod();             //obj.privateMethod(); //This will be error as private method can not be accessed in Derived Class         }     }


5.internal

在同一个程序集(assembly)中可见

程序集即一个project生成的.exe可执行文件和.dll库文件,也就是说,在一个project中可以创建很多namespace,但是只要是在一个project中,那么internal变量就是可见的


6.protected

在自己的class或继承于自己的class的class中可见


7.internal protected

同时具有internal和protected的特性




原创粉丝点击