更改代码只需要更改需要改动的部分叫做可维护,代码可以重复利用利用叫做可复用,若更新的代码只需要加入新的代码即可叫做可扩展,代码可以更改位置不影响效果叫做灵活性好
对象是一个自包含的实体,用一组可别的特性和行为来标记
类就是具有相同的属性和功能的对象的抽象集合
实例就是一个真是的对象,而实例化就是创建对象的过程,使用new来创建
构建方法又叫做构建函数,其实就是对类进行初始化的过程。构造方法和类同名,无返回值,也不需要void在new的时候调用
所有类都有构造方法,如果你不编码则系统默认生成空的构造方法,若你有定义的构造方法,那么默认的构造方法就会失效。
方法重载就提供了创建同名的多个方法,但这些方法需要使用不同的参数类型。
属性是一个方法式,一对方法,但在调用它的代码看来需要不同的参数类型。既属性适合于以字段的方法使用方法调用的场合。字段是存储类型要满足其设计所需要的数据,子u但与类相关的关联。
多态表示不同的对象可以执行相同的动作,但要通过他们自己的实现代码来执行。为了使子类的实例完全接替来自父类成员,父类必须将该成员声明为虚拟的(virtual)子类写为override重写父类方法。
接口(interface)是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。
抽象和接口都只能被继承,不能被实例化。
简单工厂方法:
定义一个基类 Operation:public class Operation
{
private double _numberA=0;
private double _numberB=0;
public double NumberA
{
get{return _numberA;}
set{_numberA=value;}
}
public double NumberB
{
get{return _numberB;}
set{_numberB=value;}
}
public virtual double GetResult()
{
double result=0;
return result;
}
}
定义加减乘除类继承Operation
class OperationAdd:Operation
{
public overrite double GetResult()
{
double result=0;
result=NumberA+NumberB;
return result;
} }
class OperationSub:Operation
{
public overrite double GetResult()
{
double result=0;
result=NumberA-NumberB;
return result;
} }
class OperationMul:Operation
{
public overrite double GetResult()
{
double result=0;
result=NumberA*NumberB;
return result;
} }
class OperationDiv:Operation
{
public overrite double GetResult()
{
double result=0;
if(NumberB==0)
throw new Exection("除数不能为0:")
result=NumberA/NumberB;
return result;
} }
简单运算工厂类:
public class OperationFactory
{
public static Operation createOperate(string operate)
{
Operation oper=null;
switch(operat)
{
case "+":
oper=new OperationAdd();
break;
case "-":
oper=new OperationSub();
break;
case "*":
oper=new OperationMul();
break;
case "/":
oper=new OperationDiv();
break;
}
}
}
简单工厂模式就是工厂实例化合适的对象,通过多态,返回父类的方式实现了计算器的效果