C#学习历程(九)[类的定义与声明]
一、C#中类的声明
在C#中必须先声明类,然后才能在程序中使用。
类的声明格式如下:
[类的属性] [访问修饰符] class 类名称 [: 父类名]
{
[成员修饰符] 类的成员变量或者成员函数
}
》》类的属性:类的属性集。
》》访问修饰符:说明类的特性。类的修饰符可以是以下几种之一或者是它们的组合:
》》new:只允许在嵌套类声明时使用,表明类中隐藏了由基类中继承而来的并且与基类中同名的成员。
》》public:公有类,允许对该类进行访问。
》》protected:受保护类,只能从所在类和所在类派生的子类中进行访问。
》》internal:内部类,在同一个项目里的所有代码都可以访问这个类。如果类没有添加访问修饰符,会被默认声明为“internal”。
》》private:私有类,只有本类才能访问。
》》abstract:抽象类,访问不受限制,但只能被继承,不能建立类的实例。
》》sealed:密封类,不允许被继承,只能建立类的实例。
》》class:声明类的关键字。
》》类名称:自定义的类的名称。
》》父类名:可以省略,表示被继承的类的名称。如果省略,则默认从object类继承而来。“父类名”也可以是接口,一个类可以继承多个接口,如果有多个接口时,请用逗号分隔开。
类与类之间只能单继承,但是类可以在继承一个父类的同时继承一个或多个接口。如果在类的声明中,既有父类又有接口类,则需要在冒号后面先放父类,然后再放接口名。
二、示例
namespace Test // 声明命名空间
{
class Program // 声明类
{
public Program() // 构造函数
{
.......
}
// 类成员和方法
}
}
如果使用public关键字来声明类Program,则其他项目中的代码也可以访问这个类。在本例中没有使用访问修饰符,类会被默认声明为“internal”,表示只有在同一项目里的所有代码才可以访问这个类。
一个类的创建需要三部分:命名空间、声明类和构造函数。
?命名空间:主要是区别不同程序集中的类。在Microsoft Visual Studio中创建项目时,会自动创建命名空间。
?构造函数:定义类时必须创建的函数。如果不创建构造函数,创建的类也会有默认构造函数。
C#学习历程(九)[类的定义与声明]的更多相关文章
- 12.1——类的定义与声明,隐含的this指针
类的定义与声明: (1)将const放在成员函数的形参列表之后,可以将将成员函数声明为常量,而它的意思是函数不能改变所操作的数据成员 这里必须在声明和定义处都加上const. (2)成员函数有一个隐含 ...
- (转载)OC学习篇之---类的定义
之前已经介绍了OC中的一个程序HelloWorld,今天我们继续学习OC中类的相关知识. OC和C的最大区别就是具有了面向对象的功能,那么说到面向对象,就不得不说类这个概念了,如果学过Java的话,那 ...
- OC学习篇之---类的定义
OC中类的相关知识 OC和C的最大区别就是具有了面向对象的功能,那么说到面向对象,就不得不说类这个概念了,如果学过Java的话,那么对类和对象的概念就不陌生了,因为Java是非常纯正的面向对象设计语言 ...
- C++基础学习8:类的定义(class)
先来说说C和C++中结构体的不同 a) C语言中的结构体不能为空,否则会报错(??) b) C语言中内存为空结构体分配大小为0,C++中为结构体和类分配大小为1byte c) C语言中的结构体只涉及到 ...
- 游戏基础元素之精灵——Cocos2d-x学习历程(九)
1.创建精灵 在实际使用中,精灵是由一个纹理创建的.在不加任何设置的情况下,精灵就是一张显示在屏幕上的图片.通常精灵置于层下,因此我们首选在层的初始化方法中创建精灵,设置属性,并添加到层中. 有多种方 ...
- 2.1 C++类的定义和声明
参考:http://www.weixueyuan.net/view/6333.html 总结: 类相当于一个新的数据类型,定义类对象时,除了能定义单个变量以外,用类定义一个数组或者指针都是可行的. 在 ...
- C++类的定义之作用域
每个类都定义了自己的新作用域和唯一的类型.在类的定义体内声明内成员,将成员名引入类的作用域.两个不同的类具有两个不同的类作用域. 例如: Class First { int memi; double ...
- Swift学习——类的定义,使用,继承,构造等(五)
Swift学习--类的定义,使用.继承,构造等(五) 类的使用说明 1 使用class和类名来创建一个类名,比如: class student 2 类中属性的声明和常量和变量一样,唯一的差别就是他们的 ...
- 疯狂java学习笔记之面向对象(一) - 定义类、方法、构造器
Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. ja ...
随机推荐
- HackerRank - candies 【贪心】
HackerRank - candies [贪心] Description Alice is a kindergarten teacher. She wants to give some candie ...
- 字符串的最小最大表示法O(n)
以下介绍内容内容转自:http://blog.csdn.net/zy691357966/article/details/39854359 网上看了这篇文章后还是感觉有些地方讲的没有详细的证明所以添加了 ...
- linux pip 查看版本提示
After upgrading pip (or pip3, in this case) if the following occurs: $ ~ pip3 -V Traceback (most rec ...
- JS知识点简单总结
JS(JavaScript) 是一种解释性语言 是弱/动态 最开始用于表单验证的 JS的五个部分: 1.核心语言定义 2.原生对象和内置对象 5boolean 3.BOM 4.DOM 5.事件处理模型 ...
- HCNP学习笔记之HCNP学习的几种境界
前言: 做任何事情都应该遵循一个循序渐进的过程,而这个过程可能是较为枯乏无味的,在我接触的人中主要分为踏实肯学满腹才华和半途而废不思进取两类.故而希望大家成为前者,勿做后者. 第一境界:散漫无序 简单 ...
- OGNL与ValueStack(VS)-N语法top语法(转)
N语法[0]:<s:property value="[0]"/><br> N语法[1]:<s:property value="[1]&quo ...
- SpringBoot集成Mybatis-PageHelper分页工具类,实现3步完成分页
在Mybatis中,如果想实现分页是比较麻烦的,首先需要先查询出总的条数,然后再修改mapper.xml,为sql添加limit指令. 幸运的是现在已经不需要这么麻烦了,刘大牛实现了一个超牛的分页工具 ...
- Spring Boot 中yml配置文件
步骤一:yml格式 现在大家发现,在springboot里还是要用到配置文件的. 除了使用.properties外,springboot还支持 yml格式. 个人觉得yml格式的可读性和..prope ...
- MySQL 删除重复记录
==========A really easy way to do this is to add a UNIQUE index on the 3 columns. When you write the ...
- mysql中一张(居民)表按年龄段查询数据
知识点: 用mysql,按年龄段查询一张居民的数据(各年龄段居民的个数) 1.如:查询resident(居民表),按照各年龄段,统计人数 2.mysql语句如下: select ageproporti ...