您好,欢迎来到尔游网。
搜索
您的当前位置:首页java面向对象编程总结

java面向对象编程总结

来源:尔游网


java面向对象编程总结

java

本章内容

编程语言的发展

面向过程的设计思想

面向对象的设计思想

对象和类的概念

面向对象编程原则

对象和引用

Java类的定义

构造函数

对象的创建和使用

this关键字

static关键字

package和import语句

访问控制

类的继承

方法的重写

Final关键字

Object类

对象转型

编程语言的发展

机器语言—直接由计算机的指令组成,指令、数据、地址都以”0”和”1”的字符串组成:可以被计算机直接执行。

汇编语言—用容易理解和记忆的符号表示指令、数据以及寄存器等,抽象层次很低,程序员需要考虑大量的机器细节。

高级语言—屏蔽了机器细节,提高了语言的抽象层次接近于人的自然语言,60年代出现的结构化编程语言提出了结构化数据和语句,数据和过程抽象等概念。

面向对象的语言—与以往的各种语言的根本不同是,它的设计出发点就是为了更能直接的描述问题域中客观存在的事物。

面向对象的设计思想

面向对象的基本思想是,从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式。

面向对象更加强调运用人类在日常的思维逻辑中经常采用的思想方法与原则,如抽象、分类、继承、聚合、多态等。

对象和类的概念

对象用计算机语言对问题域中事物的描述,对象通过“属性(attribute)”和”方法

(method)”来分别对应事物所具有的静态属性和动态属性。

类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所因具有的

静态和动态属性。

类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

对象的两要素

用于描述对象静态特性(结构特性)的一个数据项。如描述一个人可用姓名、

年龄、身份证号等属性。

用于描述对象动态特性(行为特性)的一个操作系列。如每个人都具有工作、

学习等行为特性。

对象的封装性能

对象就是一组属性和相关的方法的集合。这是面向对象方法与结构化方法的重大区

别之一。

对象将数据和施加于数据上的操作打包成一个不可分割的最基本的模块,使得仅有

该类的有限个方法才可以操纵、改变这些数据。

把众多的事物归纳、划分成类是我们在认识世界时经常采用的方法。

分类所依据的原则是抽象,也就是忽略事物的非本质特征,只注意那些与当前目标

有关的本质特征。

找出事物的共性并将具有共同性质的事物划分为同一个类。

面向对象编程原则

封装是允许有选择地隐藏类中的属性和方法

继承(重用)现有类生成新类

继承关系

父类(超类)是有其他类继承其行为的类

继承其他类的类称为子类

多态概念

多态是具有表现多种形态的能力的特征

多态与继承并不是孤立的,他们之间存在着紧密的联系,多态是建立在继承的基础

不同的子类继承自同一个父类,父类的同一个方法以不同的方式实现

Java与面向对象

对象是Java程序的核心,在Java程序中“万事万物皆对象”。

对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体。

类是用来创建同一类型的对象的“模板”,在一个类中定义了该类对象所应具有的成

员变量以及方法。

J2SDK提供了很多类供编程人员使用,编程人员也可以定义自己的类。

成员变量

成员变量可以使Java语言中任何一种数据类型(包括基本类型和引用类型).

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认值对其初始

成员变量的作用范围为整个类体.

Java面向对象基本概念---引用

Java语言中除基本类型之外的变量类型都称之为引用类型。

Java中的对象是通过引用对其操作的。例如:

声明了一个String类型的引用变量,但并没有使它指向一个对象

Strings;

使用new语句创建一个String类型的对象并用s指向它以后可以通过s完成对其的操作。

s=newString(“Helloworld”);

如何在内存中区分类和对象

类是静态的概念,代码区

对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不

同的值(除了静态变量)而方法只有一份,执行的时候才占用内存

对象的创建和使用

必须使用new关键字创建对象

使用对象.成员变量来引用对象的成员变量

使用对象.方法(参数列表)来调用对象的方法

同一类的每个对象有不同的成员变量存储空间

同一类的每个对象共享该类的方法

构造方法

使用new+构造方法创建一个新对象

构造方法是定义在Java类中的一个用来初始化对象的函数。

构造方法与类同名且没有返回值

构造函数

创建对象时,使用构造函数初始化对象的成员变量。

当没有指定构造函数时,编译器为类自动添加形如:类名(){}的构造函数。

约定俗成的命名规则

类名的首字母大写

变量名和方法名首字母大写

运用驼峰标识

方法的重载

方法的重载是指一个类中可以定义相同的名字,但参数不同的多个方法。调用时,

会根据不同的参数表选择对应的方法。

构造方法的重载

与普通方法一样,构造方法也可以重载

this关键字

在类的方法定义中使用的this关键字代表使用该方法的对象的引用。

当必须指出当前使用方法的对象是谁时要使用this。

有时使用this可以处理方法中成员变量和参数重名的情况。

this可以看作是一个变量,它的值是当前对象的引用

static关键字

在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次

使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。

用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所

以在static方法中不可访问非static的成员。

静态方法不再是针对某个对象调用,所以不能访问非静态成员。

可以通过对象引用或类名(不需要事例化)访问静态成员。

package和import语句

为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包

(package)机制,提供类的多重类命名空间。

package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包(若

缺省该语句,则指定为无名包)。

它的格式为:

packagepkg1[.pkg2.[pkg3…]];

Java编译器把包对应于文件系统的目录管理,package语句中,用.来指明包(目

录)的层次,例如使用语句

packagecom.s_t;

则该文件中所有的类位于.coms_t目录下

如果将一个类打包,则使用该类时,必须使用该类的全名(com.s_t.MyClass),Java

编译器才会在找到该类。

也可以使用import在文件的开头引入要使用的类:

importcom.s_t.MyClass;

importjava.util.;引入java.util包中所有的类

MyClassmyClass=newMyClass();就可以直接使用类名

可以不需要用import语句直接使用java.lang包中的类

packageimport总结

如果想将一个类放入包中,在这个类源文件第一句话写package

必须保证该类的class文件位于正确目录下

该类的源码可能会产生影响

删除或转移到另外的目录

另外的类想访问的话

具体类名

访问位于同一个包中的类不需要引入

必须class文件的最上层包的父目录为与classpath下

J2SDK中主要的包介绍

Java.lang---包含一些Java语言的核心类,如String、Math、Integer、System和Thread,

提供常用功能。

Java.awt---包含了构成抽象窗口工具集(abstractwindowtoolkits)的多个类,这些类被

用来构建和管理应用程序的图形用户界面.

Java.net---包含执行与网络相关的操作的类.

Java.io---包含能提供多种输入/输出功能的类.

Java.util---包含一些实用工具类,如定义系统特性,使用与日期日历相关的函数.类的继承与权限控制

Java中使用e_tends关键字实现类的继承机制,其语法规则为:

class[e_tends]{…}

通过继承,子类自动拥有了基类(erclass)的所有成员(成员变量和方法)。

Java只支持单继承,不允许多继承:一个子类只能有一个基类一个基类可以派生出

多个子类

访问控制

Java权限修饰符publicprotectedprivate置于类的成员定义前,用来限定其他对象对

该类对象成员的访问权限。

对于class的权限修饰只可以用public和default。

public类可以在任意地方被访问。

default类只可以被同一包内部的类访问

方法的重写

在子类中可以根据需要对从基类中继承来的方法进行重写。

重写方法必须和被重写方法具有相同方法名称、参数列表和返回值类型。

重写方法不能使用比被重写方法更严格的访问权限。

er关键字

在Java类中使用er来引用基类的成分

Object类

Object类是所有Java类的根基类

如果在类的声明中未使用e_tends关键字指明其基类,则默认基类为Object类toString方法

Object类中定义有publicStringtoString()方法,其返回值是String类型,描述当前对

象的有关信息。

在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+person)),将

自动调用该对象的toString()方法。

可以根据需要在用户自定义类型中重写toString()方法。

equals方法

Object类中定义有:

publicbooleanequals(Objectobj)方法

提供定义对象是否“相等”的逻辑

Object的equals方法定义为:_.equals(y)当_和y是同一个对象的应用时返回

true否则返回false

J2SDK提供的一些类,如String、Date等,重写了Object的equals方法,调用

这些类的equals方法,_.equals(y),当_和y所引用的对象是同一类对象其且属

性内容相等时(并不一定是相同对象),返回true否则返回false

可以根据需要在用户自定义类型中重写equals方法.

对象转型(casting)

一个基类的引用类型变量可以“指向”其子类的对象.

一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)

可以使用引用变量instanceof类名来判断该引用类型变量所”指向”的对象是否属

于该类或该类的子类.

子类的对象可以当作基类的对象来使用称作向上转型,反之称作向下转型动态绑定和多态

动态绑定是指“在执行期间(而非编译期)”判断所引用对象的实际类型,根据其实际的

类型调用其相应的方法。

上面例子中,根据Lady对象的成员变量pet所引用的不同的实际类型而调用相应的

enjoy方法。

用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法

时,该方法叫做抽象方法。

含有抽象方法的类必须被声明为抽象类i,抽象类必须被继承,抽象方法必须被重写。抽象类不能被实例化。

抽象方法只须声明,而不需实现。

final关键字

final的变量的值不能被改变

final的成员变量

final的局部变量(形参)

final的方法不能被重写

final的类不能被继承

接口(interface)是抽象方法和常量值的定义集合

从本质上讲,接口是一种特殊的抽象类,这种抽象类中值包含常量和方法的定义,

而没有变量和方法的实现。

接口的特性

多个无关的类可以实现同一个接口

一个类实现多个无关的接口。

接口中声明属性默认为publicstaticfinal的;也只能是publicstaticfinal的。接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public接口可以继承其它接口,并添加新的属性和抽象方法。

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务