面向对象
//万物皆对象
//用程序来(形容)抽象对象
//用面向对象的思维来编程
面向对象关键知识
类 关键词 Class
面向对象三大特性
封装 + 继承 + 多态
封装:用程序来形容对象。
继承:复用封装对象的代码。
多态:同样行为不同表现。
面向对象七大原则
开闭原则、依赖倒转原则、里氏替换原则、单一职责原则、接口隔离原则、合成复用原则、迪米特法则
一、类和类对象
什么是类
基本概念:
//具有相同特征
//具有相同行为
//一类事物的抽象
//类是对象的模板
//可以通过类创建出对象
//类的关键词
//class
类申明在哪里
类一般申明在namespace语句块中
类的申明语法
class 类名
{
//特征——成员变量
//行为——成员方法
//保护特征——成员属性
//构造函数和析构函数
//索引器
//运算符重载
//静态成员
}
//命名 帕斯卡命名法
//注意:同一个语句块中的不同类 不能重名
//没有class 别谈封装 因为这里面的内容都是和封装相关的
什么是 (类)对象
基本概念:
//类的申明 和 类对象(变量)申明是两个概念
//类的申明 类似 枚举 和 结构体的申明 类的申明相当于申明了一个自定义变量类型
//而对象 是从类创建出来的
//相当于申明一个指定类的变量
//类创建对象的过程 一般称为实例化对象
//类和类对象 都是引用类型 (数组、string、类和类对象 引用类型)
实例化对象基本语法
//类名 对象名
//类名 变量名 = null;(null代表空)
//类名 变量名 = new 类名()
Person p; //不初始化
Person p2 = null; //不初始化 和 等于 null 都相当于在栈上开了房间没有存东西 故堆里没分配内存
Person p3 = new Person(); //new 了 那么在堆里已经分配了内存 //相当于一个人对象
Person p4 = new Person(); //相当于又是一个人对象
注意
//虽然是他们是来自一个类的实例化对象
//但是他们的 特征 行为 等等信息 都是他们独有的
//不要觉得他们是共享了数据 两个人 彼此没有关系
二、成员变量和访问修饰符
成员变量
成员变量基本原则
//1.申明在类语句块中
//2.用来描述对象的特征
//3.可以是任意变量类型
//4.数量不做限制
//5.是否赋值根据需求来定 可以不初始化
注意
/和结构体内部不能自己调用不同 类内部可以调用自己
//但如果要在类中申明一个和自己类型相同的成员变量时
//不能对它进行实例化 可以等于 null 但不能 new()实例化 否则死循环
成员变量的使用和初始值
/值类型来说 数字类型 默认值都是0 bool 类型 false
//引用类型 初始值都是 null
//看默认值的小技巧 default(变量类型) 就能得到默认值
Console.WriteLine(default(bool));
访问修饰符
//public
//private
**** //protected——保护的 自己(内部)和子类才能访问和使用