【读书笔记】《java从小白到大牛》面向对象

quange 2022-5-5 135 5/5

面向对象(Object Oriented Programming,OOP)是Java最重要的特性。Java是彻底的、纯粹的面向对象语言,在Java中“一切都是对象”。

面向对象三个基本特性

面向对象思想有三个基本特性:封装性继承性多态性

封装性

在现实世界中封装的例子到处都是。例如:一台计算机内部极其复杂,有主板、CPU、硬盘和内存,而一般用户不需要了解它的内部细节,不需要知道主板的型号、CPU主频、硬盘和内存的大小,于是计算机制造商将用机箱把计算机封装起来,对外提供了一些接口,如鼠标、键盘和显示器等,这样当用户使用计算机就变非常方便。那么,面向对象的封装与真实世界的目的是一样的。封装能够使外部访问者不能随意存取对象的内部数据,隐藏了对象的内部细节,只保留有限的对外接口。外部访问者不用关心对象的内部细节,使得操作对象变得简单。

继承性

在现实世界中继承也是无处不在。例如:轮船与客轮之间的关系,客轮是一种特殊轮船,拥有轮船的全部特征和行为,即数据和操作。在面向对象中轮船是一般类,客轮是特殊类,特殊类拥有一般类的全部数据和操作,称为特殊类继承一般类。在Java语言中一般类称为“父类”,特殊类称为“子类”。

Java语言是单继承的,即只能有一个父类,但Java可以实现多个接口,可以防止多继承所引起的冲突问题。

多态性

多态性是指在父类中成员变量和成员方法被子类继承之后,可以具有不同的状态或表现行为

类是Java中的一种重要的引用数据类型,是组成Java程序的基本要素。它封装了一类对象的数据和操作。

//Java语言中一个类的实现包括:类声明和类体。类声明语法
[public][abstract|final] class className [extends superclassName] [implements interfaceNameList] {
//类体
}

其中,class是声明类的关键字,className是自定义的类名;class前面的修饰符public、abstract、final用来声明类,它们可以省略;superclassName为父类名,可以省略,如果省略则该类继承Object类,Object类所有类的根类,所有类都直接或间接继承Object;interfaceNameList是该类实现的接口列表,可以省略,接口列表中的多个接口之间用逗号分隔。

成员变量

//声明类体中成员变量语法格式
class className {
         [public | protected | private ] [static] [final] type variableName;    //成员变量
}

其中type是成员变量数据类型,variableName是成员变量名。type前的关键字都是成员变量修饰符,它们说明如下:

  • 01. public、protected和private修饰符用于封装成员变量。
  • 02. static修饰符用于声明静态变量,所以静态变量也称为“类变量”。
  • 03. final修饰符用于声明变量,该变量不能被修改。

成员方法

 class className {
        [public | protected | private ] [static] [final | abstract] [native] [synchronized]
              type methodName([paramList]) [throws exceptionList] {
                         //方法体
         }
}

其中type是方法返回值数据类型,methodName是方法名。type前的关键字都是方法修饰符,它们说明如下:

  • 01. public、protected和private修饰符用于封装方法。
  • 02. static修饰符用于声明静态方法,所以静态方法也称为“类方法”。
  • 03. final | abstract不能同时修饰方法,final修饰的方法不能在子类中被覆盖;abstract用来修饰抽象方法,抽象方法必须在子类中被实现。
  • 04. native修饰的方法,称为“本地方法”,本地方法调用平台本地代码(如:C或C++编写的代码),不能实现跨平台。
  • 05. synchronized修饰的方法是同步的,当多线程方式同步方法时,只能串行地执行,保证是线程安全的。

方法声明中还有([paramList])部分,它是方法的参数列表。throws exceptionList是声明抛出异常列表。

- THE END -
最后修改:2022年5月5日
0

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的所有下载文件均为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。

共有 0 条评论