标签:ram 编程 抽象 组成 lang 代码 处理 名称 normal
从学校出来,做开发工作也有一定时间了,最近有想系统地进一步深入学习,但发现基础知识不够扎实,故此来回顾基础知识,进一步巩固、加深印象。
最初开始接触编程时,总是自己跌跌撞撞、不断摸索地去学习,再一点点应用到实际项目中,知识点才更加清晰。后来,尝试写博客,把学到的知识试着分享出来,也是一次巩固的过程。
面对对象是一种新兴的程序设计方法,或者说是一种新的程序设计规范,其基本思想是使用对象、类、继承、封装、多态等基本概念来进行程序设计的。从现实世界中客观存在的时候(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。(把脸转过来吧,别看着你女朋友了,那不是我们说的面对对象。。。)
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务(方法)组成。
类的实例化可生成对象,一个对象的生命周期包括:生成、使用、消除。
当不存在一个对象的引用时,该对象成为一个无用对象。Java的垃圾回收器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。当系统内存用尽或调用 system.gc( ) 要求垃圾回收时,垃圾回收线程与系统同步运行。
类时具有相同属性和方法的一组对象的集合,它为属于该类所有对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。在面向对象的编程语言中,类时一个独立的程序单位,它应该又一个类名并包括属性和方法两个主要部分。
Java中类的实现包括两个部分:类声明和类体。
类声明:
[public] [abstract | final]class ClassName [extends superClassName] [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用在一个方法中应用当前对象,它的值是调用该方法的对象。返回值须与返回类型一致,或者完全相同,或是其子类。当返回类型是接口时,返回值必须实现该接口。
构造方法:
封装
封装就是尽可能地隐藏对象的内部细节,对外形成一道边界,只保留有限的接口和方法与外界进行交互。封装的原则是使对象以外的部分不能随意地访问和操作对象的内部属性,从而避免了外界对对象内部属性的破坏。
可以通过类的成员设定一定的访问权限,实现类中成员的信息隐藏。
继承
子类的对象拥有父类的全部属性和方法,称为子类对父类的继承。
Java中通过 supper 来实现对父类成员的访问,supper 用来引用当前对象的父类。supper 的使用有3种情况:
super.Method( [paramList] ),super( )调用父类构造方法;
多态
对象的多态性是指在父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或方法在父类及其各个子类中具有不同的语义。例如:“交通工具”的“使用”方法,“汽车”和“摩托车”都是“交通工具”的子类,其“使用”方法功能不同。
Java的多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。
重载(Overloading)
重写(Overriding)
写到这,突然有点想我女朋友了,我也想面向对象编程。。。
标签:ram 编程 抽象 组成 lang 代码 处理 名称 normal
原文地址:https://www.cnblogs.com/qiuhaitang/p/12299730.html