面向对象的概念

一、面向对象的基本概念

       面向对象最关键的两个词汇是类和对象。面向对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体。类是具备某些共同特征的实体的集合,它是一种抽象的概念;类是一种抽象的数据类型,它是对具有相同特征的实体的抽象;类是一个模板,描述类的行为和状态。软件对象也有状态和行为,软件对象的状态就是属性,行为通过方法实现,在软件开发中,方法操作对象内部状态的改变,对象的相互调用也通过方法来完成。

       面向对象中的主要内容包括类和对象的关系、类的定义、对象的创建、类的三大特征、抽象类和接口等。

二、类和对象

       万物皆为对象,对象的实质是属性和行为。在我们的周围会有很多对象,例如人、书本都是对象。所谓对象就是真实世界中的实体,对象和实体都是一一对应的,也就是说现实世界中的每一个实体都是一个对象,它是一种具体的概念。

       具有相同特性和行为的对象的抽象就是类,因此对象的抽象就是类,类的具体化就是对象。所以说类是实体对象的概念模型,因此通常是笼统的、不具体的。在软件开发中,方法操作对象内部状态的改变,对象的相互调用也通过方法来完成。

三、成员变量及this、static关键词

       根据定义变量位置的不同,可以将变量分成两大类:成员变量(存在于堆内存中,和类一起创建)和局部变量(存在于栈内存中)。二者的运行机制存在较大变异。

成员变量是定义在类中、方法体之外的变量。这种变量会在创建对象的时候自动初始化。

类的构造方法也称类的构造器,每个类中都默认存在一个,与类名完全相同,没有返回值类型修饰符(包括void),没有参数的方法。

构造方法也是类中的方法,支持方法的重载。构造方法的特点:(1)构造方法没有返回值。(2)构造方法的名称要与本类的名称相同。

Public Book(){

    ...       //构造方法体

}

       在构造方法中可以为成员变量赋值,这样当实例化一个本类对象时,相应的成员变量也将被初始化。如果类中没有明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。构造方法分为两总:无参构造方法和有参构造方法。

       this关键字用于表示本类当前的对象,当前对象不是某个new出来的实体对象,而是当前正在编辑的类。

Public void setName(String name){   //定义一个setName()方法

     this.name=name;            //将参数值赋予类中的成员变量

}

       在上述代码中可以看到,成员变量与setName()方法中的形式参数的名称相同,都为name,在java语言中规定使用this关键字来代表蓓蕾兑现的引用,this关键字被隐式地用于引用对象的成员变量和方法,如在上述代码中,this.name指的就是Book类中的name成员变量,而this.name=name语句中的第二个name则指的是形参name。实质上,setName()方法实现的功能就是将形参name的值赋予成员变量name。

       其实,this除了可以调用成员变量和成员方法,还可以作为方法的返回值。例如,返回图书类本类的对象,可以写成以下这种形式:

public Book getBook(){

     Return this;       //返回Book类的本类对象

}

      在getBook()方法中,返回值为Book类,所以方法体中使用return this这种形式返回Book类对象。

      Static关键字主要用于内存管理。它主要在成员变量、成员方法、块和内部类中使用。static关键字属于类,但不是类的实例。它有三个作用:(1)修饰成员变量;(2)修饰成员方法;(3)静态块。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值