Java程序设计 教学课件 作者 焦玲 JAVA课件--第四章(102页)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❏ Students s1;
■ Students为已经指定存在的类,s1为对象名。
■ Students类中声明了number、name、nClass 三个成员 变量以及getNumber、getName、getClass 三个成员方 法。由于变量s1的类型是Students,所以s1也就具有了 Stuents类中声明的上述三个成员变量作为它的属性,以 及三个成员方法作为它的状态。
■ 1、对象的创建
❏ 类实例化之后就可以产生多个对象,由类所创建 的这多个对象都具有类所定义的那些属性和行为。
❏ 然而,由同一个类所创建的不同对象的同一个属 性的值可能不同。
❏ 比如,可以定义一个学生类,它有姓名、班级、 出生年月等属性。学生类可以创建如下若干个学 生对象。如图4-1所示。
学生类
创建多个对象
❏ Java是一个面向对象的程序设计语言,我们在前面所看到 的每一个例题都使用了关键字“class”,它就是面向对象 程序设计方法中所使用的“类”。作为程序设计人员,我 们需要从现实生活中抽象出类和对象,然后将类和对象应 用到我们的编程中来解决实际问题。
4.1.2 类与对象的概念
■ 1、类的概念
❏ 将具有共同特征和行为的对象归为一个“类”,如 现实生活中的“汽车”类、“动物”类、“人”类 等。
❏ 针对任何一个方法,返回类型是必须的,如果方法没有返回值,则 返回类型为void。否则返回类型可以是各种数据类型,如int、float、 String等。
❏ 修饰符可以是static、public、private、protected等,我们将后面详 细讲解。
❏ 参数表中的参数主要用于参数传递,称之为形式参数。相邻的两个 参数之间用逗号隔开,每个参数的格式如下:
❏ 类实例化就成为对象,所以对象也有两个特征:状态和行 为。例如:一个人有他的身高或体重作为状态,并有他的 行为——如吃饭、睡觉、工作、学习。
❏ 在程序设计中,对象的概念由真实世界对象而来。对象将 状态保存在变量里,而行为则借助方法来实现 。
■ 总之,类是对对象的抽象,但是类不能完全 体现出每一个对象的状态,因为有的对象具 有“特性”,我们可以通过继承(见4.2.2) 来对类增加新的属性和方法。
第4章 Java语言面向对象程序设计
■ 本章重点
❏ 学习面向对象的编程思想,核心概念是类和对象; ❏ 掌握类和对象的关系; ❏ 掌握Java语言中类的定义以及围绕类中关于成员
变量和方法的引用; ❏ 掌握对象的引用以及关于对象的相关操作; ❏ 掌握组成Java程序的类之间的关系,包括类的封
装、多态和继承以及接口、包的使用。
■ 参数传递
❏ 参数传递主要是指实际参数向形式参数传递数值的 过程,如在【例4.2】中,实际参数的值 “10”,“20”分别传递给形式参数x,y。如果这 时候改变形式参数的值,实际参数是不会改变的。 因为形式参数和实际参数在内存中被分配到不同 的存储单元。
❏ 【例4.4】参数的传递举例 打开源文件
❏ 而在Java语言中,其他方法在使用前,必须首先声明,方 法的声明包含两部分,方法头和方法体。
❏ 格式如下:
■ [ 修饰符] 返回类型 方法名([参数表])
■{

方法体;
方法体
■}
方法头
■ 说明:
❏ 方法头包括修饰符(可以省略)、返回类型、方法名,参数表(可 以省略)。
❏ 方法名可以根据Java中的标识符命名规则来给方法起名,不能与关 键字重名。
❏ 对象初始化的格式为:
■ 类名 对象变量名=new 构造方法名([参数表]);
❏ 例如,在例4.1中,创建对象的过程如下:
■ Students s1;
//对象s1的声明
■ s1=new Students(); //对象的实例化与初始化 ■ 我们也可以将上述两步合并为一步:
方法:售出、补充、价格更新
■ 定义商品类中的属性和方法的程序代码如下:
❏ class commodity{
❏ char number;
//编号
❏ String name;
//名称
❏ float price;
//单价
❏ double amount;
//货架数量
❏ void sale();
//售出
❏ void supply()
■ 运行结果:
❏ S=1020
■ 【程序解析】
❏ 例中,自定义一个方法sum(String x,String y),其中,x, y分别为形式参数,对于形式参数,需要注意的是,变量前 面一定要加上变量的类型,即String x,String y。
❏ 在主方法main()中,调用sum()方法。将sum()方法作为一 个具体的数值赋值给S。
❏ 例如现实生活中的商品(即对象)具有共同的特 征:编号、名称、单价和货架数量,以及共同的 行为:售出、补充、价格更新等。
❏ 在面向对象程序设计中,将类的特征和行为分别 命名为属性和方法。
■ 例如:定义“商品”这样一个类,包s commodity
❏ public f i n a l class System extends Object
❏ 我们可以使用该类,但不能继承并覆盖其内容。 用重复的两个修饰符public+final的意思是:此 f i n a l 类可被import来引用,但不能被继承。
■ 注意的是final与abstract(抽象)不能复合来用,因为 二者是相冲突的。
对象
对象抽象为类
汽车类
类实例化为对象
■ 4.1.3 类的实现
■ 然而在实际的编程过程中,我们该如何的去 描述一个类以及类中的对象呢?
■ 在Java语言中,用户可以自己定义一个类。 类作为复合数据类型,其实现包括两部分内 容:类声明和类体。
■ 格式如下:
❏ [import包 ]
❏ [类修饰符] class xxxclass [extends超类]〔implements 接 口〕 //类声明
❏ extends为继承关键字,implements 为接口关键 字。(见4.2和4.4)
❏ 类体是类声明中用大括号所括起来的部分,它包 括变量和方法,是类的主体部分。
■ 【例4.1】定义一个学生类 打开源文件
■ 【程序解析】
❏ 在公共类Students中,类的主体部分包括私用变 量name、nClass,以及三个成员方法。整个类 用大括号“{ }”括起来。
■ 类修饰符:private
❏ private修饰的类只能被同一个包中的类来访问。
■ 类修饰符:abstract
❏ 如果一个类用abstract来修饰,则此类为抽象类, 详见4.3。
■ 2、方法的使用
❏ 在程序中,方法是不可缺少的,例如,我们接触的第一个 程序【例2.1】中的main方法。在上述定义类时,在类的 主体部分,我们看到了实例方法、类方法等。
❏ 通过使用方法我们可以完成特定的功能,方法一旦定义, 我们就可以在不同的程序段中多次调用,这样可以增强程 序的可读性,提供编程效率。
❏ 但是对于初学者来说,使用方法时经常出现错误,尤其是 在方法的声明和调用以及参数传递方面,所以我们将通过 下面的三个方面详细的讲解方法的使用。
■ 方法的定义
❏ 到目前为止,我们所接触的最多的方法就是main()方法。 main()方法区别于其他的一般地方法,即它不需要声明 就可以直接使用。
■ 1、类的修饰符
❏ 在类的声明中,我们经常要用到上述的4个修饰符,我们分 别来看看这些修饰符的用法。
❏ 类修饰符:public
■ public提供给其他类完全的存取权限。也就是说在同一包中的 类可自由取用此类,而别的包中的类可通过import关键词来引 入此类所属的包加以运用。
■ 一个用public修饰符修饰的类具有以下几个特性:
■ return 语句
❏ 在方法定义中,当返回类型不为void时,在方法 体中至少有一条return语句。return语句用于将方 法所运算的值返回,并终止方法的执行,然后回 到调用方法的程序中的位置。
❏ return 语句的语法形式为:
■ return 表达式;
■ 4.1.4 对象的创建与引用
■ 运行结果:
❏ 方法调用之前 ❏ a=10 b=20 ❏ 形参改变之前 ❏ x=10 y=20 ❏ 形参改变之后 ❏ x=20 y=10 ❏ 方法调用之后
❏ a=10 b=20
■ 【程序解析】
❏ 通过程序的运行结果,我们可以看出:实际参数即a,b的 值不受形式参数x,y的值的影响,即使形式参数的值改变 了,但是实际参数的值不会改变。
new
黎明
张鹏
王莉
………
图4-1 类与对象
赵洋
■ 对象的声明
❏ 声明的格式如下:
■ 类名 对象变量名;
❏ 其中:
■ 类名为复合类型(包括类和接口),对象变量名的命名 只要遵循标识符的命名规则即可。
■ 声明并不为对象分配内存空间,而只是分配一个引用空 间。
■ 在例4-1中,我们从Students类来声明对象, 如:
❏ { //从这里开始为类体部分

// 类变量

// 实例变量

// 构造函数

// 类方法

// 实例方法
❏ //类体部分结束
❏}
■ 说明:
❏ import包:引入包中的类。
❏ 类修饰符:主要有四个修饰符,public、abstract、 final、private。
❏ class为关键字,xxxclass为类名,命名遵循Java 标识符的命名规则。
4.1 面向对象程序设计基础
■ 4.1.1 面向对象概念
❏ 由于面向对象方法已经发展到计算机科学技术的许多领域, 所以若想从一般意义上给出严格而清晰的定义,使之对这 些领域都能使用,是一件很困难的事情。
❏ 针对我们这本书讨论的是Java程序设计,所以我们可以这样 来描述面向对象。面向对象是一种新兴的程序设计方法,或 者它是一种新的程序设计范型,其基本思想就是使用对 象 、类、继承、封装、消息等基本概念来进行程序设计。
■ 【例4.3】方法的调用:将【例4.2】程序修改 如下:打开源文件
■ 运行结果:
❏ S=1020
■ 【程序解析】
❏ 例中,sum()方法的返回类型为void,所以在 main()方法中调用时,直接作为一条语句。输出 的结果与【例4.2】完全相同。
❏ 在Java程序中,方法的定义、调用等都需要放到 一个类中。详看上述的例题。
■ 方法的调用与参数传递
❏ 方法的调用
■ 对于有返回类型的方法,我们可以将此方法作为一个表 达式或者是一个具体的数值来使用,如【例4.2】中, sum()方法的返回类型为int型,那么此方法相当于一个 具体的int型的数值,所以我们可以直接在main()方法 中调用。
■ 对于空返回类型的方法,我们可以将此方法作为一条语 句直接在程序中使用。
■ 对象的实例化
❏ 对象的实例化完成对象的空间分配,对象实例化 是通过关键字new操作完成的。操作符new实例化 一个类的对象,把存储空间分配给这个对象,其 中包括为对象的成员变量分配存储空间。
❏ 一个类的不同对象分别占据不同的内存空间,因 此,改变其中的一个对象的状态不会影响其它对 象的状态。
■ 对象的初始化
❏ 一个程序里只能有一个类被修饰为public,否则编译会出错。
❏ 存储源文件时,必须是用public修饰的类名(xxxClass)来命名。 ❏ 若程序中没有任何public类,则文件名可任取。而如果文件名是程
序中的一个类名,则该类被视为public。
■ 类修饰符:final
■ final表示此类为“最终”类,别的类不能继 承此类,其方法也不能被覆盖。例如 System类即为fi n a l 类,
//补充
❏ void update() ❏}
//价格更新
■ 2、对象的概念
❏ 我们可以把生活所在的真实世界看作是由许多大小不同的 对象所组成的。对象可以是有生命的个体,比如一个人或 一只鸟。对象也可以是无生命的个体,比如一辆汽车或一 台计算机。
❏ 对象也可以是一件抽象的概念,如天气的变化或鼠标所产 生的事件。
❏ 数据类型 变量名
❏ 方法体就是大括号中的内容,主要包括声明部分和语句部分,主要 用于具体功能的实现。
❏ 对于有返回值的方法,在方法体中至少有一条return语句。(见 return语句)
❏ 方法体中不允许有其他方法的声明,即不允许方法的嵌套。
■ 【例4.2】定义一个方法,用于实现字符串的转换以 及数值的求和 打开源文件
相关文档
最新文档