韩景维的面向对象编程思想读后笔记

原文地址: http://www.blueidea.com/tech/program/2004/2171.asp

今天拜读了韩景维的《面向对象编程,我的思想》,收益非浅,我是刚学面向对象编程的。就把这个文章拿来做做笔记。

类描述了一组有相同特性(属性)和相同行为(方法)的对象。在程序中,类实际上就是数据类型

函数想象成一个“实现某种特定功能的黑匣子“。每个方法都会返回一个信息给调用者的,除了构造函数外。我就要先定义这个黑匣子!首先我要告诉这个黑匣子会有两个整数值给你(这就是所谓的参数,是程序员需要给黑匣子的信息),然后就要定义这个黑匣子内部实现这两个整数相加的运算(这就是黑匣子对数据所做的加工,根据需要,你可以做任何的加工。)。最后再标注它返回给我一个同样是整型的数值(这是黑匣子返回给程序员的信息)。return 关键字的含义是向调用者返回紧跟在它后面的信息。
int myAge =0; //定义并初始化我的年龄为0;

int a=20; /*定义变量a等于20*/

void /*返回值类型为无返回值类型*/ remAge /*函数名称*/(int a /*传入的参数*/){

 myAge=a; //内部实现方法,注意,没有return返回!!!

}

面向对象的编程语言最大的特色就是可以编写自己所需的数据类型,以更好的解决问题,类是对象的描述!对象从类中产生出来!此时,对象具有类所描述的所有的属性以及方法。-------一定要理解这句话!!!

类是属性与方法的集合。而这些属性与方法可以被声明为私有的(private),公共的(public)或是受保护(protected)的,他们描述了对类成员的访问控制。下面我分别做一下介绍:
1. 公共的(public):把变量声明为公共类型的之后,那么就可以通过对象来直接访问,一切都是暴露无遗的!也就是说,你的信用卡密码别人也能够直接得到。

2. 私有的(private):如果把变量声明为私有的情况就好多了,想要得到我的信用卡密码,对象必须要调用专用的方法才能够得到。

3. 受保护的(protected):介绍继承时再讨论。

4. 默认控制访问符(friendly)://JAVA中有而C++中没有。
为了实现数据的封装,提高数据的安全性,我们一般会把类的属性声明为私有的,而把类的方法声明为公共的。这样,对象能够直接调用类中定义的所有方法,当对象想要修改或得到自己的属性的时候就必须要调用以定义好的专用的方法才能够实现。你想想,你会把你的信用卡密码公布出来嘛?呵呵!所以,我们提倡的是:“对象调方法,方法改属性”。

声明只是告诉计算机将要有这样的一个变量(对象),在内存中它并不为这个变量(对象)分配内存!而只有在定义的时候才会给这个变量(对象)分配内存。 计算机只会为对象的属性分配内存。因为每个对象的都不一样!!在计算机中也就是这样,方法只有一份,供所有的对象使用!而属性是每个对象一份,因为每个对象的都不一样。

构造函数对属性的初始化,构造函数是类中最特殊的函数,它与析构函数的功能正好相反!
从特征上来说:1.它是编程语言中唯一没有返回值类型的函数。

2.它的名称与类的名称必须要完全相同。

3.它必须被声明为公共(public)的类型

4,可以对构造函数进行重载。

5.它在创建对象时自动被调用。

函数重载:对方法进行重载,也就是定义多个相同名称的函数,这样计算机在调用的时候不会混淆嘛?我想应该不会的,呵呵,因为仅仅是函数名称相同,而我们在调用函数时会把参数传递给他的。既是没有参数也是一种参数传递参数的信息(信息为无参数)!然而由于参数类型、参数数量、返回值类型不同我们就可以对相同名称的函数进行区分了!目的只有一个,用简便的方法实现更多的功能。
在JAVA中:

  1. 函数重载是一个类中声明了多个同名的方法,但有不同的参数个数和参数类型。

  2. 函数重构是指在子类中声明与父类同名的方法,从而覆盖了父类的方法。重构解决了子类与父类的差异问题。(在讨论到继承时我会详细说明)

  在C++中:

  1. 函数重载的概念一样。

  2. 重构的概念可就不一样了,C++中功能更为庞大的虚函数。更详细内容这里就不错过多介绍了!
初始化与赋值是完全不同的两个概念。创建一个类的时候会调用这个类的构造函数对对象的属性进行初始化。而如果以后再把这个对象赋给其他同类型的对象时可就没那么简单了。

把一个变量或函数声明为静态的需要“static”这个关键字。声明静态的目的是“为某个类的所有对象的某个属性或方法分配单一的存储空间”。静态的数据是属于类的,不属于任何的对象。静态的数据在声明的时候系统就为他分配了内存空间,而不用等到创建对象时。

继承很好理解,它的最大好处就是“代码重用”,大大提高了工作效率。

子类拥有父类的所有的方法及属性。注意关键字”extends”,它的意思是继承。

做个笔记... [daku]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值