在英语中类(class)是分类(classification)的根词。设计类的过程就是对信息进行分类,将相关信息放到有意义的实体中。

  封装的目的:

  封装就是定义类的重要原则。中心思想是:使用类的程序不应该关心类内部如何工作。程序值需要创建类的实例并调用类中的方法。类为了执行其存在的方法,可能要维护各种内部状态信息,还需要在类中各种活动,在使用类的程序面前,这些额外的状态信息和行动是隐藏的,所以有时候称之为信息隐藏。

  1、将方法和数据合并到类中,也就是为了支持分类。

  2、控制对方法和数据的访问,也是就为了控制类的作用。

   定义并使用类:

  c#中使用class关键字定义新类。类的数据和方法放在类的主体中。

  首先新建一个类。类中的代码如下

  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//using System.Text.RegularExpressions; namespace tesetData
{
class Class1
{
//申请一个变量用来存储 圆半径
int radius=;
public double Area()
{
//Math类包含用于执行数学计算的方法,还定义了一些数学常亮Math.PI包含字段3.14159265358979 圆周率
//
// 摘要:
// 为三角函数、对数函数和其他通用数学函数提供常数和静态方法。
//若要浏览此类型的.NET Framework 源代码,请参阅 Reference Source。
return Math.PI * radius * radius; }
}
}

主函数部分:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace tesetData
{
class Program
{ static void Main(string[] args)
{
Class1 Test = new Class1();//实例化class1这个类
Console.WriteLine (Test.Area());
Console.ReadLine();
}
}
}

  提示:方法中声明的变量不会自动初始化,但是类中的字段是会自动初始化的。类的字段会自动初始化为1,false,null,具体的初始化是更具类型而定,原则上是手动的初始化变量。

  c#命名和可访问性

  公共标识符以大写字母开头,因为他是公共的,这是所谓Pascalcase命名方法,

  非公共标识符,包括局部变量以小写字母开头,因为他是私有的,就是camelCase命名法

  注意:不要声明名称只有大小写不同的两个公共成员,口则在不区分大小写的语言中就没有办法使用。

上面这个例子创建了一个class1这个类。在这个类中申请了一个int型数据并赋值为2,然后调用Math.PI这个圆周率的近似值,double型的数据。时间圆面积的计算。

  在上面这个例子有一个问题就是不能访问radius这个变量,从而不能再在类的外部修改这个变量的参数。解决方法使用构造器

   构造器:是在创建类的实例中自动运行的方法,他与类同名,能获取参数,但是不能返回任何值,每个类至少要有一个构造器,如果不提供构造函数,系统会自动创建一个控的构造函数。

即每一个类需要一个同名的构造函数。c#默认的构造器是么有参数的构造器,至于由编译器产生还是自己写都不重要,还可以写一系列非默认的构造器,有参数构造器。

  

上面这个例子是使用构造函数,来设置radius参数。当然也可以编写几个入口参数,这就是重载构造器。

 

分部类:

 类可以包含大量的方法、字段、构造器。一个功能齐全的类相当大。c#允许将类的源代码分到单独的文件中。这样,大型的定义就可以用较小的。更加容易管理的部分进行组织。

  类被拆分到多个文件中之后,要在每个文件中使用partial分部关键字定义类不同的分部。这里演示的是在一个文件中分部类,当然也可以是两个文件来写。

c# 类的知识的更多相关文章

  1. 【转载】UML类图知识整理

    原文:UML类图知识整理 UML类图 UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料. 这里简单整理 类之间的关系 泛化关系(generalization) 泛化(generalize ...

  2. 在VC6.0下运行C语言程序,以及编程入门必备的常识类小知识!

    今天给大家分享在VC6.0环境下编写C语言程序的基本步骤,为初学者打开学习C语言的第一道门.具体步骤如下(如果需要软件资源,可以留言): 1)新建工作区 依次点击 文件--新建--工作区 或是Ctrl ...

  3. 【C++】类-基础知识

    类-基础知识 目录 类-基础知识 1. 语法定义 2. 类的实现 3. 三个基本的函数 3.1 构造函数 功能 形式 调用时机 默认构造函数 3.2 复制构造函数 功能 形式 调用时机 3.3 析构函 ...

  4. String 类相关知识

    1.常用方法 1)判断字符串是否为空 public boolean isEmpty()2)获取字符串长度 public int length()3)截取子子串 public String substr ...

  5. Java _类 相关知识

    成员变量 java对象的属性就是成员变量,其实成员变量就是指普通的变量,可以设置初始值,也可以不设置.当不设置时,会被设置为默认值.(当成员变量前面有private关键词时,说明定义了一个私有成员) ...

  6. Python类基础知识(面向对象基础)

    #首先 我们需要了解 面向过程是什么 面向对象是什么 我们为什么需要使用面向对象 面向过程:根据业务逻辑从上到下写垒代码 面向对象:根据代码对函数进行分类和封装 区别:解决问题的逻辑不同,但是都能解决 ...

  7. C++ 学习笔记(五)类的知识小结一(重载,友元函数,静态成员,new)

    ---恢复内容开始--- 学习C++类知识点还是挺多的,每个知识点学习的时候都觉得这个知识点咋那么多东西,其实真学完了再回头看好像也就那么点.这次用程序写一个黑猫揍白猫的故事总结一下这段时间学习的零碎 ...

  8. php类相关知识----类常量,静态变量

    类常量 <?php class myuser { ;//定义的常量不带$符号,常量之前没有访问修饰符,常量之前没有修饰符号 public function monolog() { echo &q ...

  9. Java String类相关知识梳理(含字符串常量池(String Pool)知识)

    目录 1. String类是什么 1.1 定义 1.2 类结构 1.3 所在的包 2. String类的底层数据结构 3. 关于 intern() 方法(重点) 3.1 作用 3.2 字符串常量池(S ...

随机推荐

  1. 【SQL】where 后不可以接聚合函数,都哪些是聚合函数?

    where 后不可以接聚合函数,比如函数:SUM(count),AVG(count),MIN(count),MAX(count)

  2. mysql分页优化方法

    mysql分页优化方法 今天遇到开发反应分页语句很慢,马上看一下到底是啥的分页语句 原分页语句 SELECT * FROM `tt` LIMIT , 执行这个语句需要6秒+时间 执行计划为全表扫描 在 ...

  3. python用%来处理字符串

    %s 可以字符串拼接 msg='i am %s my hobby is %s' % ('lhf','alex') print(msg) 执行结果: i am lhf my hobby is alex ...

  4. vue 验证码倒计时

    //html <div class="input-div" v-show="formData.phone"> <input type=&quo ...

  5. Java中输出正则表达式匹配到的内容

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class A { public static void ...

  6. 使用Pyinstaller打包python py文件注意事项

    首先需要将cmd或者PowerShell目录cd 跳转到py脚本所在目录,然后直接执行 Pyinstaller -F即可完成程序的打包,其中我们关心它有哪些常见参数: 输入参数的含义 -F 表示生成单 ...

  7. Oracle 11g快速收集全库统计信息

    环境:Oracle 11.2.0.4 采用并行的方式,快速收集全库统计信息,多用于跨版本升级之后,对全库的统计信息重新进行快速收集: --开启计时 set timing on --设置并行收集 exe ...

  8. G 面经 && Leetcode: Longest Repeating Character Replacement

    Given a string that consists of only uppercase English letters, you can replace any letter in the st ...

  9. Hadoop.之.入门部署

    一.课程目标 ->大数据是什么?大数据能做什么? ->什么是Hadoop?Hadoop的设计思想? ->Hadoop如何解决大数据的问题?(什么是hdfs与yarn.MapReduc ...

  10. jQuery绑定事件方法及区别(bind,click,on,live,one)

    第一种方式: ? 1 2 3 4 5 $(document).ready(function(){  $("#clickme").click(function(){  alert(& ...