C#学习笔记——(六)
一、面向对象的编程
- 面向对象的编程帮助程序员通过建立真实世界的问题模型来管理复杂事物。
1、类和对象
- 类定义了一个新类型,并且用于代表问题域(要解决的问题和所了解的于问题相关的全部信息)中的一类事物;
- 对象是类的实例;
- 状态是对象的当前状态;
- 许多类定义了成员域,这些成员域是能够被类中每个方法所见的私有变量,但不能被类以外的方法所见;
- 类的行为通过方法来定义,方法中包含执行动作的代码。方法能够操作对象的状态,并能够于其他对象交互。
2、面向对象编程的三大支柱
- 面向对象编程的三大支柱是封装、具体化和多样性。
1、封装要求每个类都是独立的类,每个类应该"知道"或者"做"一件独立的事情或者一系列的事;
2、具体化通过广义类(基类)派生出许多具体类来实现。具体化的类继承了一般化类的许多特性,具体化的类叫作派生类,一般化的类被认为是基类;
3、多样性允许将不同的类作为一个集合,这些类派生出一个公共类,并且处理这些类与处理基类类型实例相同
二、类和对象
1、什么是类什么是对象
1>类和对象
- 面向对象:一种软件开发的思想,指导程序员如何分析、解决问题
- 类是一个对象的概念,即位生活中的"类别"
- 对象是类的具体实例,即归属于某个类别的"个体"
- 例如:学生是一个类,表示一种类型,"八戒同学"则是一个对象
- 名词类型的共性,作为数据成员
- 动词类型的共性,作为方法成员
2>创建类
- 语法:
访问级别 ~~ class ~~ 类名
{
~~~~~ 类成员…
} - 通常每个类都在一个独立的C#源文件中
- 创建新的类意味着在当前项目中产生了一种新的数据类型
- 类中的成员,如果不加访问修饰符,默认都是private
//Wife.cs
namespace Day07
{
/// <summary>
/// 定义 老婆 类
/// </summary>
class Wife
{
//数据成员
private string name;
private string sex;
private int age;
//方法成员
public void SetName(string name)
{
//this 这个对象(引用)
this.name = name;
}
public string GetName()
{
return name;
}
public void SetAge(int age)
{
this.age = age;
}
public int GetAge()
{
return this.age;
}
}
}
3>创建对象
- 语法:
类名 ~~ 引用名;
引用名 = new 构造函数(参数列表); - 创建对象的过程也被成为"实例化"
static void Main()
{
//声明Wife类型的引用
Wife wife01;
//指向Wife类型的对象(实例化Wife类型对象)
wife01 = new Wife();
wife01.SetName("令狐");
wife01.SetAge(18);
Wife wife02 = wife01;
wife02.SetName("小龙女");
//Wife wife02 = wife01;
//wife02 = new Wife();
//wife02.SetName("小龙女");
Console.WriteLine(wife01.GetName());
Console.WriteLine(wife01.GetAge());
}
2、构造函数
1>定义
- 提供了创建对象的方式,初始化类数据成员的特殊方法
- 语法:
[访问修饰符] ~