【教学课件】第6章面向对象程序设计.ppt
《【教学课件】第6章面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第6章面向对象程序设计.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 面向对象程序设计Java语言是面向对象的程序设计语言,不再遵循面向过程的程序设计思想。要全面掌握利用Java语言进行程序设计,必须理解面向对象的程序设计(Object-Oriented Programming,OOP)思想。6.1 面向对象的基本概念面向对象是Java语言的基本特征,这是与C+的明显区别。在C+中,由于面向过程和面向对象的混合应用,使得开发出来的应用程序既存在面向对象的特征,又有面向过程的处理方式,因而开发出来的应用程序再分析的难度加大。随着计算机硬件设备功能的进一步提高,使得基于对象的编程成为可能。基于对象的编程更加符合人们的思维模式,编写的程序更加健壮和强大。Jav
2、a语言是纯面向对象的语言,支持对象和类的概念,支持类的单重继承。同时Java引入接口的概念,使接口与单继承结合可完成Java语言的多重继承。6.1.1 面向过程与和面向对象的程序设计面向过程的程序设计语言最重要的特点是按照解决问题的步骤来设计程序。比较典型的语言有:C语言、Pascal语言、Basic语言等,它们都是面向过程的程序设计语言。在传统的面向过程的程序设计思想中,通常将存放基本数据类型的变量作为程序处理对象、以变量的赋值作为程序的基本操作、以变量值的改变作为程序运行的状态。当需要代码重用时,调用已经组织好的过程或函数。在这种应用方式中,如果软件项目较庞大,程序的调试和维护将变得异常困
3、难。随着计算机技术的发展,人们越来越需要一种新的程序设计思想;面向对象的程序设计思想,是将世界看成由许多彼此之间能联络的对象组成。面向对象的程序设计是以信息的隐藏和数据抽象等思想和概念为基础的,这使得采用面向对象设计的应用程序具有简单、直观、接近人类的自然思维方式等特点。对客观事物的描述以分析事物的属性、行为和相互之间的关系为研究的基本对象。并将数据和操作放入同一个数据结构中,即同一个统一体中。面向对象程序设计中,所有对象都与属性和活动联系在一起,因此面向对象程序设计以一种更贴近真实世界的模型组织程序的。要以面向对象的观点设计Java程序,Java程序可以看作是相互合作的对象所构成的集合。6.
4、1.2 对象和封装在程序设计中,对象(Object)是指具有属性和动作的实体。在现实世界中,可以明确标识的任何一个物体都可以看作是一个对象。对象有自己的行为和状态。对象的状态就是属性,对象的行为就是方法的集合。如图所示描述了一个对象与其状态和行为,即对象的属性和方法。6.1.3 类和实例类的英文单词是class,类是基于对象的基本概念。类是一组对象的抽象化模型,是对象的总和,对象是类的实例。如果将一个类作具体化和实例化,就生成了这个类的一个对象。可以从一个类中创建许多实例。对象和实例两个词通常可以互换。类和对象(实例)之间的关系可以比作汽车的设计方案和具体汽车的关系。用一种设计方案可以生产出任
5、意多的汽车来。图所示是一个Circle类,其中包括Circle对象的属性Radius和Circle对象的行为方法findArea(),通过此类可以实例化多个不同的对象。6.2 类类是Java语言的核心,是组成Java程序的基本要素。类封装了一类对象的状态和行为。类是用来定义对象的模板。在创建对象之前必须首先定义类。6.2.1 类的定义当对一个类定义的时候,必须明确声明类的属性和方法。类的定义是以类的可见性起始、关键字class作为定义、合法的Java标识符作为名称。类定义的基本格式为:类修饰符 class ClassName /类体的内容6.2.2 成员变量和局部变量从类的定义中可以知道,类体
6、分为两部分:变量和方法的定义。变量定义部分所定义的变量被称为类的成员变量。在方法体中定义的变量和方法的参数被称为局部变量。下面从几个方面讲述成员变量和局部变量。1类中变量的定义2成员变量和局部变量的类型3成员变量和局部变量的作用范围4成员变量分类5成员变量的隐藏6.2.3 成员方法在类的定义中包括了成员方法,类的成员方法实现了类所具有的行为。类对象可以使用类中的方法对类进行访问。1方法的定义方法的定义包括两部分:方法的声明和方法的实现。其一般格式为:accessType returnType name(parameter)/方法体,方法的具体实现代码,包括局部变量的定义和合法的Java语句2方
7、法的重载方法的重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,不同之处可以是参数的类型和参数的数量。当调用一个重载方法时,JVM自动根据当前对方法的调用形式,在类的定义中匹配形式符合的成员方法,匹配成功后,就调用此成员方法。6.2.4 构造方法Java中提供了一个特殊的成员方法构造方法。构造方法通常用来完成对象的初始化工作。构造方法是一种特殊的方法,名字必须与其类的名称完全相同,并且不返回任何数据类型,即void类型,但void必须省略不写。在一个类中,可以有多个构造方法,也可以没有构造方法。下面是关于类的构造方法的例子。public class Constructor
8、Demoint a,b;ConstructorDemo()a=12;ConstructorDemo(int d,int e)a=d;b=e;6.2.5 main方法前面讲到Java程序分为两种:Java应用程序和Java小 应 用 程 序。Java应 用 程 序 即 Java Application是 可 以 独 立 运 行 的,所 有 的Application都有一个主方法,即main()方法,这是应用执行的入口点。main()方法的一般格式为:public static void main(String args)这里的各项中除了方法参数名args可以改变外,其他都要和格式中的完全一样,包
9、括大小写。6.2.6 类对象的创建、使用和清除要使用Java类中的属性和方法,必须创建类对象,然后通过类对象来引用类的成员变量和方法。1对象的创建对象的创建包括两个步骤,对象的声明和为对象分配内存。2对象的使用当对象创建后,类中的成员变量和方法就会被分配相应的存储空间。3对象的清除由于对象是通过使用new运算符动态分配内存的,所以还要销毁这些对象、释放其存储空间以备重新分配。6.2.7 方法中参数的传递和其他语言一样,Java中的方法也可以带有参数。当使用这些带有参数的方法时,必须向方法传递参数。按传递参数方式的不同,可分为两种:按值传递(按值调用)和按引用传递(按引用调用)。1按值传递在这种
10、方法中,把实参的值复制后被传递给形参,故方法中对形参的改变不会影响实参的值。2按引用传递在这种方法中,是将一个实参的引用(不是参数的值)传递给方法中的形参,这意味着对参数的改变将会影响传递给方法的实参的值。6.3 包包是类的容器或集合,它将一组类集中到一起。Java通过包就可以方便地管理程序中的类了。6.3.1 包的作用使用包可以有以下3个方面的作用。1组织类包能够将类组织成单元。正如在硬盘上有文件夹或目录来组织文件和应用程序一样,包能够将类组织成组,以便对每个程序可以只使用其所需的那些类集。2防止类命名混乱包减少了命名冲突带来的问题。随着Java中类数量的增长,与别的类重名的可能性也不断增加
11、,这样如果试图将多组类集中到单个程序中时,就容易出现命名冲突的可能。包能够隐藏类,以使这些冲突被避免。3控制包中类、接口、成员变量和方法的可见性在包中,除声明为private的成员变量和方法外,类中所有的成员变量和方法可以被同一包中的其他类和方法访问。6.3.2 包的定义要创建一个包非常容易,通过关键字package声明即可。package语句必须作为Java源文件的第一条语句,用来指明该源文件定义的类所在的包。package语句的一般格式为:package PackageName;其中,package为关键字,说明后面的标识符定义了包的名字;PackageName为定义的包的名称,为Java
12、中合法的标识符。包名可以是一个合法的标识符,也可以是若干个标识符加“.”分割而成。6.3.3 运行包中的类Java中的包是以目录的形式来组织的。要运行包中的类,必须表明类所属的包。请读者看下面的例子。package china.tianjin;class packageDemopublic static void main(String args)System.out.println(包测试);6.3.4 引入包中的类在编写源文件时,除了使用自己定义的类外,还要使用别人或Java中提供的类,在使用这些类之前,必须向程序中引入这些包中的类。Java中使用import语句引入包中的类。在一个程序中
13、可以有多个import语句,但必须写在package语句(如果有)和源文件类定义之间。import有下面两种形式:import packageName.ClassName;/引入包packageName中的类ClassNameimport packageName.*;/引入包packageName中的所有类6.4 类中变量和方法的访问权限当用一个类创建了一个对象后,该对象可以通过“.”运算符操作自己的变量和使用类中的方法。但对象和方法的使用是有一定限制的,即对象是否可以通过“.”运算符使用类中的变量和方法。在类的变量和方法被定义时,可以使用修饰符来指定变量和方法的访问权限。用来确定访问权限的修
14、饰符如表所示。6.4.1 公有类型变量和方法用public修饰的成员变量和方法被称为公有变量和公有方法。公有变量和公有方法可以被同一个类、子类、同一个包中的类和不同包中的类所访问。关于public修饰符的应用请看下面的例子。/*在包packDemo中定义类PubDemo,其中定义了公有整型变量intAge和方法setCount()*/package packDemo;class PubDemo public int intAge;/定义public修饰的int类型变量intAge public void setCount(int a,int b)/定义public修饰的setCount方法 S
15、ystem.out.println(“变量intAge的值为:”+intAge)System.out.println(“此方法被访问”);6.4.2 受保护类型变量和方法用protected修饰的成员变量和方法被称为受保护型变量和保护型方法。受保护型变量和受保护型方法可以被同一个类、子类、同一个包中的类所访问,不允许不同包中的类访问。关于protected修饰符的应用请看下面的例子。/*在包packDemo中定义类ProDemo,其中定义了受保护整型变量intAge和方法setCount()*/package packDemo;class ProDemo protected int intAg
16、e;/定义protected修饰的int类型变量intAge protected void setCount()/定义protected修饰的setCount方法 System.out.println(“变量intAge的值为:”+intAge)System.out.println(“此方法被访问”);6.4.3 私有类型变量和方法用private修饰的成员变量和方法叫私有变量和方法。私有型变量和方法只能在本类中使用,在子类、同一个包中的类和不同包中的类中不允许访问。关于private修饰符的应用请看下面的例子。/*在包packDemo中定义类PriDemo,其中定义了私有整型变量intAge
17、和方法setCount()*/package packDemo;class PriDemo private int intAge;/定义private修饰的int类型变量intAge private void setCount(int a)/定义private修饰的setCount方法 System.out.println(“变量intAge的值为:”+intAge);System.out.println(“此方法被访问”);public static void main(String args)PriDemo obj=new PriDemo();/生成类PriDemo的对象 Obj.setC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 面向 对象 程序设计
限制150内