类,是面向对象语言的基础。类的三大特性:封装、继承、多态。最基本的特性就是封装性。
程序员用程序描述世界,将世界的所有事物都看成对象,怎么描述这个对象?那就是类了。也就是用类来封装对象。用书上的话说,类是具有相同属性和行为的对象的抽象。宝马汽车、别克汽车、五菱之光汽车... 基本具有相同的属性和行为,所以可以抽象一个汽车类,当然也可以把路人甲的宝马汽车、路人乙的别克汽车... 抽象一个汽车类。
类抽象完成后,可以实例化,实例化后的称之为一个对象,然后可以对属性赋值或运行类的方法。属性和方法同每个对象关联,不同的对象有相同的属性,但属性值可能不同;也具有相同的方法,但方法运行的结果可能不同。
类的属性和方法是被类封装的。
看如下类的定义:
using System;
namespace YYS.CSharpStudy.MainConsole
{
/// <summary>
/// 定义一个学校类
/// 这个类只有属性,没有方法(其实确切的来说是有一个默认的构造器方法)
/// </summary>
public class YSchool
{
/// <summary>
///字段, 类里面定义的变量称之为“字段”
/// 保存学校的ID
/// </summary>
private int id = 0;
/// <summary>
/// 保存学校的名字
/// </summary>
private string name = string.Empty;
/// <summary>
/// 属性,字段作为保存属性值的变量,而属性则有特殊的“行为”。
/// 使用get/set来表示属性的行为。get取属性值,set给属性赋值。因此get/set称为“访问器”。
///
/// ID属性
/// </summary>
public int ID
{
get
{
//get返回一个值,表示当前对象的该属性的属性值。
return this.id;
}
//这里的.号用于访问对象的属性或方法。
//this指当前对象,意即哪个实例在操作属性和方法,this就指哪个实例。
set
{
//局部变量value,value值是用于外部赋给该该属性的值。
this.id = value;
}
}
/// <summary>
/// 姓名属性
/// </summary>
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
public class YTeacher
{
private int id = 0;
private string name = string.Empty;
//这里将YSchool类作为了YTeacher的一个属性。
private YSchool school = null;
private string introDuction = string.Empty;
private string imagePath = string.Empty;
public int ID
{
get
{
return id;
}
set
{
id = value;
}
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public YSchool School
{
get
{
if (school == null)
{
school = new YSchool();
}
return school;
}
set
{
school = value;
}
}
public string IntroDuction
{
get
{
return introDuction;
}
set
{
introDuction = value;
}
}
public string ImagePath
{
get
{
return imagePath;
}
set
{
imagePath = value;
}
}
/// <summary>
/// 给学生讲课的方法
/// </summary>
public void ToTeachStudents()
{
//{0},{1},{2}是占位符,对应后面的参数。一般如果显示的内容中含有参数,我比较喜欢用string.Format。
Console.WriteLine(string.Format(@"{0} 老师教育同学们: Good Good Study,Day Day Up!", this.name));
}
/// <summary>
/// 惩罚犯错误学生的方法
/// </summary>
/// <param name="punishmentContent"></param>
public void PunishmentStudents(string punishmentContent)
{
Console.WriteLine(string.Format(@"{0} 的{1} 老师让犯错误的学生 {2}", this.school.Name, this.name, punishmentContent));
}
//字段、属性和方法前修饰符有:public,private,protected,internal
//public,字段、属性和方法均为公开的,不仅类中的其它成员能访问到,还可以通过类的实例访问的到。
//private,字段、属性和方法均为私有的,只能被类中的其它成员访问到,不能通过类的实例访问。
//protected,包含private特性,而且protected修饰的字段、属性和方法能被子类访问到。
//internal,在同一个程序集中和public一样,但是不能被其它程序集访问,而且子类的话,只能被同一个命名空间的子类访问到。
}
}
using System;
namespace YYS.CSharpStudy.MainConsole
{
class Program
{
static void Main(string[] args)
{
//实例化具体对象,并且赋值
YSchool shool1 = new YSchool();
shool1.ID = 1;
shool1.Name = "清华附中";
YSchool school2 = new YSchool();
school2.ID = 2;
school2.Name = "北师大附中";
YTeacher techerS = new YTeacher();
techerS.ID = 1;
techerS.Name = @"尚进";
techerS.School = shool1;
techerS.IntroDuction = @"很严厉";
techerS.ImagePath = @"http://";
//运行当前实例的方法
techerS.ToTeachStudents();
//运行当前实例的方法,传入参数
techerS.PunishmentStudents(@"抄所有学过的唐诗一百遍");
Console.WriteLine();
YTeacher techerQ = new YTeacher();
techerQ.ID = 2;
techerQ.Name = @"秦奋";
techerQ.School = school2;
techerQ.IntroDuction = @"和蔼可亲";
techerQ.ImagePath = @"http://";
techerQ.ToTeachStudents();
techerQ.PunishmentStudents(@"抄所有学过的数学公式一遍");
Console.ReadKey();
}
}
}
结果:

代码下载:http://download.csdn.net/detail/yysyangyangyangshan/4387330
PS:文中代码来源于做过的项目
分享到:
相关推荐
C#基础知识思维导图(整理版),较之前的版本,进行了一些整理
本资源提供了C#基础知识的系统整理,对于期末考试有一定的帮助作用。下面是从给定的文件中生成的相关知识点: 第一章 1. C#应用程序可以使用除Word应用程序以外的工具和方法进行开发。 2. 命名空间可以签到。 3. ...
这些是C#开发者必备的基础知识,理解和掌握它们对于编写高效、可维护的代码至关重要。 首先,让我们深入理解C#中的`yield`关键字。`yield`主要用于生成器(Generator)或迭代器,它允许你在运行时动态地生成一个...
一、C#基础 C#的基础部分涵盖了语法、变量、数据类型、控制结构(如if语句、switch语句、循环)、函数、类和对象等核心概念。理解这些基础知识是构建任何C#程序的基石。此外,手册可能还会涉及命名空间、接口、继承...
以上就是C#常用的知识点,掌握这些基础知识将有助于你构建和维护高质量的C#应用程序。在实际编程过程中,还需要不断学习和理解更高级的主题,如并发处理、单元测试、设计模式等,以提升专业技能。
C#基础知识思维导图(最终版),较之前的版本,进行了一些整理
对c#学习的各基础要点之间的关系的整理
### C#基础知识及计算机原理 #### 题目解析 **Question1.** - **问题描述不清晰,无法直接给出知识点,但从题目编号判断可能是C#语言的基础概念。** **Question2.** - **选项含义不明,但根据题目描述猜测可能...
【标题】"文件整理基础部分C#代码"的描述中提到了C#编程语言的应用基础知识,这可能包括了变量声明、数据类型、控制结构(如if语句、for循环、while循环)、函数定义与调用、类与对象、继承、接口、异常处理等核心...
2. **类与对象**:C#是面向对象的语言,这意味着它基于类和对象的概念。学习如何定义类,创建对象,以及如何使用类的成员(属性和方法)是C#的核心。 3. **继承、封装和多态**:这是面向对象编程的三大特性。继承...
【C# 知识点整理总结】 C# 是一种由微软公司开发的现代、通用的、面向对象的编程语言,其设计目标是简洁、高效、易于学习,并且具有丰富的编程特性。C# 是基于 C 和 C++ 的,但与 Java 有许多相似之处,尤其在面向...
根据提供的文件信息,我们可以归纳出以下C#...以上就是从给定文件中整理出来的C#基础知识点,这些知识点对于初学者来说是非常重要的基础概念。通过学习这些内容,可以帮助大家更好地理解和掌握C#编程语言的基础知识。
在面试中,对C#基础知识的掌握是评估候选人能力的重要环节。本资料包针对C#的基础知识进行了整理,涵盖了面试中常见的考点,以下是这些知识点的详细说明: 1. **C#语法基础** - 变量:包括数据类型(如int、float...
本资源"**C#开发工具类整理**"显然是一个集合了多种实用工具类的压缩包,旨在帮助开发者提高工作效率。下面我们将详细探讨其中涉及到的关键知识点。 1. **DotNet基础类大全**: 这部分可能包含C# .NET Framework或...
一、C#基础 1. 变量与数据类型:C#支持基本数据类型如int、float、double、bool,以及引用类型如string、object等。变量必须先声明后使用,遵循强类型检查。 2. 控制流:包括条件语句(if-else、switch)、循环...
C#学习知识库2.0版是一个专门为学习C#设计的知识整理系统,旨在帮助初学者和有经验的开发者更好地理解和掌握C#的关键概念和特性。 1. **基础语法**: - 变量与数据类型:C#支持基本数据类型(如int, double, bool...
C#高级编程涵盖了许多关键知识点,这包括了.NET体系结构、托管执行环境、组件使用、部署与版本控制、对象和类型等多个方面。首先,我们来深入理解.NET框架,它是.NET平台的基础,由公共语言运行库(CLR)和.NET ...
2. **C#读取AD域里用户名或组**:Active Directory(AD)是Windows操作系统中的目录服务,用于存储和管理网络资源。在C#中,可以使用System.DirectoryServices命名空间的类来与AD交互,如DirectoryEntry和...
以上是根据给定文件摘要整理出的C#编程基础知识点,涵盖了数据类型转换、字符串操作、控件属性设置、窗体显示与隐藏、文件读取以及键盘事件处理等方面的知识点。这些内容对于初学者来说是非常重要的基础技能,掌握了...
C#控件设计是开发Windows桌面应用程序的基础,它涉及到用户界面的设计和交互。在C#中,窗体(Form)是构建用户界面的基本组件,它提供了承载其他控件的平台。以下是一些C#控件及其常用设计的关键知识点: 1. **窗体...