java干货Java学习笔记java

【Java】面向对象详解

2016-07-18  本文已影响89人  wuchaooooo

1、面向对象

面向对象(Object Oriented)的基本思想是使用对象、类、继承、封装、多态等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。

2、对象

对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的方法的这一组服务组成。

类的实例化可生成一个对象,一个对象的生命周期包括三个阶段:生成、使用、消除。

当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。当系统内存用尽或调用System.gc()要求垃圾回收的时候,垃圾回收线程与系统同步运行。

3、类

类是具有相同属性和方法的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。在面向对象的编程语言中,类是一个独立的程序单元,它应该有一个类名并包括属性和方法两个主要部分。

Java中的类实现包括两个部分:类声明和类体。

类声明

[ public ][ abstract | final ] class className [extends superclassNmae] [implements interfaceNameList]{...}

其中,修饰符public,abstract,final 说明了类的属性,className为类名,superclassName为类的父类的名字,interfaceNameList为类所实现的接口列表。

类体

class className{
  //成员变量
  [ public | protected | private ] [ static ] [ final ] [ transient ] [ volatile ] type variableName;
  
  //成员方法
  [ public | protected | private ] [ static ] [ final | abstract ] [ native ] [ synchronized ] returnType methodName ([paramList]) [ throws exceptionList]{
    statements
  }
}

成员变量限定词的含义:

方法声明

方法声明中的限定词的含义:

方法的声明包括方法名、返回类型和外部参数。其中参数的类型可以是基本数据类型,也可以是引用数据类型。

对于基本数据类型来说,Java实现的是值得传递,方法接收参数的值,但不能改变参数的值。如果要改变参数的值,则用引用数据类型,因为引用数据类型传递给方法的数据是内存的地址,方法中对数据的操作(即改变地址)可以改变数据的值(即地址会指向不同的实例)。

方法体

方法体是对方法的实现,它包括局部变量的声明以及所有合法的Java指令。方法体中声明的局部变量的作用域在该方法的内部。若局部变量与类的成员变量同名,则类的成员变量被隐藏。

为了区别参数和类的成员变量,我们必须使用this。this用在一个方法中引用当前对象,它的值是调用该方法所在的对象。返回值须与返回类型一致,或者完全相同,或者是其子类。当返回类型是接口时,返回值必须实现接口。

构造方法

4、面向对象的基本特征

封装

封装性就是尽可能的隐藏对象内部的细节,对外形成一道边界,只保留有限的接口和方法与外界进行交互。封装的原则是使对象以外的部分不能随意的访问和操作对象的内部属性,从而避免了外界对对象内部属性的破坏。

可以通过对类的成员设置一定的访问权限,实现类中成员的信息隐蔽。

下图“*”表示可以访问:

private default protected public
同一类中 * * * *
同一包中 * * *
子类 * *
全局范围 *

继承

子类的对象拥有父类的全部属性与方法,称作子类对父类的继承。

Java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。super的使用有三种情况:

多态

对象的多态性是指在父类定义的属性或者方法被子类继承之后,可以具有不同的数据类型或表现出不同行为。这使得同一个属性或者方法在父类及其各个子类中具有不同的语义。例如:“几何图形”的“绘图”方法,“椭圆”和“多边形”都是“几何图形”的子类,其“绘图”的方法不一样。

Java的多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。

重载 (overload)

重写 (override)

上一篇 下一篇

猜你喜欢

热点阅读