C# 面向对象编程进阶:构造函数详解与访问修饰符应用
C# 构造函数
构造函数是一种特殊的方法,用于初始化对象。构造函数的优势在于,在创建类的对象时调用它。它可以用于为字段设置初始值:
示例 获取您自己的 C# 服务器
创建一个构造函数:
输出 "Mustang"
请注意,构造函数的名称必须与类名匹配,并且不能有返回类型(如 void
或 int
)。
还请注意,构造函数在创建对象时调用。
所有类默认都有构造函数:如果您自己不创建类构造函数,C# 会为您创建一个。然而,这样您就无法为字段设置初始值。
构造函数参数
构造函数还可以接受参数,用于初始化字段。
下面的示例在构造函数中添加了一个字符串 modelName 参数。在构造函数内部,我们将 model 设置为 modelName(model=modelName
)。当我们调用构造函数时,将参数传递给构造函数("Mustang"),这将将 model 的值设置为 "Mustang":
示例
输出 "Mustang"
您可以拥有任意数量的参数:
示例
输出 Red 1969 Mustang
提示:与其他方法一样,构造函数可以通过使用不同数量的参数进行重载。
构造函数节省时间
没有构造函数:
有构造函数:
C# 访问修饰符
到目前为止,您已经很熟悉我们许多示例中出现的 public
关键字:
public
关键字是一个访问修饰符,用于设置类、字段、方法和属性的访问级别/可见性。
C# 具有以下访问修饰符:
还有两种组合:protected internal
和 private protected
。
现在,让我们重点关注 public
和 private
修饰符。
private
修饰符
如果您使用 private
访问修饰符声明一个字段,则它只能在同一类中访问:
示例
输出将是:
如果您尝试在类外部访问它,将会发生错误:
示例
输出将是:
public
修饰符
如果您使用 public
访问修饰符声明一个字段,则它对所有类都可访问:
示例
输出将是:
为什么要使用访问修饰符?
控制类成员的可见性(每个单独的类和类成员的安全级别)。
实现“封装”——这是一个确保对用户隐藏“敏感”数据的过程。这是通过将字段声明为
private
来完成的
如果您不指定访问修饰符,默认情况下,类的所有成员都是 private
:
示例
C# 属性(Get 和 Set)
在开始解释属性之前,您应该对“封装”有一个基本的了解。
封装的含义是确保对用户隐藏“敏感”数据。要实现这一点,您必须:
将字段/变量声明为
private
通过属性提供
public
get
和set
方法来访问和更新private
字段的值
属性
private
变量只能在同一类中访问(外部类无法访问它)。但是,有时我们需要访问它们 - 这可以通过属性来完成。
属性就像是变量和方法的结合,它有两个方法:get
方法和 set
方法:
示例
示例解释
Name
属性与name
字段相关联。通常的做法是属性和private
字段使用相同的名称,但首字母大写。get
方法返回name
变量的值。set
方法将一个值赋给name
变量。value
关键字表示我们赋给属性的值。
使用属性
现在我们可以使用 Name
属性来访问和更新 Person
类的 private
字段:
示例
输出
自动属性(简写)
C# 还提供了一种使用简写/自动属性的方法,您无需为属性定义字段,只需在属性中编写 get;
和 set;
。
以下示例将产生与上述示例相同的结果。唯一的区别是代码更少:
示例
为什么要封装?
更好地控制类成员(减少自己或他人搞乱代码的可能性)
字段可以设为只读(如果只使用
get
方法),或只写(如果只使用set
方法)灵活:程序员可以更改代码的一部分而不影响其他部分
提高数据安全性
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
版权声明: 本文为 InfoQ 作者【小万哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/549329f653b059070b6be45e9】。文章转载请联系作者。
评论