C#核心基础--类的声明
C#核心基础--类的声明
类是使用关键字 class
声明的,如下面的示例所示:
访问修饰符 class 类名
{
//类成员:
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
一个类应包括:
- 类名
- 成员
- 特征
一个类可包含下列成员的声明:
- 构造函数
- 析构函数
- 常量
- 字段
- 方法
- 属性
- 索引器
- 运算符
- 事件
- 委托
- 类
- 接口
- 结构
下面的示例说明如何声明类的字段、构造函数和方法。 该例还说明了如何实例化对象及如何打印实例数据。 在此例中声明了两个类,一个是 Child
类,它包含两个私有字段(name
和 age
)和两个公共方法。 第二个类 StringTest
用来包含 Main
。
class Child
{
private int age;
private string name; // Default constructor:
public Child()
{
name = "Lee";
} // Constructor:
public Child(string name, int age)
{
this.name = name;
this.age = age;
} // Printing method:
public void PrintChild()
{
Console.WriteLine("{0}, {1} years old.", name, age);
}
} class StringTest
{
static void Main()
{
// Create objects by using the new operator:
Child child1 = new Child("Craig", );
Child child2 = new Child("Sally", ); // Create an object using the default constructor:
Child child3 = new Child(); // Display results:
Console.Write("Child #1: ");
child1.PrintChild();
Console.Write("Child #2: ");
child2.PrintChild();
Console.Write("Child #3: ");
child3.PrintChild();
}
}
/* Output:
Child #1: Craig, 11 years old.
Child #2: Sally, 10 years old.
Child #3: N/A, 0 years old.
*/
注意:在上例中,私有字段(name
和 age
)只能通过 Child
类的公共方法访问。 例如,不能在 Main
方法中使用如下语句打印 Child 的名称:
Console.Write(child1.name); // Error
只有当 Child
是 Main
的成员时,才能从 Main
访问该类的私有成员。
类型声明在选件类中,不使用访问修饰符默认为 private
,因此,在此示例中的数据成员会 private
,如果移除了关键字。
最后要注意的是,默认情况下,对于使用默认构造函数 (child3
) 创建的对象,age 字段初始化为零。
Inheritance | 示例 |
---|---|
无 | class ClassA { } |
Single | class DerivedClass: BaseClass { } |
无,实现两个接口 | class ImplClass: IFace1, IFace2 { } |
单一,实现一个接口 | class ImplDerivedClass: BaseClass, IFace1 { } |
C#核心基础--类的声明的更多相关文章
- C#核心基础--类(2)
C#核心基础--类的声明 类是使用关键字 class 声明的,如下面的示例所示: 访问修饰符 class 类名 { //类成员: // Methods, properties, fields, eve ...
- c++学习笔记之基础---类内声明函数后在类外定义的一种方法
在C++的“类”中经常遇到这样的函数, 返回值类型名 类名::函数成员名(参数表){ 函数体.} 双冒号的作用 ::域名解析符!返回值类型名 类名::函数成员名(参数表) { 函数体. } 这个是在类 ...
- C#核心基础--类的继承
继承 一个类可以继承自另一个类.在 C#中,类与类之间只存在单一继承.也就是说,一个类的直接基类只能有一个.当类与类之间实现继承的时候,子类可以将它的直接基类的所有成员当做自己的成员,除了类的静态构造 ...
- c++学习笔记之基础---类内声明线程函数的调用
近日需要将线程池封装成C++类,类名为Threadpool.在类的成员函数exec_task中调用pthread_create去启动线程执行例程thread_rounter.编译之后报错如下: spf ...
- c#核心基础--类的构造方法
一.构造方法 类的构造方法是类的成员方法的一种,它的作用是对类中的成员进行初始化操作.类的构造方法分为: 1.静态构造方法 2.实例构造方法 3.私有构造方法 1.静态构造方法 类的静态构造方法是类的 ...
- IOS基础之 (三) 类的声明和对象的创建
一 OC类的声明和实现语法 1.接口的声明 @interface NewClassName: ParentClassName { 实例变量 ... } 方法的声明 ... @end //...表示省略 ...
- C#基础_类的声明
新建Clerk类. using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...
- css核心基础总结篇
今日这篇是整合前面的css补充知识的. 我觉得前面的关于css的知识补充进去有点乱,今日整理整理一下. 层叠样式表 层叠是什么意思?为什么这个词如此重要,以至于要出现在它的名称里. 层叠可以简单地理解 ...
- Android应用的核心基础
Android4开发入门经典 之 第二部分:Android应用的核心基础 Android应用中的组件 Application Components Android应用中最主要的组件是: 1:Activ ...
随机推荐
- 函数式编程之-Partial application
上一篇关于Currying的介绍,我们提到F#是如何做Currying变换的: let addWithThreeParameters x y z = x + y + z let intermediat ...
- k8s之external-etcd集群管理
一.概述 kubernetes使用etcd作为数据中心,使用kubeadm部署kubernetes的时候默认会自己部署一个etcd,当然也可以将kubeadm部署的单点的etcd做成集群,但是比较麻烦 ...
- 为什么LINQ to XML的性能要优于XmlDocument?
一直很忙,压了很多贴,今天发一篇吧.后面的看心情吧. 今天群里有人问如何解析web.config方便,然后我就推荐了Linq to XML,然后就有人说“我宁可XmlDocument,再SeleteN ...
- datatables 配套bootstrap3样式使用小结(1)
今天介绍汇总一下datatables. 网址: www.datatables.net 公司CMS内容资讯站的后台管理界面用了大量的table来管理数据,试用了之后,感觉挺不错,推荐一下. 先上一个基本 ...
- shell的命令替换和命令组合
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html Linux中使用反引号"``"(在波浪线的 ...
- 动手实践Mybatis插件
前言 Mybatis的插件开发过程的前提是必须要对Mybatis整个SQL执行过程十分熟悉,这样才能正确覆盖源码保证插件运行,总的来说Mybatis的插件式一种侵入式插件,使用时应该十分注意. 在之前 ...
- [转]RPA流程自动化-Blueprism认证考试介绍
本文转自:https://www.cnblogs.com/digod/p/9190186.html RPA流程自动化-Blueprism认证考试介绍 接触RPA有一段时间了,几种RPA相关工具也都试用 ...
- 【转载】Sqlserver中查询窗口显示行号
在Sqlserver中编写语句的时候,有时候因为业务逻辑比较复杂,编写的语句会比较多,此时如果编辑器中显示代码的行号,则对于我们的语句编写有很好的辅助作用.sqlserver默认未开启行号显示功能,可 ...
- 结构型---外观模式(Facade Pattern)
定义 外观模式提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口,让子系统更容易使用.使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通 ...
- DataTable和List互转
/// <summary> /// list转datatable /// </summary> /// <typeparam name="T"> ...