这篇文章可能比较基础,对于面向对象的知识稍作一点总结
首先什么是面向对象呢?其实说白了很简单啊,就是一种分析问题的方式,那么,为什么要用面向对象的分析思想呢?因为面向对象可以增加程序的可拓展性
面相对象的三大特性:封装,继承,多态
提到面向对象,顾名思义,必须要有对象,那么在对象之前,首先要有类,类里面有字段,属性,方法,而且一个类中,可以有多个字段,属性,方法,多个字段可以变成属性,那么用到的就是封装,类与类之间有继承,那么,为什么要继承呢?就是为了实现多态(接口,虚,抽象)有的同学分不清类和对象,类是一个模子(确定对象拥有的属性和方法)在这里,我给一个比较好记和理解的解释:我们以键盘为例,键盘就是一个类,而我的键盘,是一个对象,对象是看得见,摸得着的,类是没有特指的
封装:什么是封装?
类和对象本身就是封装的体现,类当中字段,如果用public,那么谁都可以访问,就没有安全性可言了,所以设置成private你只能在内部调用,我们可以把字段封装成一个属性,这里会有一个疑问,属性我不就可以在外部调用么?还是不安全啊,这个理解是不对的,属性我们就有get和set,可以控制属性里面的值,属性是保护字段的,举个例子吧,
lass Program
{
private int field1; //这个field1就是字段
public int Field1 //这个Fileds1就是属性
{
get{return field1;}
set{field1=value;}
}
}//因为字段的访问修饰符为private外部不能访问它,但可以定义属性为public来访问
封装不单单体现在这里,比如写了很多代码,这些代码做的都是同一件事情,这个时候我们就可以封装成方法,很多方法,发现做的事情差不多,可以放到类,封装。。将相同功能的代码封装到程序集
继承:主要是代码重用和多态LSP就是很好的例子,自己去理解,这里我要说下的是is和as的区别:英文is的中文意思是“是……”英文as的中文意思是“作为……(使用)”
所以,从字面意思来看也清楚这两个关键字是做什么用处的了。
那么,问题来了,他们怎么使用呢?
is是判断类型,,,as是转换类型比如判断a是不是b 。。。 if(a is b) 是的返回true,,否则返回false
把a类型转换成b类型 a as b ...这样转换比较安全,,应该转换失败不会出现异常,而是返回NULL,返回的是对象