1.面向对象
1.基本概念
面向对象是一种对现实世界理解和抽象的编程方法把相关的数据和方法组织为一个整体来看待。从更高的层次来进行程序开发,更贴近事物的自然运行模式。
-
万物皆对象
-
用程序来抽象(形容)对象
-
用面对对象思想来编程
2.面向对象的三大特性
封装:用程序语言来形容对象。
继承:复用封装对象的代码;儿子继承父亲,复用现成代码
多态:同样行为的不同表现,儿子继承父亲的基因但是有不同的行为表现
2.类与对象
1.什么是类
基本概念
具有相同特征
具有相同的行为
一类事物的抽象
类是对象的模板
可以通过类创建出对象
类的关键词 class
2.类申明在哪里
类一般申明在 namespace 语句块中
3.类申明的语法
class 类名
{
//特征--成员变量
//行为--成员方法
//保护特征--成员属性
//构造函数和析构函数
//索引器
//运算符重载
//静态成员
}
4.类申明的实例
//这个类是用来形容人类的
//命名:用帕斯卡命名法
//注意:同一个语句块中的不同类 不能重名
class Person
{
//特征--成员变量
//行为--成员方法
//保护特征--成员属性
//构造函数和析构函数
//索引器
//运算符重载
//静态成员
}
//这个类用来机器
class Machine
{
//特征--成员变量
//行为--成员方法
//保护特征--成员属性
//构造函数和析构函数
//索引器
//运算符重载
//静态成员
}
5.什么是(类)对象
基本概念
类的申明 和 类对象(变量)申明是两个概念
类的申明 类似 枚举 和 结构体的申明 类的申明相当于申明了一个自定义变量类型
而对象 是类创建出来的
相当于申明一个指定类的变量
类创建对象的过程 一般称为实例化对象
类对象 都是引用类型的
6.实例化对象基本语法
类名 变量名;
类名 变量名= null;(null代表空)
类名 变量名= new 类名();
7.实例化对象
Person p;
Person p2 = null;//null 代表空 不分配堆内存空间
Person p3 = new Person();//相当于一个人对象
Person p4 = new Person();//相当于又是一个人对象
//注意
//虽然他们是来自一个类的实例化对象
//但是他们的 特征 行为等等信息 都是他们独有的
//千万千万 不要觉得他们是共享了数据 两个人 你是你 我是我 彼此没有关系
Machine m = new Machine();
Machine m1 = new Machine();
//面对对象编程 就是开启了 女娲模式 造物模式 想要申明对象 就new申明对象
//一切的对象 都是由我们来控制的
//我们相当于是整个程序世界的 总导演
8.总结
类的申明 和 类对象的申明是两个概念
类的申明 是申明对象的模板 用来抽象(形容)显示事物的
类对象的申明 是用来表示现实中的 对象个体的
类是一个自定义的变量类型
实例化一个类对象 是在申明变量
3.成员变量和访问修饰符
1.成员变量
基本规则
1.申明在类语句块中
2.用来描述对象的特征
3.可以是任意变量类型
4.数量不作限制
5.是否赋值根据需求来定
enum E_SexType
{
Man,
Wonman,
}
struct Position
{
}
class Pet
{
}
class Person
{
//特征--成员变量
//姓名
public string name;
//年龄
public int age;
//性别
public E_SexType sex;
//女朋友
//如果要在类中申明一个和自己相同类型的成员变量时
//不能对它进行实例化
public Person girlFriend;
//朋友
public Person[] boyFriend;
//位置
public Position pos;
//宠物
public Pet pet;
}
2.访问修饰符
public--公共的 自己(内部)和别人(外部)都能访问和使用
private--私有的 自己(内部)才能访问和使用 不写 默认为private
protected--保护的 自己(内部)和子类才能访问和使用
目前决定类内部的成员 的 访问权限
3.成员变量的使用和初始值
值类型来说
数字类型 默认值都是 0
bool类型 false
引用类型来说 null
交给大家一个看默认值的小技巧 Console.WriteLine(default(int));
4.总结
总结
成员变量
描述特征
类中申明
赋值随意
默认值,值不相同
默认值,引用为null
任意类型
任意数量访问修饰符
public——公共的 自己(内部)和别人(外部)都能访问和使用
private——私有的 自己(内部)才能访问和使用 不写 默认为private
protected——保护的 自己(内部)和子类才能访问和使用