




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言程序设计,第3章 面向对象程序设计基础,主讲:张思民,清华大学,本章主要内容,3.1面向对象的基本概念 3.2类与对象 3.2.1 定义类 3.2.2 成员方法 3.3 对象 3.4 面向对象特性 3.4.1 封装性,3.4.2继承性 3.4.3多态性 3.4.4 其它修饰符的用法 3.5接口和包 3.5.1接口 3.5.2包 3.5.3 压缩文件.jar,3.1面向对象的基本概念,1、 对象的基本概念 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。,现实世界中的对象有两个共同特征:形态和行为。,图3.2 软件对象的变量和方法,2、 类的基本概念,类用clas
2、s作为它的关键字,例如我们要创建一个汽车类,则可表示为:,用类创建对象实例化,当我们要通过汽车类来创建一个轿车对象,并使用它的刹车行为方法时,则要用下面的格式进行实例化: /实例化汽车对象 汽车轿车= new 汽车( ) ; /引用汽车对象的刹车方法 轿车.刹车( ) ;,3.2类与对象,类和对象是Java的核心和本质。它们是Java语言的基础,编写一个Java程序,在某种程度上来说就是定义类和创建对象。定义类和建立对象是Java编程的主要任务。,3.2.1 定义类,1、 类的一般形式 类由类声明和类体组成,而类体又由成员变量和成员方法组成(如图3.3所示):,一个具体的类,2、类声明,类声明
3、由四部分组成:类修饰符、类关键字class、声明父类、实现接口,其一般形式如下:,publicabstract|final class 类名 extends 父类名 implements 接口列表 ,各组成部分的具体说明,(1) 类修饰符 public:这个public关键字声明了类可以在其他类中使用。缺省时,该类只能被同一个包中的其他类使用。 abstract:声明这个类为抽象类,即这个类不能被实例化。 final:声明该类不能被继承,即不能有子类。也就是说,不能用它通过扩展的办法来创建新类。,(2) 类的关键字class 在类声明中,class是声明类的关键字,表示类声明的开始,类声明后面
4、跟着类名,按习惯类名要用大写字母开头,并且类名不能用阿拉伯数字开头。给类名命名时,最好取一个容易识别且有意义的名字,避免A、B、C之类的类名。,(3) 声明父类 extends为声明该类的父类,这表明该类是其父类的子类。一个子类可以从它的父类继承变量和方法。extends只能实现单继承。 创建子类格式: class subclass extends 父类名 ,(4)实现接口 在类声明中使用关键字implements实现接口,当要实现有多个接口时,各接口名以逗号分隔,其形式为: implements 接口1,接口2,, 接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法
5、的实现。一个类可以实现多个接口,以某种程度实现“多继承”。,3、 成员变量和局部变量,成员变量(在类体中定义,在整个类中都有效); 局部变量(在方法中定义,只在本方法中有效)。,变量,(1)成员变量 最简单的成员变量声明的形式为: 类型成员变量名; (2)局部变量 在方法中声明的变量以及方法中的参数称为局部变量。 (3)如果局部变量名与成员变量名相同,则成员变量被屏蔽。,成员变量与局部变量,class Data int x=12,y=5; public void sum() int s; s=x+y; ,x、y是成员变量,类中所有方法都可以使用它们,s是局部变量。仅限于在sum()方法内部使用
6、。,如果局部变量名与成员变量名相同,则成员变量被屏蔽。,class Data int x=12,y=5; public void sum() int x=3; /局部变量x屏蔽了成员变量 int s; s=x+y; ,3.2.2 成员方法,在Java中,必须通过方法才能完成对类和对象的属性操作。成员方法只能在类的内部声明并加以实现。一般在类体中声明成员变量之后再声明方法。,1、方法声明,返回类型方法名(形式参数) 方法体内容 ,(1) 方法名方法声明包括方法名、返回类型和参数。 (2) 方法体 方法体是一对大括号“”之间的内容。,【例3-1】 教材P59,图3.7 方法声明与调用的运行结果,方
7、法重载,方法重载是指多个方法享有相同的名字,但是这些方法的参数必须不同,或者是参数的个数不同,或者是参数类型不同。返回类型不能用来区分重载的方法。,【例3-2】教材P60,图3.8重载与调用关系,3.3 对象,类是一个抽象的概念,而对象是类的具体化。类通过实例化生成对象。 一个对象的生命周期包括三个阶段: 创建、使用和释放。,1、对象的创建,创建对象的一般格式为: 类名 对象名 = new 类名(参数列表); (1) 对象声明: 类名 对象名; (2) 实例化: 对象名 = new 构造方法( );,2、 对象的使用,类是不能直接使用的,我们只能类实例化后的对象。而对象的使用是通过访问对象变量
8、或调用对象方法。 通过运算符“.”可以实现对对象的变量访问和方法的调用。,(1) 访问对象的变量,访问格式: 对象名.成员变量; 例如,设有一个A类其结构如下: class A int x; 对变量x赋值,先创建并实例化类A的对象a,然后再通过对象给变量x: A a = new A(); a.x=5;,(2) 调用对象的方法,调用格式:对象名.方法名(参数列表); 【例3-5】用带参数的成员方法计算长方体的体积。,3.4 面向对象特性,java语言中有三个典型的面向对象的特性:封装性、继承性和多态性 。,关于继承性,【例3-7】创建一个A类和它的子类B类,我们通过子类B的实例对象调用从父类A继
9、承的方法。( 教材P68),3.5 接口和包,3.5.1接口,接口是抽象类的一种,只包含常量和方法的定义,而没有变量和具体方法的实现。,1、 接口的定义,接口的定义包括接口声明和接口体。接口定义的格式如下:public interface 接口名extends 父接口名 /接口体 ,2、 接口的实现,在类的声明中用implements子句来表示一个类使用某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。 一个类可以实现多个接口,在implements子句中用逗号分开。,3.5.2包,package和import语句,Package 用于指出class文件路径,pac
10、kage class文件路径;,Import 用于引用包的类 一个包中通常有多个类,就用 * 号代替,Import语句,import类似于C中的include语句 Import java.io.*; Import java.applet.*;,包 package,包不仅是命名空间机制,也是访问控制机制。 Java通过包,将命名空间分隔成很多独立的小块,一组相关的类和接口存放在一个独立的包内,从而和其它包中的类或接口区分开。,包的使用,第一步建立和包同名的目录。包和文件系统目录一一对应,有一个包,就有一个和其对应的文件系统目录。包内的所有类或接口都必须在与包同名的目录下。 第二步在类或接口所在文
11、件的最前面声明类或接口所在的包。包的声明格式如下: package 包名1.包名2.包名n;,引用包,通过import将包引入程序中,其格式如下: import 包名1. .包名n.类名; 或 import 包名1. .包名n.*;,Java自动引入的包,当前包。 缺省包,缺省包是无名包。 java.lang包,Java基本的语言功能保存在这个包中,Package 语句,public class b public void print() System.out.println(package test); ,例1 : public class a public static void main
12、(String args ) b b1=new b(); b1.print(); ,编译a.java 则自动产生a.class和b.class,例2:在当前建立目录:abcxyz.,Import abc.xyz.*; public class a public static void main(String args ) b b1=new b(); b1.print(); ,Package abc.xyz; public class b public void print() System.out.println(package test); ,把b.java保存到abcxyz目录下,a.ja
13、va保存在当前目录,3.5.3 压缩文件,1、将类压缩为jar文件 在Java提供的工具集bin目录下有一个jar.exe文件,它可以把多个类的字节码文件打包压缩成一个jar文件,然后将这个jar文件存放到Java运行环境的扩展框架中,即将该jar文件存放在JDK安装目录的jrelibext下,这样,其他的程序就可以使用这个jar文件中的类来创建对象了。,例:设有Test1.class和Test2.class,我们要将它们压缩成一个jar文件Test.jar。,(1)编写Manifest.mf清单文件 Mainfest Version: Main-Class: Test1 Test2 (注意Main-Class:与后面的类名之间要有一个空格,且最后一行要回车换行)。将其保存为Manifest.mf。,(2)生成jar文件 jar cfm Test.jar Manifest.mf Test1.class Test2.class 其中参数c表示要生成一个新的jar文件,f表示要生成的jar文件的文件名,m表示清单文件的文件名。,2、将应用程序压缩为jar文件,我们还可以用jar.exe将应用程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初二班主任个人述职报告范文模板-1
- 备战2023年高考地理专题复习新题典题精练06-水循环(原卷版)
- 2025年陶瓷生产加工机械项目合作计划书
- 基于大数据的教育政策分析与调整
- 教育心理学在体育训练中的应用-运动员潜能的挖掘
- 教育行业品牌建设与精准营销手段
- 创新教育新媒体材料的应用与思考
- 教育大数据分析助力智慧校园建设
- 儿童保护法案与教育法规的关联分析
- 家庭教育中的教育心理学激发孩子潜能的技巧
- 劳动合同(通用版)
- 英语口语 购物课件
- 膀胱镜检查记录
- 钢板仓施工方案
- DBJ50-112-2016 现浇混凝土桥梁梁柱式模板支撑架安全技术规范
- 北京福赛尔V6891、V6851控制器(联动型)的调试
- 中航信离港系统培训(3)
- 汽车维修安全生产管理制度大全
- 晋江市劳动合同书
- 中国银行_境外汇款申请书样板(最新版)-带中行行标
- EVA交联度实验操作规程
评论
0/150
提交评论