`

C# public、protected、private

阅读更多

每个类都创造了有自己的名字空间,指方法和变量可以知道彼此的存在,可以使用。
public类不但可以被同一程序包中的其它类使用,别的程序包中的类也可以使用;
变量和方法的修饰字public、protected、private:
public:任何其他类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。

protected变量和方法:
如果一个类中变量或方法有修饰字protected,同一类、同一包可以使用。不同包的类要使用,必须是该类的子类,可以存取变量或调用。

同包的类

不同包但是是子类

private不允许任何其他类存取和调用;
当子类中的变量名与父类的相同,原来的变量被遮盖。
方法的覆盖(overriding)和重载(overloading)。子孙类中定义的方法和祖先类中某个方法同名、同参数行,则祖先类中的该方法被覆盖;方法的重载是指一个对象的多态性,即多个方法用相同的名称,但参数行不同。
final:
final在方法之前,防止该方法被覆盖;
final在类之前,标是该类不能被继承;
final在变量之前,定义一个常量。
static:
在变量或方法之前,表明它们是属于类的;
静态变量在各实例间共享,如果是public静态变量,则其它类可以不通过实例化访问它们;
静态方法称为类的方法,因此不用实例化即可调用(面向过程)
一个对象的方法可以访问对象的数据成员,尽管不属于方法的局部变量;一个类的方法只能访问自己的局部变量。
例:不正确的引用
class StaticError{
String mystring="hello";
public static void main(String args[]){
System.out.println(mystring);}
}
错误信息:can’t make a static reference to nonstatic variable.
为什么不正确?只有对象的方法可以访问对象的变量。
解决的办法:
1) 将变量改称类变量
class StaticError{
static String mystring="hello";
public static void main(String args[]){
System.out.println(mystring);}
}
2) 先创建一个类的实例
class NoStaticError{
public static void main(String args[]){
String mystring="hello";
System.out.println(mystring);}
}
}

 

 

 经常在写程序时,遇到这些最基本的问题,特记录在此,以便于将来铭记!

  public   可以被外部成员调用  
  internal   可以在当前项目调用  
  protected   只能在被类的成员和该类的子类调用  
  private   只能在被类的成员调用
  不写时限定符时,默认为default

 

分享到:
评论

相关推荐

    JS中的public和private对象,即static修饰符

    在C#等静态类型语言中,public、private和static是访问修饰符,用于控制类成员的可见性和作用域。而在JavaScript中,由于其原型继承的特性,我们通常使用函数作用域和闭包来模拟这些行为。 下面我们将基于提供的...

    Java和C#的比较

    在访问控制方面,C#有public、internal、protected、private四种访问级别,而Java只有public、protected、private三种访问级别。C#的internal访问级别跟Java的包访问级别差不多,表示同一个编译集合下的类可以互访。...

    asp.net 修饰符介绍(关于public、private、protected、internal)

    本文将详细介绍***中四种核心的访问修饰符:public、private、protected、以及internal,它们分别定义了不同级别的访问权限。 首先,public修饰符提供最宽松的访问限制,这意味着用public修饰的类或成员可以被程序...

    C#注册窗体热键 RegisterHotKey UnregisterHotKey

    在C#编程中,我们有时需要为应用程序添加快捷键功能,以便用户可以通过键盘组合快速触发特定操作。`RegisterHotKey`和`UnregisterHotKey`是Windows API中的两个函数,用于在系统级别注册和注销热键。这两个函数允许...

    java C# 面向对象方面的比较.doc

    - C#提供了public、internal、protected和private四种访问修饰符,而Java只有public、protected、package-private(无修饰符)和private。C#的internal类似于Java的package-private,限制在同一编译单元内的访问。...

    C#面向对象实验六

    在本"C#面向对象实验六"中,我们将深入学习C#编程中的面向对象特性,包括类的定义与使用、类的继承、访问修饰符(如public、private和protected)的应用,以及类的多态性。这些是C#编程中至关重要的概念,对于构建...

    C# 下的自由打印,不使用水晶报表,实现列表式的打印。

    刚学C# 1个月时写的,如果污染了视听,请见谅。 struct PageProperty { public int PageLeft; public int PageTop; public int PageBottom; public int PageWidth; public int PageHeight; public int Row...

    C#/asp.net面试题目

    3. 在 C# 中,三个基本的访问修饰符是:public、private、protected。 ADO.NET 1. ADO.NET 中的五个主要对象是:Command、Connection、DataReader、DataSet、DataAdapter。 2. 使用 foreach 遍历访问的对象需要...

    C#设计模式(word)

    protected IComponent _component; public Decorator(IComponent component) { _component = component; } public void Operation() { _component.Operation(); } } public class ConcreteDecoratorA : ...

    C#语言规范 / C# Language Specifications

    - **成员访问和可访问性**:成员的访问权限(如public、private、protected等)定义了谁可以访问该成员。成员访问遵循一定的规则,如实例成员只能通过对象实例访问。 ### 4. 类型 - **值类型与引用类型**:C#中的...

    C#设计模式DEMO

    在C#中,设计模式的应用极大地提高了代码的可维护性、可读性和可复用性。本DEMO将深入探讨一些常见的设计模式,并通过实际的C#代码示例来解释它们的工作原理和应用场景。 首先,我们来看看“单例模式”。这种模式...

    C#实验报告.doc

    - 理解类的访问修饰符(public、private、protected等)的作用。 6. **掌握虚拟方法和重载方法的使用:** - 学习虚方法(virtual method)的定义及其重写(override)的过程。 - 了解方法重载(overloading)的原理,...

    C# 基础语法.pdf (纯干货)

    封装是面向对象编程的核心概念,通过访问修饰符(public、private、protected、internal)控制成员的可见性,实现数据隐藏和信息封装。 方法是代码的可重用单元,可以看作是执行特定任务的函数。方法可以有参数和...

    C#中在一个窗体里调用另一个窗体的方法

    protected virtual void OnButton1Clicked(object sender, EventArgs e) { if (Button1Clicked != null) Button1Clicked(sender, e); } public void button1_Click(object sender, EventArgs e) { OnButton1...

    C#学习之路--访问修饰符

    在C#中,访问修饰符有五种:private(私有的)、protected(受保护的)、internal(程序集内部的)、public(公开的)和protected internal(只有本程序内或者继承于该类的类型可以访问)。 1. public(公开的): ...

    ACCP6.0C#OOP作业

    7. **访问修饰符**:如前所述,C#有public、private、protected、internal等访问修饰符,用于控制类成员的可见性。 8. **接口**:接口定义了一组方法签名,但不包含具体的实现。类可以实现多个接口,实现接口中的...

    C#语言定义文档 中文版(微软官网)

    封装是通过访问修饰符(public、private、protected等)来管理代码的可见性;多态则允许不同类的对象对同一消息做出不同的响应。 3. **接口与抽象类**:接口定义了一组方法签名,实现接口的类必须提供这些方法的...

Global site tag (gtag.js) - Google Analytics