C#类和类的实例
类 ,顾名思义就是分类、类别的意思。我们要面向对象编程,就需要对不同的事物进行分类。类可以说是.net面向对象的核心。
类:就是具有相同的属性和功能的对象的抽象的集合。
1.类的定义
<访问修饰符> class <类名> { 类成员(字段、属性、方法、事件)}
举例说明,比如“人类”这就是一个类,里面可以包含属性 比如性别,种族,国家等。除了包含属性之外,还包含一些其他功能,比如:吃饭、睡觉等,可以理解为类的方法。
代码,如下:

1 class Person
2 {
3 public string gender { get; set; }
4 public string race { get; set; }
5 public string Country { get; set; }
6 public string Eat(string strCountry)
7 {
8 switch (strCountry)
9 {
10 case "美国":
11
12 return "爱吃西餐";
13
14 case "韩国":
15
16 return "爱吃泡菜";
17 default:
18 return "不知道";
19 }
20 }
21 }

对于类的修饰符,支持上节说的五个访问修饰符
|
访问修饰符 |
说明 |
|
public |
公有访问。不受任何限制。 |
|
private |
私有访问。只限于本类成员访问,子类,实例都不能访问。 |
|
protected |
保护访问。只限于本类和子类访问,实例不能访问。 |
|
internal |
内部访问。只限于本项目内访问,其他不能访问。 |
|
protected internal |
内部保护访问。只限于本项目或是子类访问,其他不能访问 |
- 类的命名空音默认修饰符为:public
- 类默认的访问修饰符为:public
- 类的成员默认的访问修饰符则为:private
- 类成员的作用域永远超不出包含它的类
- 可以申明一个静态类static class ClassName,但是它的成员必须全部显式定义为静态
2.类的实例化
类的实例 :就是类的一个真实的对象
<类名> <实例名> = new <类名>([构造函数的参数])
比如上面定义的人类,是一个类,而具体的某一个人,就是人类的实例,从类到类的实例的这个过程,叫类的实例化。
Person person=new Person();
3.构造函数
构造函数,又叫构造方法,就是对类进行初始化的方法。
其名称同类名,没有返回值,也不需要void ,在new的时候调用。
所有的类都有构造函数,只不过C#会默认一个无参数的构造函数,如果不定义,则使用默认。
如果定义了构造函数,则默认失效。
4.嵌套类
C#允许使用类嵌套
嵌套类型被视为是外层类型的成员,因此嵌套类型可以访问外层类型中的所有其他成员。
根据类的成员默认访问修饰符为:private的原则,嵌套类默认访问修饰符为private
嵌套类型可以自由访问外层类型的成员,而不在乎那些成员是否私有。外层类型如果想访问嵌套类型,则要受到访问规则的限制。
关于嵌套类的继承(后面会详细说明继承),如果一个类型继承了一个包含嵌套类型的类型,那么它也会自然的继承基类型中的嵌套类型,因为那个嵌套类型本身就是基类型的一个成员。因此只要那个嵌套类型不是private或者天生不能被继承的,子类型中新声明的嵌套类型还可以继承那个嵌套类型。
下面是嵌套类代码:

1 static class Tree
2 {
3 private static string _treeLeafColor = "Green";
4 static class AppleTree
5 {
6 private static string appleTreeLeaf = _treeLeafColor;
7 }
8 }

要点:
1.类可以使用修饰符static声明为静态类,申明静态后,类下所有成员必须是静态;
2.类的默认访问修饰符为:public,定义一个私的类时,要添加修饰符private;而类的成员默认访问修饰符则为:private,公有方法需要申明为:public
3.类的命名规范:采用首字母大写规则,不要使用系统类名或与修饰符相同的名字;
C#类和类的实例的更多相关文章
- [.net 面向对象编程基础] (9) 类和类的实例
[.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...
- Java Class类以及获取Class实例的三种方式
T - 由此 Class 对象建模的类的类型.例如,String.class 的类型是Class<String>.如果将被建模的类未知,则使用Class<?>. publi ...
- Ruby学习: 类的定义和实例变量
ruby是完全面向对象的,所有的数据都是对象,没有独立在类外的方法,所有的方法都在类中定义的. 一.类的定义语法 类的定义以 class 关键字开头,后面跟类名,以 end标识符结尾. 类中的方法以 ...
- 【类不类二】Python的类变量与实例变量
在研究类的时候,难免会有很多疑问,C论坛和博客园高手如云(不知道是不是也美女如云), 搜到了这篇博文,是介绍Python的类变量和实例变量的 ! 刚好在下对self.***这种形式的实例变 量不是很理 ...
- Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例
本文目录 1. 摘要 2. Redis配置 3. RedisHelper 4.使用实例 5. 总结 1. 摘要 由于內存存取速度远高于磁盘读取的特性,为了程序效率提高性能,通常会把常用的不常变动的数 ...
- 组合,Mixin,类、类对象、实例对象
1.组合,将几个横向关系的组合在一起.所谓的组合就是将类的实例化放到新类里面,那么就将旧类组合进去了. class Turtle: def __init__(self, x): # 注意 init 前 ...
- python 类的定义 实例化 实例完后初始化
先来看看 类的__init__, 类的__new__ , 元类的__new__的执行顺序 class TMetaclass(type): def __new__(cls,name,bases,attr ...
- python类属性和类方法(类的结构、实例属性、静态方法)
类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...
- python的面向对象-类的数据属性和实例的数据属性相结合-无命名看你懵逼不懵逼系列
1. class Chinese: country='China' def __init__(self,name): self.name=name def play_ball(self,ball): ...
- java入门---对象和类&概念详解&实例
Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 这篇文章,我们主要来看下: 对象:对象是类的一个实例(对象不是找个女朋友),有状态 ...
随机推荐
- Bootstrap(一)标题
Bootstrap标题样式进行了以下显著的优化重置: 1.重新设置了margin-top和margin-bottom的值, h1~h3重置后的值都是20px:h4~h6重置后的值都是10px.2.所 ...
- 各种IoC框架下实现AOP
.Net AOP(五) 各种IoC框架下实现AOP 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率 主要功能 日志记录,性 ...
- jquery倾斜的动画导航菜单
1. [代码]完整源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...
- js中innerText/value/innerHTML三个属性的区别
在做一个两个窗口之间的简单信息交互时遇见了一点问题,导致信息无法正常的传递. 最后发现问题是在innerText和value这两个属性上,先简单的总结记录一下几个相似的属性的作用: 1.innerTe ...
- jQuery学习(3)
可以在select中设置size属性的属性值,从而让下拉列表中的选项都显示出来. <!DOCTYPE html> <html> <head> <title&g ...
- ajax技术返回json如何处理
json只是一种文本字符串. Smarty是一个使用PHP写出来的模板引擎. ajax如何处理json数据格式 ①json的格式如下: "{属性名:属性值,属性名:属性值}". 因 ...
- GridView内容详解(转载)
GridView内容详解(转载) GridView是ASP.NET界面开发中的一个重要的控件,对GridView使用的熟练程度直接影响软件开发的进度及功能的实现.(车延禄)GridView的主要新特性 ...
- POJ 1577 Falling Leaves(二叉搜索树)
思路:当时学长讲了之后,似乎有点思路----------就是倒着建一个 二叉搜索树 代码1:超时 详见超时原因 #include<iostream> #include<cstrin ...
- 数据结构C语言版干货------->线性表之顺序表
一:头文件定义 /*************************************************************************** *项目 数据结构 *概要 逻辑 ...
- Javascript-- jQuery 核心
jQuery中each方法的应用 jQuery中有个很重要的核心方法each,大部分jQuery方法在内部都会调用each,其主要的原因的就是jQuery的实例是一个元素合集 如下:找到所有的div, ...