您的位置:首页 > 其它

设计模式学习笔记二:面向对象基础二

2009-05-12 14:31 337 查看

1.类与实例
    对象是一个自包含的的实体,用一组可识别的特性和行为来标识。一切事物皆为对象,对象就是可以看到、感觉到、听到、触摸到、尝到、或闻到得东西
    类就是具有相同的属性和功能的对象的抽象集合。
  

public class Cat
{
//声明一内部字段,注意是private,默认叫的次数是3
private int shoutnum = 3;
//ShoutNum属性,注意是public,当中有两个方法
//get表示外界调用是可以得到shoutnum的值
//set表示外界可以给内部的shoutnum赋值
public int ShoutNum
{
get { return shoutnum; }
set { shoutnum = value; }
}
}

 

上面代码中的private 和public都是修饰符。public 表示所修饰的类成员可以允许其他任何类来访问,俗名公有的。private 表示只允许同一个类中的成员访问,其他类包括他的子类无法访问,俗名私有的。如果类中的成员没有加修饰符,则默认为private。通常字段都是private,属性都是public。通常情况下,属性名称首字母大写,而字段则一般是首字母小写或者前面加‘_’。
    属性有两个方法get和set。get访问器返回与声明的属性相同的数据类型,表示的意思是调用是可以得到内部字段的值或者引用;set访问器没有设置参数,用关键词value表示,他的作用是调用属性是可以给内部的字段或引用赋值。
封装
    封装是面向对象的三大特性之一。每个对象都包含他能进行操作所需要的所有信息,这个特性成为封装,因为对象不必依赖其他对象来完成自己的操作。
    封装的好处:良好的封装能减少耦合;类内部的实现可以自由地修改;类具有清晰的对外接口。
继承
    
面向对象的第二大特征就是继承。对象的继承代表了一种‘is-a’的关系,如果两个对象A和B,可以描述为‘B是A’,则表明B可以继承A。猫是哺乳动物,就说明了猫与哺乳动物之间的继承和被继承的关系。继承者可以理解为被继承者的特殊化,因为他除了具备被继承者的特性外,还具备自己独有的个性。继承定义了类如何相互关联,共享特性。继承的工作方式是,定义父类和子类,或叫做基类和派生类,其中子类继承父类的所有的特性。子类不但继承了父类的所有特性,还可以定义新的特性。
    如果子类继承于父类,第一,子类拥有父类非private的属性和功能;第二,子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;第三,子类可以以自己的方式实现父类的功能(方法重写)。
    protected表示继承时子类可以对基类有完全访问权。也就是说protected修饰的类成员,对子类公开,但不对其他类公开。
子类继承了父类,则基类拥有了父类的除private外的属性和功能。
    动物基类:
    

public class Animal
{
protected string name = "";
public Animal(string name)
{
this.name = name;
}
public Animal()
{
this.name = "无名";
}
protected int shoutNum = 3;

public int ShoutNum
{
get { return shoutNum; }
set { shoutNum = value; }
}
}

 

猫子类:
 

public class Cat : Animal
{
public Cat()
: base()
{ }

public Cat(string name)
: base(name)
{ }
public string Shout()
{
string result = "";
for (int i = 0; i < shoutNum; i++)
{
result = result + "嘧,";
}
return "我的名字叫" + name + " " + result;

}
}

 

狗子类:
 

public class Dog : Animal
{
public Dog()
: base()
{ }

public Dog(string name)
: base(name)
{ }
public string Shout()
{
string result = "";
for (int i = 0; i < shoutNum; i++)
{
result = result + "汪,";
}
return "我的名字叫" + name + " " + result;

}
}

  子类从他的父类中继承的成员有方法、域、属性、事件、索引指示器,但对于构造方法,他不能被继承,只能被调用。对于调用父类的成员,可以用base关键词。
    
继承的优点是:继承是所有子类公共部分都放在了父类,使得代码得到共享,这就避免了重复,另外,继承可使得修改和扩展继承而来的实现都比较容易。
    继承的缺点是:当父类变,则子类不得不变。继承会破坏包装,父类实现细节暴露给了子类。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐