您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第3章 Java与面向对象编程
第3章Java与面向对象编程类2包4面向对象基础31对象33数据共享6类成员的访问控制权限35本章内容提要面向对象的程序设计方法力求符合人脑的思维方式,通过符合人类思维的更抽象的客观世界模型,降低、分解问题的难度和复杂性,并以此来解决问题。与结构化的程序设计方法有何区别?3.1面向对象基础面向对象的基本原理面向对象方法学是面向对象程序设计技术的理论基础。该理论的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与人类的认知过程同步,通过对人类认识客观世界及事物发展过程的抽象,建立规范的分析设计方法,由此使程序具有良好的封装性、可读性、可维护性、可重用性等一系列优点。3.1面向对象基础面向对象的基本概念1.对象对象就是现实世界中实体在计算机逻辑中的映射和体现。实体都具有一定的属性和行为。从面向对象的观点来看,所有的面向对象的程序都是由对象构成的。3.1面向对象基础2.类类就是具有相同或相似属性和行为的对象的抽象。在面向对象的程序设计中,类与对象是抽象与具体的关系。3.1面向对象基础3.属性对象的属性主要用来描述对象的状态。属性用变量来定义。4.行为对象的行为又称为对象的操作,主要描述对象内部的各种动态信息。行为用方法来刻画。3.1面向对象基础面向对象编程的特点1.封装封装,就是将事物的内部实现细节隐藏起来,对外提供一致的公共的接口间接访问隐藏数据。优点:使得Java程序具有良好的可维护性使得代码的重用性大为提高3.1面向对象基础2.继承当一个类拥有另一个类的数据和操作时,就称这两个类具有继承关系。被继承的类称为父类或超类,继承父类的类称为子类。继承有单重继承和多重继承之分。优点:使得面向对象的程序结构清晰,易于理解。3.1面向对象基础3.多态多态指多种表现形式,就是对象响应外部激励而使其形式发生改变的现象。多态有两种情况:一种是通过类之间继承导致的同名方法覆盖体现的,另一种是通过同一个类中同名方法的重载体现的。优点:提高了程序的抽象程度和简洁性。3.1面向对象基础类的结构[修饰符]class类名[extends父类名][implements接口列表]{类体成员变量定义;成员方法定义;}在类的声明格式中,[]内部的内容表示可选的,可以根据需要有选择的进行编写。3.2类1.类的声明类的声明由修饰符、关键字class、类名、继承父类、实现接口五部分构成。例如:classStudent//定义类Student{intstu_name;//定义类属性stu_name;}3.2类(1)继承父类关键字extends表示当前类是已经存在的某个类的子类。Java语言中只允许单一继承。类通常不需要从头生成。他们可以从其他的类派生而来,继承祖先类的可用类成员。即使是从头创建的新类也必须继承Object类。3.2类(2)实现接口关键字implements表示当前类实现了某个接口定义的功能或方法。接口是和类相似一种Java程序的基本单元,是Java程序用来实现多重继承的一种特殊机制。3.2类(3)修饰符3.2类修饰符种类关键字含义限制访问控制符public声明类是公有的,可以被任何类使用或继承。一个源程序中最多只能存在一个公有类。最终类说明符final声明该类不能被继承。抽象类说明符abstract声明该类不能被实例化,但可以被继承。无修饰符可以被同一个程序包中的其他类访问和继承2.类体class类名{[成员变量定义][构造方法定义][成员方法声明]}通常,Java中把成员变量放在方法前面定义。3.2类成员变量在类体中并且在方法之外定义的变量称为成员变量。[修饰符]变量类型变量名;例如:IntegerstuAge;intage=9;3.2类1.访问控制权限public、private及protected2.静态变量修饰符又被称为类变量,静态变量用关键字static表示。3.常量修饰符指在程序中不能被改变的变量,常量用关键字final表示。3.2类成员方法1.方法定义方法也由两部分组成,即方法头和方法体。[修饰符]返回值类型方法名([形参列表])[throws异常列表]{[方法体]}3.2类(1)方法修饰符方法修饰符控制方法在什么条件下使用以及如何使用,包括public(公有的)、private(私有的)及protected(保护的)。(2)返回值类型返回值类型可以是基本数据类型、应用类型(引用类型)以及void(空类型)。3.2类(3)方法名(4)形参列表形参列表是以“,”分开的、参数的数据类型和变量名的列表。(变量类型1变量名1,…,变量类型n变量名n)(5)throws异常列表方法的异常列表定义了可能抛出的各种异常。3.2类2.方法体方法的功能实现部分,主要由局部变量和语句构成。方法体也可以是空的,即没有任何变量和语句。例如:voidsetName(Stringname){}[例3-1]方法的定义3.2类构造方法(1)构造方法的方法名与类名相同。(2)构造方法不允许声明返回值。(3)构造方法的作用是完成对类对象的初始化。(4)构造方法只能通过new运算符调用,不能通过对象或类调用。(5)一个类可以定义多个构造方法。3.2类[例3-2]构造方法的定义构造方法的作用:(1)为每个新建的对象赋初始值,从而保证每一个新建的对象处于合理正常的状态。(2)引入更多的灵活度,使得初始化工作不仅仅包括成员变量的赋值,还可以有更复杂的操作。3.2类对象创建1.声明对象typeobjectname;例如:Studentxiaolin;3.3对象xiaolin2.建立对象并初始化实际上就是将一个类实例化,这是通过new关键字来完成的。例如:newStudent(小林,1001,12);3.3对象小林100112对象引用被赋值后,将指向一个真正的对象,即对象引用的内存空间中存储这个新建立对象的内存空间的首地址,那么通过对象引用就可以访问这个对象的所有可以访问的成员了。3.3对象小林1001120x032xiaolin0x1032通过同一个类模板可以声明多个对象引用,也可以建立并初始化多个对象:Studentxiaolin,xiaofei;xiaolin=newStudent(小林,1001,12);xiaofei=newStudent(小飞i,1002,16);Studentxiaoqiang=xiaolin;3.3对象[例3-3]创建对象判断对象a的引用是否存在——a!=null或a==null;判断a、b两个对象的引用是否相等——a==b;判断a、b两个对象的值是否相等——a.equals(b)。3.3对象使用对象有两种方式使用对象:一是通过对对象变量的引用来使用对象;objectRenference.variable;二是通过调用对象的方法来使用对象。objectRenference.methodName(paramlist);3.3对象[例3-4]使用对象3.3对象姓名:王非学号:10011学院编号:11姓名:黎明学号:10012学院编号:12释放对象Java中,对象使用的内存空间的释放是自动完成的,不需要在编码时考虑对象的释放问题。Java运行系统具有所谓的“垃圾回收机制”,垃圾回收器(garbagecllectors,GC)在后台运行,定时查看所有对象,识别那些不再被引用的对象(垃圾),给予释放,回收分配给这些对象的内存。3.3对象对象引用与对象实体对象引用和对象实体是相互独立的。[例3-5]通过对象引用遥控对象实体3.3对象学生:小明学生:小明学生:小强学生:小强null为了更好的管理这些类,Java引入了包的概念。包是一种类似于文件夹的一种组织形式,包把各种类组织起来,一方面对类的命名空间进行管理,另一方面作为隐含的访问控制修饰符,是信息隐藏和封装的有力工具。3.4包包的概念为了方便管理,通常将需要在一起工作的类放在一个包中。只要包名是惟一的,那么包中的类就有了惟一的类全名。包的引入解决了类名冲突问题。包是一种多层次的组织结构,其成员有子包、类和接口。3.4包创建包创建包需要使用关键字package,其一般的格式和语法为:package包名;这条语句必须位于源文件的第一行,并且在同一个源文件中只能编写一条package语句。例如:packagenewpackage;packagesociety.family;[例3-7]创建包3.4包导入包1.使用类全名[例3-8]使用类全名3.4包A010010A110111A210212A310313A4104142.导入需要的使用的类利用import关键字,将需要使用的类导入到当前程序中,[例3-9]导入需要的类3.4包3.导入整个包包中的所有的类都被加载到当前文件中。例如:importschools.*;所有的Java程序自动导入java.lang包,因此,importjava.lang.*语句可以省略不写。另外编译器在查找需要的类时有特定的查找顺序,先是Java基本类库中的类,后是用户自定义的类。3.4包Java有四种类成员的访问控制形式,分别为缺省的(默认的)、公有的、保护的、私有的。类的每个成员都有自己的访问修饰符,但最多只能使用一个访问修饰符,并且访问修饰符必须放在其他修饰符之前。如果类不可访问,则其成员也不可访问,因此讨论类成员的访问控制的前提必须是类是可访问的。3.5类成员的访问控制权限1.private修饰符private修饰的成员变量和方法仅能在其类的方法中被访问,其他类无法直接访问。【例3-10】私有成员的定义和使用3.5类成员的访问控制权限falsexiaoming:1000xiaoming:10012.无修饰符如果成员没有指定任何访问修饰符,则表示该成员具有缺省的访问权限,3.protected修饰符protected修饰符表示成员的访问权限局限在同一个包的其他类以及其子类(可以属于其他包)中。3.5类成员的访问控制权限4.public修饰符public修饰符表示类成员公用的。为了使程序具有良好易读的风格,建议最好在编写类代码时用不同的可访问性来组织类成员,并将public成员作为对外公布的接口放在最前面,以便引起关注。3.5类成员的访问控制权限类变量被所有的类的所有实例共享的变量称为类变量(classvariable),类变量用修饰符static描述。[例3-11]类变量的定义3.6数据共享122类变量的访问类变量不依赖于对象。[例3-12]直接通过类名访问类变量3.6数据共享1222类方法类方法(classmethod,又成为静态方法)也是以static修饰的方法。[例3-13]通过类方法访问类变量一般在以下两种情况下使用类方法:1.如果方法的所有参数可以直接给定,不需要访问实例变量时。2.如果方法仅仅访问类变量时。3.6数据共享常量常量(constant)就是一旦赋值就不能更改其值的变量。命名常量以关键字final修饰,其类型可以是基本类型和引用类型。[例3-14]命名常量的访问3.6数据共享王非1001111王非1002112
本文标题:第3章 Java与面向对象编程
链接地址:https://www.777doc.com/doc-4149224 .html