黑马程序员技术交流社区

标题: 修饰符private protected public [打印本页]

作者: 宋超    时间: 2012-3-23 19:17
标题: 修饰符private protected public
private  
protected
public
这几个修饰符在C#有什么区别呀 ?
作者: 蓝汝逸    时间: 2012-3-23 19:30
private 关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的,如下例所示:

class Employee
{
    private int i;
    double d;   // private access by default
}

同一体中的嵌套类型也可以访问那些私有成员。

在定义私有成员的类或结构外引用它会导致编译时错误。


protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。有关 protected 与其他访问修饰符的比较,请参见可访问性级别。

仅当访问通过派生类类型发生时,基类的受保护成员在派生类中才是可访问的。例如,请看以下代码段:

// protected_keyword.cs
using System;
class A
{
    protected int x = 123;
}

class B : A
{
    static void Main()
    {
        A a = new A();
        B b = new B();

        // Error CS1540, because x can only be accessed by
        // classes derived from A.
        // a.x = 10;
        
        // OK, because this class derives from A.
        b.x = 10;   
    }
}

语句 a.x =10 将生成错误,因为 A 不是从 B 派生的。

结构成员无法受保护,因为无法继承结构。








public 关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别。对访问公共成员没有限制,如下例所示:

class SampleClass
{
    public int x; // No access restrictions.
}



作者: →篱誸de~箭    时间: 2012-3-23 19:52
private  私有只能在本类访问
protectedq 受保护成员在其所在的类中可由派生类实例访问。
public  访问权限最高的妄言访问修饰符

作者: 杨华威    时间: 2012-3-23 21:21
1.public(公有的):可以被该类的和非该类的任何成员访问。
2.private(私有的):仅仅可以被该类的成员访问,任何非该类的成员一概不能访问。(主要是隐藏数据来保证数据的安全性)
3.protected(保护的):仅仅可以被子类和类本身还有同一个包里的类访问。protected 表明被它修饰的成员变量为保护类型,在同一个包里和 public 类型是一样的,也是能够访问到的。但是如果在不同包里的 protected 类型的成员变量就只能通过子类来访问,这个修饰符是区别于其他的修饰符的。

作者: 韩迎龙    时间: 2012-3-23 21:31
public 可以再任何地方被访问。
internal 只能在本项目中被访问
private 只能在本类中被访问
protected 只能在本类或者子类中被访问。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2