C# 2010 从入门到精通 学习笔记6 第7章 创建并管理类和对象

2024-06-22 01:38

本文主要是介绍C# 2010 从入门到精通 学习笔记6 第7章 创建并管理类和对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C# 2010 从入门到精通 学习笔记6 第7章 创建并管理类和对象

本章内容

  1. 定义一个类,在其中包含一系列相互关联的方法和数据项
  2. 使用 public 和 private 关键字,控制类成员的可访问性
  3. 使用 new 关键字来创建对象并调用一个构造函数来初始化它
  4. 自己编写并调用构造函数
  5. 使用 static 关键字来创建可由同一个类的所有实例共享的方法和数据

7.1 理解分类

设计一个类的过程就是对信息进行分类,将相关信息放到一个有意义的实体中的过程。

7.2 封装的目的

定义一个类时,封装(Encapsulation)是一个重要原则。它的中心思想是:使用一个类的程序不应该关心类的内部实际如何工作。程序只需创建类的一个实例,然后调用类的方法。只要那些方法能做到它们宣称能做的事情,程序就不关心它们具体是如何实现的。
封装有时也称为信息隐藏(information hiding)。封装实际有以下两个目的:
  1. 将方法和数据合并到一个类中;换言之,为了支持分类。
  2. 控制对方法和数据的访问;换言之,为了控制类的使用。

7.3 定义并使用类

在 C#中,要用一个 class 关键字来定义一个新的类。类的数据和方法位于类的主体中(在两个大括号之间)。
注意:Math 类包含了用于执行数学计算的方法,另外还用一些字段来定义了数学常量。其中,Math.PI 字段包含了值 3.14159265358979323846,这是π的近似值。
在 C#术语中,类中的变量称为字段(field)。
重要提示:类和对象这两个术语不能混淆。类是一个类型的定义,对象则是该类型的一个实例,是在程序运行时才创建的。换言之,类是建筑蓝图,对象是按照这份蓝图来建造的房子。

7.4 控制可访问性

注意:C++程序员请注意,public 或 private 关键字之后不要添加冒号。在每个字段和方法声明中,都必须重复输入 public 或 private 关键字。
提示:类中的字段自动初始化为 0,false 或者 null,具体视类型而定。然而,作为一种良好的编程习惯,你应该显式地初始化字段。

重要提示:不要声明名称只是大小写有别的两个 public 类成员。否则,类就无法供对大小写不敏感的其他语言使用,比如 Microsoft Visual Basic。

7.5 使用构造函数

构造函数(constructor)是一种特殊的方法,它在创建类的一个实例时自动运行。它与类同名,能获取参数,但不能返回任何值(即使是 void)。每个类都必须至少有一个构造函数。如果不提供自己的构造函数,编译器会帮你自动生成一个默认构造函数。但是,编译器生成的默认构造函数不做任何实际的事情。默认构造函数非常好写——只需添加一个与类同名的 public 方法,不让它返回任何值就可以了。
注意:在 C#术语中,默认构造函数是指不获取任何参数的一个构造函数。至于是由编译器生成,还是由自己来写,则并不重要。同时还可以写一系列非默认构造函数(也就是要获取参数的构造函数)。
注意,构造函数被标识为 public。假如省略该关键字,构造函数将默认为 private(这和其他任何方法和字段是一样的)。private 构造函数不能在类的外部使用。
7.5.1 重载构造函数
注意:构造函数在类中的排列顺序是无关紧要的;可以随意采用任何顺序来定义它们。
使用C#语言时要注意:一旦为一个类写了任何构造函数,编译器就不再自动生成默认构造函数。

7.6 理解 static 方法和数据

事实上,并不是所有方法都必须通过类的实例来提供。这些“与众不同”的方法称为工具方法或者实用方法(utility method)。它们通常提供了一个有用的功能,而且这个功能独立于任何具体的类的实例。
在 static 方法中,不能访问类中定义的任何实例字段。相反,只能访问 static 字段。此外,只能直接调用类中的其他 static 方法;非 static 的方法(即实例方法)要求先创建一个对象,然后才能在那个对象上调用那些方法。
7.6.1 创建共享字段
你可以定义一个 static 字段,从而创建一个能在类的所有对象之间共享的字段(非 static 字段则局部于一个类的每个实例)。
提示:在 C#术语中,static 方法(静态方法)也叫做类方法(class method)。然而,static 字段(静态字段)通常不叫做类字段。相反,它们就叫做 static 字段,或者叫做 static 变量(静态变量)。
7.6.2 使用 const 关键字来创建 static 字段
有一种特殊的 static 字段,它的值是永远不会改变的,我们使用 const 关键字来声明这种字段。const 是“constant”(常量)的简称。const 字段虽然也是 static 字段,但在声明时不使用 static 关键字。



这篇关于C# 2010 从入门到精通 学习笔记6 第7章 创建并管理类和对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1082923

相关文章

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE