【黑马程序员】第三章:面向对象(上)

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

   Java 是一种面向对象的程序设计语言,了解面向对象的编程思想对于学习 Java 开发相对重要,接下来将讲解如何使用面向对象的思想开发。

一、面向对象的概念


   面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态的不同的事物,这些事务之间存在各种各样联系。在程序中使用对象来映射显示中的事物,使用对象的关系来描述事务之间的联系,这种思想就是面向对象。

   提到妙想对象,自然想到的是面向过程,面向过程就是分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候一个一个一次调用就可以了。 面向对象则是把解决的问题按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。当然一个应用程序会包含多个对象,通过多个对象的相互配合来实现应用程序的功能,这样当应用程序的功能发生变动时,只需要修改个别的对象就可以了,从而是代码更容易得到维护。面向对象的特点主要可以包括封装性继承性多态性

1、封装性

   封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要然外界知道具体的实现细节,这就是封装思想。例如,用户使用电脑,只需要使用手指敲键盘就可以了,无需知道电脑内部是如何工作的,及时用户可能碰巧知道电脑的工作原理,但在使用时并不完全依赖电脑的工作原理这些细节。

2、继承性

   继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。例如,有一个汽车类,该类中描述了汽车的普通特性和功能,而轿车的类中不仅包含汽车的特性和功能,还应该增加轿车的特有功能,这时可以让轿车类继承汽车类,在轿车类中单独添加轿车特性的方法就可以了。

   继承不仅增强了代码的复用性,提供了开发效率,而且为程序的修改补充提供了便利。

3、多态性

   多态性指的是在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其他类继承后,他们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同类中具有不同的语义。例如,当听到 " Cut " 这个单词时,理发师的行为时剪发,演员的行为是停止表演,不同的对象所表现的行为是不一样的。

二、类与对象


   面向对象的编程思想力图在程序中对事物的描述与该事物在显示中的形态保持一致。为了做到这一点,面向对象的思想中提出两个概念,即类与对象。其中类是对某一事物的抽象描述,二对象用于表示显示中该类事物的个体。接下来通过一个图例来描述类与对象的关系:

  

   类用于描述多个对象的共同特征,它是对象的模板。对象用于描述显示中的个体,它是类的实例。

1、类的定义

   在面向对象的思想中最核心的就是对象,为了在程序汇总创建对象,首先需要定义一个类。类是对象的抽象,它用于描述一组对象的共同特征和行为。类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被成为属性,成员方法用于描述对象的行为,可简称为方法。

   在 Java 中,定义在类中的变量称为成员变量,定义在方法中的变量被称为局部变量。如果在某个方法中定义的局部变量与成员变量同名,这种情况是允许的,此时方法中通过变量名访问到的是局部变量,二并非成员变量。成员变量与局部变量的区别如下:

   成员变量:

  • 成员变量定义在类中,在整个类中都可以被访问;
  • 成员变量随着对象的创建而存在,存在于对象所在的对内存中;
  • 成员变量有默认初始化值;

   局部变量:

  • 局部变量只定义在局部范围内,例如 函数内、语句内等;
  • 局部变量存在于栈内存中;
  • 作用的范围结束,变量空间会自动释放;
  • 局部变量没有初始化值;

2、对象的创建和使用

   应用程序想要完成具体的功能,仅有类是远远不够的,还需要根据类创建实例对象。在 Java 程序中可以使用 new 关键字来穿件对象,具体格式如下:

      > 类名   对象名称   =   new   类名();

   在创建对象后,可以通过对象的引用来访问对象所有的成员,具体格式如下:

     >  对象引用 . 对象成员;

class Car{
    String color = "red";
    int num = 4;
    void show(){
        System.out.println("color="+color+",num="+num);
    }
}
class CarDemo{
    public void main(String[] args){
        Car car = new Car();//创建对象
        car.color = "black";//对属性进行修改
        car.show();//使用对象的功能
    }
}

   对象的内存结构:

 

3、匿名对象

   匿名对象是对象的简化形式。匿名对象有两种使用情况:

  • 当对对象方法仅做一次调用时;
  • 匿名对象可以作为实际参数进行传递;

4、封装

   所谓类的封装是指定义一个类时,将类中的属性私有化,即使用 private

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值