Java复习概念部分

Java复习概念部分

1. 对象:

面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。软件对象是模仿现实世界的对象---具有属性和操作;每个对象 必须有一个唯一的ID;软件对象通过属性来表示其状态,用方法来实现其操作。(属性:对象的变量;方法:操作,与其它语言的函数类似,用于模拟对象的行 为。)对象通过彼此间发送消息来相互作用和通讯。发送消息通过调用其它对象的公共接口的(方法)。它是面向对象技术的核心,以面向对象的观点来看,所有面 向对象的程序都是由对象组成的,这些对象首先是自治、自恰的,同时还可以互相通信、协调和配合,从而共同完成整个程序的任务和功能。 对象的主要属性是状态(静态属性)和行为(动态属性)。
对象间的关系有包含、继承、关联。
类:是同种对象的集合与抽象。
类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。
类有助于软件的重用,(一个类可以用来产生多个对象)
两者关系:类表述了同种对象的公共属性和特点。类是一种抽象的数据类型,是所有具有一定共性的对象的抽象;而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。
对象、实体、类

用 面向对象方法解决问题时,①将实体抽象成抽象数据类型,它包括实体中与需要解决的问题相关的数据和属性;②然后用面向对象的工具将其用计算机逻辑表达出 来,即构造类;③最后将类实例化得到现实世界实体的面向对象的映射——对象,在程序中对对象进行操作,就可以模拟现实世界中的实体上的问题并解决。(5) 传统程序设计把现实世界的问题抽象成计算机可以理解和处理的数据结构,就是使现实世界向计算机世界靠拢;而面向对象就是要让计算机逻辑来模拟现实世界的物 理存在,即让计算机世界向现实世界靠拢。

2  构造函数:

把一个对象所需的若干条赋值语句组合起来,在创建对象时一次性同时执行的方法就是构造函数。用new算符开辟新建对象的内存空间后,将调用构造函数初始化这个新建对象。
它是类的一种特殊方法,体现为
(1) 构造函数的方法名与类名相同;
(2) 构造函数没有返回类型;
(3) 构造函数的主要作用是完成对类对象的初始化工作;
(4) 构造函数一般不能由编程人员显式地直接调用;
(5) 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。
没 有参数的构造函数称为no-arg“无参构造函数”。如果一个类中没有任何形式的构造函数,系统将缺省定义一个空构造函数,没有形式参数、没有任何具体语 句,不完成任何操作。如果你既需要一个无参构造函数,又需要一个或几个带参构造函数,则必须显式提供一个无参构造函数。

3.抽象类:

就是没有具体 对象的概念类,用abstract修饰符修饰的类。抽象类是没有具体对象的概念类。不能创建一个抽象类的对象,抽象类仅定义了部分实现的类,而留待扩展类 去提供这些方法的部分或全部的进一步实现。抽象类是它的所有子类的公共属性的集合,优点是可以充分利用公共属性来提高开发和维护程序的效率。抽象类的设立 是面向对象技术思想的具体体现之一,它是模仿人类思维模式的产物。

4. 静态成员:

用static修饰符修饰的域是仅属于类的静态域,其最本质特点是,它们是类的域,不属于任何一个类的具体对象。即静态域是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值,修改它时,也都是对同一个内存单元进行操作。
  静态初始化器是由关键字static引导的一对大括号括起的语句组。其作用与类的构造函数有些相似,都是用来完成初始化的工作。但不同之处在于:
(1) 构造函数是对每个新创建的对象初始化,而静态初始化器是对类自身
进行初始化。(2)构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用执行。(3)不同于构造函数,静态初始化器不是方法,没有方法名、返回值和参数列表。
用static修饰符修饰的方法是属于整个类的方法,称为静态方法。
(1) 调用该方法时,应该使用类名做前缀,而不时一个具体的对象名;
(2) static方法是属于整个类的,它在内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有;
(3) static方法只能处理static域。

5. 继承:

面向对象程序中的两个类之间的一种关系,当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有继承关系。被继承的类称为父类或超类,继承 了父类或超类的所有数据和操作的类称为子类。一个父类可以同时拥有多个子类,实际为所有子类的公共域和公共方法的集合,而每一个子类则是父类的特殊化,是 对公共域和方法在功能、内涵方面的扩展和延伸。优点:使得程序结构清晰,降低编码和维护的工作量。单继承指任何一个类都只有一个单一的父类;而多继承指一 个类可以有一个以上的父类。 Java仅支持单继承。

6。多态:

是指一个程序中同名的不同方法共存的情况;面向对象的程序中多态的情况有多种, (1)覆盖多态 即子类对父类方法的重定义。由于同名的不同方法存在于不同的类中,所以在调用方法时指明调用的是哪个类的方法,就可很容易的区分。(2)重载 指在同一个类中定义同名方法的情况。 一般用不同的参数列表(包括形参的个数、类型、顺序),来区分。多态的特点大大提高了程序的抽象程度和简洁性,最大限度地降低了类和程序模块之间的耦合性 能,提高了类模式块的封闭性。方法的覆盖 子类重新定义与父类同名的方法,称为方法的覆盖。新旧方法必须具有相同的方法名、参数表、返回类型(如果只有方法名相同,则是重载);方法不能是 static方法;
与域的隐藏不同,覆盖将使得父类方法在子类对象中不复存在。

7.包:

是一种松散的类的集合。把各种类组织在一起,使得 程序功能清楚、结构分明。一般不要求处于同一个包中的类有明确的相互关系,但由于同一包中的类在缺省情况下可以互相访问,需要把需要在一起工作的类放在一 个包里,为方便编程和管理。有利于实现不同程序间类的复用。一般包括相互关联的类、接口和子包。其结构为树型。
  使用关键字package创建一个包,且应该是整个.java文件的第一个语句。
  缺省情况下,系统为每个.java文件创建一个无名包,但它不能被其它包引用。 通常一个类只能引用同包中的类,要想引用其他包中的类有4种方法。1)在类名前缀的前面在加上包名前缀;2)利用import语句将需要的整个类加载到当 前程序中;3)利用import语句将需要的类的所在包加载到当前程序中;4)当程序找不到所需的类的.class文件时,系统会自动到 CLASSPATH环境变量所指明的路径中去寻找。

8. 接口:

是用来实现类间多重继承功能的结构。它定义了若干个抽象方法和常量,形成一个属性集合,该属性集体通常对应了某一组成功能。编程者可以把用于完成特 定功能的若干属性组织成相对独立的属性集合;凡是需要实现这种特定功能的类,都有可以继承这个属性集合并在类内使用它,这种属性集合就是接口。接口中的属 性都是常量,方法是抽象方法。接口定义的仅仅是实现某一特定功能的一组功能的对外接口和规范,这个功能的真正实现是在“继承”这个接口的各个类中完成的, 要由这些类来具体定义接口中各抽象方法的方法体。因而在java中通常把对接口功能的“继承”称为“实现”。(一个接口是一个类型,由抽象方法和常量组 成)功能 ①可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系; ②可以指明多个类需要实现的方法; ③通过接口可以了解对象的交互截面,而不需要了解对象所对应的类。

9. 多重继承:

是指一个子类可以有一个以上的直接父类,该子类可以继承它所有直接父类的成员。C++提供多重继承的语法级支持,JAVA只支持单重继承。
  一个类只能有一个父类,但可以同时实现多个接口,这种情况下,如果把接口理解成特殊的类,即实现了多重继承。1)实现接口的方法是public,用 public修饰的接口是公共接口,可以被所有类和接口使用,没有public修饰的接口只能被同一个包中的其他类和接口利用;2)一个类可实现多个接 口,一个接口可被多个类实现;3)如果实现接口的类不是抽象类,则其必须实现接口的所有抽象方法;如果是抽象类,则不必;4)一个类在实现接口的抽象方法 时,必须使用完全相同的方法头;5)如果一个类实现几个接口,每个接口都有同一个方法声明,则该方法的实现可以被这些接口的所有对象使用。

10. 数组:

是常用的数据结构,相同数据类型的元素按一定顺序线性排列就构成了数组。Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。特 点:数组是相同数据类型的元素的集合;数组中的各元素是有先后顺序的,它们在内存中按照这个顺序连续存放在一起;每个数组元素用整个数组的名字和它自己在 数组中的位置表达。数组一旦建立大小就固定了;通过索引直接访问元素。
创建数组的步骤①声明数组 声明数组的名字和数组元素的类型;②创建数组空间 为数组开辟内存空间③创建数组元素并初始化 如果数组元素类型为基本数据类型,此步可省,系统队其有缺省的初值;如果是某一类对象作为数组元素,则必须创建并初始化每个数组元素。
声明:声明数组的名称和数组所包含的数据类型或元素的类名(int [] args;int args );Date dateArray[]);数组的长度在声明时不能确定,初始化定义并固定,通过<var>.length获得;索引0到length-1;
数组的建立:通过NEW创建数组空间,必须指明数组长度

11. 向量:

是java.util包提供的一个工具类,它对应于类似数组的顺序存储的数据结构,但是具有比数组更强大的功能,它是允许不同类型元素共存的变长数 组,每个向量类的对象可以表达一个完整的数据序列,向量类的对象不但可以保存顺序的一列数据,而且还封装了许多有用的方法来操作和处理这些数据。向量实现 了变长数组。向量类实现了动态地分配对象列表。
注意 ①Vector类的对象不能是简单的数据类型; ②使用Vector一定要先创建后使用。
  数组与向量区别:
向 量对应于类似数组的顺序存储的数据结构,但具有比数组更强大的功能。它是允许不同类型元素共存的变长数组。VECTOR不但可保存顺序的一列数据,还封闭 了许多有用的方法来操作和处理这些数据。另VECTOR实现了变长数组。数组只能保存固定数目的元素,且必须把所有需要的内存单元一次性申请。
VECTOR:1)需处理的对象数目不定,序列中的元素都是对象,或可以表示为对象2)需将不同类的对象组合成一个数据序列3)做频繁的对象序列中元素的插入和删除4)定位序列中的对象或其它查找操作在不同类之间传递大量数据
数组:1)序列中元素是简单数据类型的数据 2)序列中元素的数目相对固定,插入、删除和查找操作较少。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值