类的定义
  类是描述具有相同特征与行为的事物的抽象,类内部包含类的特征和类的行为
  类支持继承
  类的定义是关键字class为标志

类的格式
  访问标识符 class 类名
  {
    类主体
  }
  访问标识符:指定了类及其成员的访问规则。如果不指定则使用默认的标识符
  类的默认标识符为internal,而类成员的默认访问标识符为private
  类的主体:定义行为和数据,类的字段、属性、方法和事件统称为类成员

类中函数和封装
  类的成员函数是一个在类定义中有它的定义或原型的函数。作为类的一个成员,它能在类的任何对象上操作,且能访问该对象的类的所有成员
  成员变量是对象的属性(从设计角度),且它们保持私有来实现封装
  这些变量只能使用公共成员函数来访问
  具体封装的过程参考上篇博文C#-方法(八)

类中构造函数
  构造函数主要是用来创建对象时为对象赋初值来初始化对象。总与new运算符一起使用在创建对象的语句中
  构造函数具有和类一样的名称,但它是一个特殊的函数,同一个类里面可以有多个参数不同的构造函数,也就是函数的多态
  构造函数没有返回值,也不能用void修饰,只有访问修饰符
  每个类中都会一个构造函数,如果用户定义没有定义,编译器就会自动为该类型生成默认构造函数
  默认的构造函数没有任何参数
  构造函数目的是用于初始化类

示例

 namespace 构造函数
{
class Animal
{
//构造函数
public Animal(string name, string color, int speed)
{
this.name = name;
this.color = color;
this.speed = speed;
} //名称
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
//颜色
private string color;
public string Color
{
get { return color; }
set { color = value; }
} //速度
private int speed;
public int Speed
{
get { return speed; }
set { speed = value; }
} //主函数中创建类,获取构造函数中的属性
static void Main(string[] args)
{
Animal Tiger = new Animal("BigTiger", "yellow", );
Console.WriteLine("名字叫{0}身上的颜色是{1}行进速度为{2}", Tiger.Name, Tiger.Color, Tiger.Speed);
}
}
}

结果

  

类中析构函数
  析构函数用于释放被占用的系统资源
  析构函数的名字由符号“~”加类名组成
  析构函数只能被自动调用
  一个类只能有一个析构函数
  析构函数没有任何修饰符、没有任何参数、也不返回任何值
  析构函数不能继承或重载

 

构造函数VS析构函数
  构造函数和析构函数是在类中说明的两种特殊的成员函数
  构造函数是在创建对象时,使用给定的值将对象初始化
  析构函数用于释放一个对象。在对象删除前,使用析构函数做一些清理工作,它与构造函数的功能正好相反

示例

 using System;
namespace AgeApplication
{
class Age
{
private int number; // 线条的长度
public Age() // 构造函数
{
Console.WriteLine("年龄已创建");
}
~Age() //析构函数
{
Console.WriteLine("年龄已删除");
} public void setNumber(int Number)
{
number = Number;
}
public int getNumber()
{
return number;
} static void Main(string[] args)
{
Age XiaoMing = new Age();
// 设置年龄大小
XiaoMing.setNumber();
Console.WriteLine("小明的年龄是: {0}", XiaoMing.getNumber());
}
}
}

结果

 

类的静态成员
  使用static关键字把类成员定义为静态的
  静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取
  当把一个成员函数声明为static。这样的函数就只能访问静态变量

创建对象
  类定义对象的类型,但它不是对象本身
  对象是类的具体
  对象是基于类的具体实体,也称为类的实例
  通过使用new关键字,后跟对象将基于的类的名称,可以创建对象
  格式: 类名 对象名 = new 类名()
    例:有一个 public class Student{类主体}的类
    创建对象:Student XiaoMing = new Student();
    创建类的实例后,对象可以获得类的属性

C#-类(九)的更多相关文章

  1. Util应用程序框架公共操作类(九):Lambda表达式扩展

    上一篇对Lambda表达式公共操作类进行了一些增强,本篇使用扩展方法对Lambda表达式进行扩展. 修改Util项目的Extensions.Expression.cs文件,代码如下. using Sy ...

  2. ES6 Class(类)(九)

    一.Class类1.构造函数 constructor(){} 说明:a.如果没有重新定义带参数的构造函数,类会默认为我们提供一个不带参数的隐式构造函数b.在创建类的实例时会自动调用类中的构造函数 2. ...

  3. JAVA基础-11-Java Number 类--九五小庞

    问题:一直有疑惑,为什么java中学习了基本数据类型,而不使用,使用的是封装的对象. 解答: 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等. ...

  4. .net 常用的命名空间和类

    一.基础命名空间 l  System.Collections 包含了一些与集合相关的类型,比如列表,队列,位数组,哈希表和字典等. l  System.IO 包含了一些数据流类型并提供了文件和目录同步 ...

  5. Net常用命名空间和类介绍

    一.基础命名空间 l  System.Collections 包含了一些与集合相关的类型,比如列表,队列,位数组,哈希表和字典等. l  System.IO 包含了一些数据流类型并提供了文件和目录同步 ...

  6. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  7. XML-RPC远程方法调用

    一.简介 XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用. 它是一套允许运行在不同操作系统.不同环境的程序实现基于Internet过程调用的规范和一系列 ...

  8. MFC编程基础

    http://www.cnblogs.com/lzmfywz/archive/2012/03/15/2399403.html 一.MFC类库概述 MFC(Microsoft Foundation cl ...

  9. 前端新人学习笔记-------html/css/js基础知识点(二)

    4月7日学到的知识点:     一:<img src="1.png" alt="美女"/> alt是给图片添加介绍,当图片没加载出来时,会直接显示a ...

  10. Java知识总结

                                                                                                         ...

随机推荐

  1. Salesforce Sales Cloud 零基础学习(四) Chatter

    Chatter是一个Salesforce实时协作应用程序,它允许你的用户一起工作.互相交谈和共享信息,不管用户角色或位置如何,连接.并激励用户在整个组织内高效工作. Chatter 让用户们在 Opp ...

  2. JavaScript和Ajax部分(1)

    1. JavaScript变量有哪些数据类型? JavaScript是一种弱类型语言,在声明变量时不需要指变量的类型,变量的类型由赋给变量的值来决定. 常用的基本数据类型: 1 undefined(未 ...

  3. 02 Tensorflow Hello World程序

    打开python idle,输入: import tensorflow as tf # 创建常量 hello = tf.constant('Hello,world!') # 创建会话 sess = t ...

  4. 【原创】Git 分支的合并【Learn Git Branching】

    merge       git merge是我们要学习的合并工作的第一个方法.合并产生一个特殊的提交记录,它包含两个唯一父提交.有两个父提交的提交记录本质上是:“我想把这两个父提交本身及它们的父提交集 ...

  5. 机器学习基础:(Python)训练集测试集分割与交叉验证

    在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章.在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具.我会解释当使用统计模型时,通常 ...

  6. kubernets 单节点安装

    关闭防火墙和Selinux. setenforce 0 systemctl stop firewalld systemctl disable firewalld 配置EPEL源 yum install ...

  7. Go语言远程执行ssh命令简单封装(支持带交互命令)

    使用包:golang.org/x/crypto/ssh 以下封装一个发送命令的Cli结构体 type Cli struct { IP string //IP地址 Username string //用 ...

  8. javaScript之分支判断与内置对象

    一,分支结构 单一选择结构(if) 二路选择结构(if/else) 内联三元运算符 ?: 多路选择结构(switch) 1.1  if 控制语句 if-else基本格式: if (表达式){ 语句1; ...

  9. python学习笔记之自定义函数的导入

    python可以将自己编写的类放在py文件中,然后由其他程序调用,今天分享下:如何在shell中从文件引用自定义类和函数,下面是具体的过程: 第一步将你编写的文件声明编码类型 然后将你编写的文件保存为 ...

  10. Python系列:四、Python函数--技术流ken

    Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...