科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件针对 Java 开发人员的 C# 编程语言(10)

针对 Java 开发人员的 C# 编程语言(10)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

针对 Java 开发人员的 C# 编程语言类基础

来源:MSDN 2007年11月7日

关键字: 编程语言 C# java Linux

  • 评论
  • 分享微博
  • 分享邮件

类基础

访问修饰符

C# 中的修饰符与 Java 大致相同,我们将在这一部分介绍其中的一些细微差别。每个类成员或类本身都可以用访问修饰符进行声明,以定义许可访问的范围。没有在其他类中声明的类只能指定 public 或 internal 修饰符,而嵌套的类(如其他的类成员)可以指定下面五个修饰符中的任何一个:

  • public — 对所有类可见

  • protected —仅从派生类中可见

  • private — 仅在给定的类中可见

  • internal — 仅在相同的程序集中可见

  • protected internal — 仅对当前的程序集或从包含类中派生的类型可见

public、protected 和 private 修饰符

public 修饰符使得可以从类内外的任何地方访问成员。protected 修饰符表示访问仅限于包含类或从它派生的类。private 修饰符意味着只可能从包含类型中进行访问。

internal 修饰符

internal 项只可以在当前的程序集中进行访问。.NET 中的程序集大致等同于 Java 的 JAR 文件,它表示可以从中构造其他程序的生成块。

protected internal 修饰符

protected internal 项仅对当前程序集或从包含类派生的类型可见。在 C# 中,默认访问修饰符是 private,而 Java 的默认访问修饰符是包范围。

sealed 修饰符

在其类声明中带有 sealed 修饰符的类可以认为是与抽象类完全相反的类 — 它不能被继承。我们可以将一个类标记为 sealed,以防止其他类重写它的功能。自然地,sealed 类不能是抽象的。同时还需要注意,该结构是隐式密封的;因此,它们不能被继承。sealed 修饰符相当于在 Java 中用 final 关键字标记类。

readonly 修饰符

要在 C# 中定义常量,我们可以使用 const 或 readonly 修饰符替换 Java 的 final 关键字。在 C# 中,这两个修饰符之间的区别在于,const 项是在编译时处理的,而 readonly 字段是在运行时设置的。这可以允许我们修改用于在运行时确定 readonly 字段值的表达式。

这意味着给 readonly 字段的赋值可以出现在类构造函数及声明中。例如,下面的类声明了一个名为 IntegerVariable 的 readonly 变量,它是在类构造函数中初始化的:

using System;
public class ReadOnlyClass
{
  private readonly int IntegerConstant;

  public ReadOnlyClass ()
  {
    IntegerConstant = 5;
  }
  // We get a compile time error if we try to set the value of the readonly
  //  class variable outside of the constructor
  public int IntMember
  {
    set
    {
      IntegerConstant = value;
    }
    get
    {
      return IntegerConstant;
    }
  }

  public static void Main(string[] args)
  {
    ReadOnlyClass obj= new ReadOnlyClass();

    // We cannot perform this operation on a readonly field
    obj.IntMember = 100;
    Console.WriteLine("Value of IntegerConstant field is {0}",
                             obj.IntMember);
  }
}

注意,如果 readonly 修饰符应用于静态字段,它就应该在该静态字段中进行初始化。

类的构造函数。

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章