清华大学张思民Java课件第3章

上传人:xia****ai 文档编号:243109109 上传时间:2024-09-15 格式:PPT 页数:51 大小:213KB
返回 下载 相关 举报
清华大学张思民Java课件第3章_第1页
第1页 / 共51页
清华大学张思民Java课件第3章_第2页
第2页 / 共51页
清华大学张思民Java课件第3章_第3页
第3页 / 共51页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,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、 类的基本概念,类用,class,作为它的关键字,例如我们要创建一个汽车类,则可表示为:,用类创建对象实例化,当我们要通过汽车类来创建一个轿车对象,并使用它的刹车行为方法时,则要用下面的格式进行实例化:,/,实例化汽车对象,汽车轿车,=,new,汽车,( ),;,/,引用汽车对象的刹车方法,轿车,.,刹车,( ),;,3.2类与对象,类和对象是,Java,的核心和本质。它们是,Java,语言的基础,编写一个,Java,程序,在某种程度上来说就是定义类和创建对象。定义类和建立对象是,Java,编程的主要任务。,3.2.1 定义类,1、 类的一般形式,类由类声明和类体组成,而类体又由成员变量和成员方法组成(如图3.3所示):,一个具体的类,2、类声明,类声明由四部分组成:类修饰符、类关键字,class、,声明父类、实现接口,其一般形式如下:,publicabstract|final class,类名 ,extends,父类名 ,implements,接口列表,各组成部分的具体说明,(,1,),类修饰符,public,:,这个,public,关键字声明了类可以在其他类中使用。缺省时,该类只能被同一个包中的其他类使用。,abstract,:,声明这个类为抽象类,即这个类不能被实例化。,final,:,声明该类不能被继承,即不能有子类。也就是说,不能用它通过扩展的办法来创建新类。,(,2,),类的关键字,class,在类声明中,,class,是声明类的关键字,表示类声明的开始,类声明后面跟着类名,按习惯类名要用大写字母开头,并且类名不能用阿拉伯数字开头。给类名命名时,最好取一个容易识别且有意义的名字,避免,A、B、C,之类的类名。,(,3,),声明父类,extends,为声明该类的父类,这表明该类是其父类的子类。一个子类可以从它的父类继承变量和方法。,extends,只能实现单继承。,创建子类格式:,class subclass extends,父类名,(4),实现接口,在类声明中使用关键字,implements,实现接口,当要实现有多个接口时,各接口名以逗号分隔,其形式为:,implements,接口,1,,接口,2,,,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。一个类可以实现多个接口,以某种程度实现“多继承”。,3、 成员变量和局部变量,成员变量(在类体中定义,在整个类中都有效);,局部变量(在方法中定义,只在本方法中有效)。,变量,(1)成员变量,最简单的成员变量声明的形式为:,类型成员变量名;,(2)局部变量,在方法中声明的变量以及方法中的参数称为局部变量。,(3)如果局部变量名与成员变量名相同,则成员变量被屏蔽。,成员变量与局部变量,class Data ,int,x=12,y=5;,public void sum() ,int,s;,s=x+y;,x、y,是成员变量,类中所有方法都可以使用它们,s,是局部变量。仅限于在,sum(),方法内部使用。,如果局部变量名与成员变量名相同,则成员变量被屏蔽。,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 方法声明与调用的运行结果,方法重载,方法重载是指多个方法享有相同的名字,但是这些方法的参数必须不同,或者是参数的个数不同,或者是参数类型不同。返回类型不能用来区分重载的方法。,【例3-2】,教材,P60,图3.8重载与调用关系,3.3 对象,类是一个抽象的概念,而对象是类的具体化。类通过实例化生成对象。,一个对象的生命周期包括三个阶段:,创建、使用和释放。,1、对象的创建,创建对象的一般格式为:,类名 对象名 =,new,类名(参数列表);,(1) 对象声明:,类名 对象名;,(2) 实例化:,对象名 =,new,构造方法( );,2、 对象的使用,类是不能直接使用的,我们只能类实例化后的对象。而对象的使用是通过访问对象变量或调用对象方法。 通过运算符“.”可以实现对对象的变量访问和方法的调用。,(,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,继承的方法。(,教材,P68),3.5 接口和包,3.5.1接口,接口是抽象类的一种,只包含常量和方法的定义,而没有变量和具体方法的实现。,1、 接口的定义,接口的定义包括接口声明和接口体。接口定义的格式如下:,public interface,接口名,extends,父接口名, /接口体,2、 接口的实现,在类的声明中用,implements,子句来表示一个类使用某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。,一个类可以实现多个接口,在,implements,子句中用逗号分开。,3.5.2包,package,和,import,语句,Package,用于指出,class,文件路径,package class,文件路径,;,Import,用于引用包的类,一个包中通常有多个类,就用,*,号代替,Import,语句,import,类似于,C,中的,include,语句,Import,java.io,.*;,Import java.applet.*;,包,package,包不仅是命名空间机制,也是访问控制机制。,Java,通过包,将命名空间分隔成很多独立的小块,一组相关的类和接口存放在一个独立的包内,从而和其它包中的类或接口区分开。,包的使用,第一步建立和包同名的目录。包和文件系统目录一一对应,有一个包,就有一个和其对应的文件系统目录。包内的所有类或接口都必须在与包同名的目录下。,第二步在类或接口所在文件的最前面声明类或接口所在的包。包的声明格式如下:,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(String,args, ), b b1=new b();,b1.print(); ,编译,a.java,则自动产生,a.class,和,b.class,例2:在当前建立目录:,abc,xyz.,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,保存到,abc,xyz,目录下,a.java,保存在当前目录,3.5.3,压缩文件,1,、将类压缩为,jar,文件,在,Java,提供的工具集,bin,目录下有一个,jar.exe,文件,它可以把多个类的字节码文件打包压缩成一个,jar,文件,然后将这个,jar,文件存放到,Java,运行环境的扩展框架中,即将该,jar,文件存放在,JDK,安装目录的,jre,libext,下,这样,其他的程序就可以使用这个,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,将应用程序生成可执行文件。在,Windows,环境下,我们可用鼠标双击该文件,就可以运行该应用程序。,其生成,jar,文件的步骤与前面生成类的,jar,文件相同。当要压缩多个类时,我们在清单文件中只要写出主类的类名,设有主类,A.class,,则:,Mainfest,Version:,Main-Class: A,生成,jar,文件时,也可以使用通配“*,.class”,。,jar,cfm,Test.jar,Manifest.mf,*.class,本章结束,!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!