第四--五--六章面向对象

第四章 面向对象(上)

4.1抽象的含义

     抽象(abstraction):从研究对象中抽取与研究有关的共性内容加以考察,形成对研究问题正确,简明扼要的认识;

4.2 类与对象

      对象是对客观事物的抽象,类是对对象的抽象。类--一种抽象的数据类型

4.3 类的域(属性)与方法(操作)

      域(也称属性或是数据成员):事物静态特征的抽象。

定义方法:类型 域变量名

      方法(也称操作或成员方法):事物动态特征的抽象。

定义方法:【修饰符】返回值类型 方法名 (参数类型 参数1,...){ 方法体}

       域和方法之间的关系:

               1)类中定义的域变量可以被类中的所有方法访问。

               2)局部变量仅限于定义它的那个方法,在使用前必须进行赋值初始化;如果局域变量与                类中的域变量重名,则在方法中对同名变量改变的是局部变量。

               3)类中定义的方法可以进行递归调用。

4.4 对象  

      4.4.1  对象的创建

        eg:A a = new A():该代码执行,系统会根据类模板产生一个对象

(1).实质上就是将类中定义的属性复制到生成的对象中,这些属性虽然在类中定义,实际上是为对象服务,因此称为对象属性;

(2).当方法在调用时,系统会为方法开辟一个栈空间,用于存放方法中的局部变量和形式参数,并且方法在执行时还能访问复制到对象中的属性。在其执行完成后,栈空间被释放。也称为对象方法),

        并在计算机内存中为此对象开辟一块新的独立内存空间

对象的声明:eg:A   a;此时只是产生了对象的声明,并没有任何对象的产生

而 A a = new A();是先执行new A()产生一个对象,再把这个新产生的对象赋予对象的声明

注:c++和java在此处的区别:

  首先我们需要弄懂内存空间:内存空间分为 堆 和 栈 

堆在应用程序中会一直存在,而栈在方法调用完毕后就释放

c++中用关键字new方式产生的对象在堆里,而“A a”方式产生的对象在方法栈中,a 作为引用能操作对象的原因在于:它在栈中保留了堆中对象的实际地址。

      4.4.2 对象作为参数的特点

                 方法中的参数可以是基本数据类型,也可以是对象  

二者区别:

1)基本数据类型作为参数在方法中的传递是值传递

2)对象是引用传递,当对象作为参数传递时,传递的是对象的地址,从始至终用的都是这一个对象

      4.4.3 对象数组

       eg : A [ ]   my = new A[ 10 ];

//产生一个类型为A,可容纳10个A对象引用的数组对象,每个单元初始值为null

注意:不是产生10个A对象     !!!

如若要使对象数组当中的每个单元有值,则应补充如下代码:

for( int i = 0;i<10 ; i++){   my [i] = new   A()}

       4.4.4数组对象特点及常用方法

第五章 面向对象(中)

第六章 面向对象(下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值