类与对象 计算机科学学院.pptx

上传人:莉*** 文档编号:87476595 上传时间:2023-04-16 格式:PPTX 页数:54 大小:1.67MB
返回 下载 相关 举报
类与对象 计算机科学学院.pptx_第1页
第1页 / 共54页
类与对象 计算机科学学院.pptx_第2页
第2页 / 共54页
点击查看更多>>
资源描述

《类与对象 计算机科学学院.pptx》由会员分享,可在线阅读,更多相关《类与对象 计算机科学学院.pptx(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Contents面向对象编程类声明和类体类体的构成构造方法与对象的创建对象的引用与实体成员变量方法方法重载关键字thisv包vimport语句v访问权限v对象的组合v基本类型数据的类包装v反编译和文档生成器vJAR文件第1页/共54页4.1面向对象编程面向对象的基本思想是,从现实世界中客观存在的事物触发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方法面向对象更加强调运用人类在日常的思维逻辑中经常采用的思想方法与原则,如抽象、分类、继承、聚合、多态等第2页/共54页对象和类的概念对象用计算机语言对问题域中事物的描述,对象通过“属性”和“方法”来分别对应事物所具有的静态属性和动态属性类

2、是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性类可以看成一类对象的模板,对象可以看成该类的一个具体实例4.1面向对象编程面向对象编程第3页/共54页Java与面向对象对象是Java程序的核心,在Java程序中“万事万物皆对象”,首先必须定义类才能有对象对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体类是用来创建同一类型的对象的“模块”,在一个类中定义了该类对象所应具有的成员变量以及方法,Person类Java SE提供了很多类供编程人员使用,编程人员也可定义自己的类成员变量成员变量=属性属性 方法方法=函数函数4.1面向对象编程面向对象编程第

3、4页/共54页4.2 类声明和类体在语法上,类由两部分构成:类声明和类体。基本格式为:class 类名 类体的内容 类的声明部分类的声明部分类命名的习惯:类命名的习惯:(1)如果类名使用拉丁字母,那么)如果类名使用拉丁字母,那么名字的首字母使用名字的首字母使用 大写字母,如大写字母,如Hello、Time、People等。等。(2)类名最好容易识别、见名知意。)类名最好容易识别、见名知意。当类名由几个当类名由几个“单词单词”复合而成时,复合而成时,每个单词的首写字母使用大写,如每个单词的首写字母使用大写,如BeijingTime、AmericanGame、HelloChina等。等。类体类体c

4、lass Dog class Person 第5页/共54页类类描述一类事物共有的属性和功能共有的属性和功能,即将数据和对数据的操作封装在一起。这个过程由类体类实现。所以类体的内容包含两种类型的成员:1成员变量:通过变量声明定义的变量,称作成员变量或域,用来刻画类创建的对象的属性。2方法:方法是类体的重要成员之一。其中的构造方法是具有特殊地位的方法,供类创建对象时使用,用来给出类所创建的对象的初始状态,另一类方法,可以由类所创建的对象调用,对象调用这些方法操作成员变量形成一定的算法,体现对象具有某种功能。4.3 类体的构成声明成员变量的格式为:type=defaultValue;例如:priv

5、ate int id;private int age=20;声明方法的格式为:()例如:public int getAge()return age;第6页/共54页/用class关键字定义一个类,名字为Personpublic class Person/成员变量定义private int id;private int age=20;/方法定义public int getAge()return age;public void setAge(int i)age=I;public int getId()return id;4.3 类体的构成第7页/共54页4.3 类体的构成成员变量可以使成员变量可以

6、使Java语言语言中任何一种数据类型(包中任何一种数据类型(包括基本类型和引用类型)括基本类型和引用类型)在定义成员变量时可以对在定义成员变量时可以对其初始化,如果不对其初其初始化,如果不对其初始化,始化,Java使用默认的值使用默认的值对其初始化(右图)对其初始化(右图)成员变量的作用范围为整成员变量的作用范围为整个类体,与它在类体中书个类体,与它在类体中书写的先后位置无关写的先后位置无关。第8页/共54页4.4 构造方法与对象的创建 类中有一部分方法称作构造方法,类创建对象时需使用构造方法,以便给类所创建的对象一个合理的初始状态。例如:Person类的构造方法(函数)public clas

7、s Personint id;int age;Person()/无参数构造方法Person(int n,int i)/有参数构造方法id=n;age=I;n 构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返回任何数据类型,即它是void型,但void必须省略不写。n Java允许一个类中有若干个构造方法,但这些构造方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。v构造方法构造方法第9页/共54页 1对象的声明对象的声明 一般格式为:类的名字 对象名字;如:Person pOne;4.4 构造方法与对象的创建v对象的创建对象的创建2为声明的对象分配成员变

8、量 使用new运算符和类的构造方法为声明的对象分配成员变量,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的)上述的Person类提供了2个构造方法,下面都是合法的创建对象的语句:pOne=new Person();或 pOne=new Person(1,25);如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。如果上述Person只提供一个带参数的构造方法,代码:pOne=new Person();/创建对象是非法的。第10页/共54页类和对象的关系 会实现下述两件事:(1)为成员变量分配内存空间,然后执行构造方法中的语句。(2)给出一个信息,已确保

9、这些成员变量是属于对象 c1或c2的。4.4 构造方法与对象的创建构造方法与对象的创建创建对象就是指为它分配成员变量,并获得一个引用,以确保这些成员变量由它来“操作管理”。分配实体后的对象ji 20 100 xAA11c1第11页/共54页如何在内存中区分类和对象?类是静态的概念,置于代码区对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量),而方法只有一份,执行的时候才占用内存4.4 构造方法与对象的创建构造方法与对象的创建第12页/共54页3创建多个不同的对象 一个类通过使用new运算符可以创建多个不同的对象,这些对象将被分配不同的内存空间,因此,改变

10、其中一个对象的状态不会影响其它对象的状态。例如,我们使用前面的Person类创建两个对象:pOne、pTwo。pOne=new Person(10,20);pTwo=new Person(11,66);当创建对象pOne时,Person类中的成员变量id、age被分配内存空间,并返回一个引用给pOne;4.4 构造方法与对象的创建构造方法与对象的创建 当再创建一个对象pTwo时,Person类中的成员变量id、age再一次被分配内存空间,并返回一个 引用给pTwo。内存模型如图所示。ageid 20 100 xAA11pOne 创建多个对象创建多个对象ageid 66 110 xBB42pTw

11、o第13页/共54页4.4 构造方法与对象的创建4使用对象 对象不仅可以操作自己的变量改变状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。(1)对象操作自己的变量(对象的属性)(2)对象调用类中的方法(对象的功能)演示例演示例4-1第14页/共54页4.5 对象的引用与实体 我们已经知道,当用类创建一个对象时,成员变量被分配内存空间,这些内存空间称做该对象的实体,而对象中存放着引用,以确保这些变量由该对象操作使用。因此,如果两个对象有相同的引用,那么就具有同样的实体。假如使用例子1“La

12、der”类的构造方法创建了两个对象 t1,t2。t1=new Lader(11,22,33);t2=new Lader(6,12,18);第15页/共54页“垃圾回收垃圾回收”机制:机制:Java的运行环境周期地检测某个实体是否已不再被任何对象所引用,如果发现这样的实体,就释放实体占有的内存。因此,Java编程人员不必象C+程序员那样,要时刻自己检查哪些对象应该释放内存。当把变量t2中存放的引用赋给t1后,最初分配给对象t1的成员变量(实体)所占有的内存就会被释放。没有实体的对象称作空对象。空对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,程序在运行时会出现异常:N

13、ullPointerException。由于对象是动态地分配实体,所以Java的编译器对空对象不做检查。因此,在编写程序时要避免使用空对象。4.5 对象的引用与实体第16页/共54页4.6 成员变量 1.1.类变量和实例变量类变量和实例变量 用用关关键键字字static修修饰饰的的成成员员变变量量称称作作静静态态变变量量或或类类变变量量,而而没没有有使使用用static修修饰饰的的成成员员变变量量称称作作实实例例变量变量。例如,下述A类中,x是实例变量,而y是类变量。class A float x;static int y;类变量是与类相关联的数据变量,也就是说,类变量是和该类所创建的所有对象

14、相关联的变量,改变其中一个对象的这个类变量就同时改变了其它对象的这个类变量。也就是说对象共对象共享类变量享类变量。类变量不仅可以通过某个对象访问也可以直接通过类名访问可以直接通过类名访问。实例变量仅仅是和相应的对象关联的变量,也就是说,不同对象的实例变量互不相同,即分配不同的内存空间,改变其中一个对象的实例变量不会影响其它对象的这个实例变量。实例变量必须实例变量必须通过对象访问。通过对象访问。演示例子4-2第17页/共54页2 2常量常量 如如果果一一个个成成员员变变量量修修饰饰为为final,就是常量,常量的名字习惯用大写字母,例如:final int MAX;final修饰的成员变量不占用

15、内存,这意味着在声明final成员变量时,必须要初始化。对于final修饰的成员变量,对象可以操作使用,但不能做更改操作。4.6 成员变量 运行例行4-3,给出了常量的用法。第18页/共54页4.7 方法 类体内容可以有2种类型的成员:成员变量和方法。其中一部分方法称作构造方法,供类创建对象时使用,用来给出类所创建的对象的初始状态。另一部分方法可分为实实例例方方法法和和类类方方法法,类所创建的对象可以调用这些方法形成一定的算法,体现对象具有某种功能。当对象调用方法时,方法中出现的成员变量就是指分配给该对象的成员变量。对象不可以调用构造方法对象不可以调用构造方法,构造方法是专门用来创建对象的。方

16、法的定义包括两部分:方法的定义包括两部分:方法声明和方法体。方法声明和方法体。一般格式为:方法声明部分 方法体的内容第19页/共54页1方法声明和方法体 最基本的方法声明包括方方法法名名和和方方法法的的返返回回类类型型,返回类型也简称作方法的类型。如:如:float area().4.7 方法方法的命名,必须符合标识符规定,应遵守以下习惯:1.名字如果使用拉丁字母,首写字母使用小写。2.如果由多个单词组成,从第2个单词开始的其它单词的首写字母使用大写。例如 float getTrangleArea()void setCircleRadius(double radius)方法名方法名方法体方法体

17、【修饰符1 修饰符2】返回值类型 方法名(形式参数列表)Java语句;返回值:方法在执行完毕后返还给调用它的环境的数据返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void第20页/共54页2方法体的构成方法体的构成 方法体的内容包括变量的定义和合法的Java语句。局部变量:在方法体中声明的变量以及方法的参数;说明:1.局部变量仅仅在该方法内有效,且从它定义的位置之后开始有效。2.方法的参数在整个方法内有效。4.7 方法3实例方法与类方法 除构造方法外,其他的方法可分为实例方法或类方法。方法声明中用关键字用关键字staticstatic修饰的称作类方法或修饰的称作类方法

18、或静态方法静态方法,不用static修饰的称作实例方法。第21页/共54页class A float a,b;static float getMaxSqrt(float x,float y)float c;c=max(x,y)*max(x,y);return c;static float max(float x,float y)return xy?x:y;void sum(float x,float y)a=max(x,y);b=min(x,y);静态方法静态方法float min(float x,float y)return xb?a:b;class Example4_4 public st

19、atic void main(String args)double max=Computer.max(12,45);/类名调用类方法 第23页/共54页4.7 方法【修饰符修饰符1 修饰符修饰符2】返回值类型返回值类型 方法名方法名(形式参数列表形式参数列表)Java语句;语句;形式参数:在方法被调用时用于接收外界输入的数据实参:调用方法时实际传给方法的数据 4参数传值 当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有具体的值。在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。如果向方法的int型参数x传递一个int值,那么参数x

20、得到的值是传递值的拷贝。方法如果改变参数的值,不会影响向参数“传值”的变量的值。(1)基本数据类型参数的传值:传递的是该数据值本身;例子4-5 (2)引用类型参数的传值:传递的是对对象的引用,而不是对象本身;例子4-6第24页/共54页上节回顾1.类变量和实例变量 用关键字static修饰的成员变量称作静态变量或类变量,而没有使用static修饰的成员变量称作实例变量。例如,下述A类中,x是实例变量,而y是类变量。class A float x;static int y;成员变量:成员变量:类变量不仅可以通过某个对象访问也可以直接通过类名访问类变量不仅可以通过某个对象访问也可以直接通过类名访问

21、实例变量必须通过对象访问。实例变量必须通过对象访问。第25页/共54页上节回顾方法:方法:方法声明部分 方法体的内容用关键字static修饰的称作类方法或静态方法,不用static修饰的称作实例方法。方法调用:(1)实例方法必须通过对象来调用(2)类方法可以通过类名调用,也可以通过对象调用参数传递:(1)基本数据类型参数的传值:传递的是该数据值本身;(2)引用类型参数的传值:传递的是对对象的引用,而不是对象本身;【修饰符1 修饰符2】返回值类型 方法名(形式参数列表)Java语句;第26页/共54页4.8 方法的重载 方法的重载方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。

22、即或者是参数的个数不同,或者是参数的类型不同。方法的返回类型和参数的名字不参与比较.方法重载是多态性的一种。调用时,系统会根据不同的参数表选择对应的方法调用时,系统会根据不同的参数表选择对应的方法 例如:在Person类中添加方法:void info()void info(String t)第27页/共54页构造方法的重载与普通方法一样,构造方法也可以重载与普通方法一样,构造方法也可以重载可以根据不同的构造方法创建不同的对象类Person中构造方法:Person()id=0;age=20;Person(int _age)id=0;age=_age;Person(int _id,int _age

23、)id=_id;age=_age;第28页/共54页内存分析第29页/共54页内存分析2第30页/共54页内存分析3第31页/共54页内存分析4第32页/共54页4.9 this关键字 在类的方法定义中使用this关键字代表使用该方法的对象的引用 当必须指出当前使用方法的对象是谁时要使用this,可以出现可以出现在实例方法和构造方法中,但不可以出现在类方法中。在实例方法和构造方法中,但不可以出现在类方法中。1在构造方法中使用this this关键字可以出现在类的构造方法中,代表使用该构造方法所创建的对象。2在实例方法中使用this this关键字可以出现在类的实例方法中,代表使用该方法的当前对

24、象。实例方法可以操作成员变量。实际上,当成员变量在实例方法中出现时,默认的格式是:this.成员变量;意思是当前对象的成员变量,如:class A int x;void f()this.x=100;第33页/共54页4.9 this关键字 3类方法中不可以使用类方法中不可以使用this this不能出现在类方法中,这是因为,类方法可以通过类名直接调用,这时,可能还没有任何对象诞生。4使用this区分成员变量和局部变量 成员变量在整个类内有效,局部变量仅在方法内有效。在方法体中声明的变量以及方法的参数称作局部变量,方法的参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效。这时如

25、果想在该方法内使用成员变量,成员变这时如果想在该方法内使用成员变量,成员变量前面的量前面的“this.”就不可以省略,就不可以省略,如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。class Tra float sideA,sideB,sideC;static int count;void setSide(float sideA,float sideB,float sideC)this.sideA=sideA;this.sideB=sideB;this.sideC=sideC;class Tom int x=188,y;void f()int x=

26、3;y=x;/*y得到的值是3,不是188。如果方法f 中没有“int x=3;”语句,y的值将是98.*/*this.sideA、this.sideB、this.sideC就分别表示当前对象的成员变量sideA、sideB、sideC.*/第34页/共54页经管院经管院信管信管08级级信管信管07级级计科院计科院4.10 包 为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包机制,提供类的多重类命名空间张张重重张张重重张张重重第35页/共54页4.10 包通过关键字通过关键字package声明包语句声明包语句package语句作为语句作为java源文件的第一条语句,指

27、明该源文件的第一条语句,指明该文件中定义的类所在的包文件中定义的类所在的包(若缺省该语句,则指定为无若缺省该语句,则指定为无名包名包)格式为:格式为:package 包名包名;java编译器编译器把包对应于文件系统的目录管理把包对应于文件系统的目录管理,package语句中,用语句中,用“.”来指明包来指明包(目录目录)的层次,例的层次,例如使用语句如使用语句package tom.jiafei;则该文件中所有的类位于则该文件中所有的类位于.tomjiafei目录下目录下注意:包所对应的目录结构必须已经存在,否则注意:包所对应的目录结构必须已经存在,否则class字节码字节码文件无法运行。文件

28、无法运行。如在 c:1000tomjiafei。要将源文件编译后得到的全部字节码文件拷贝到目录c:1000tomjiafei中;如果你事先将源文件保存到c:1000tomjiafei中,然后编译源文件,那么生成的字节码文件就直接保存到当前目录中了演示演示4-10建议:建议:实际项目中用自己公司的域名倒置作为包名。实际项目中用自己公司的域名倒置作为包名。如如”的倒置的倒置“做包名做包名使用参数使用参数“d”编译源文件,指定生成的字节吗文件所在的目录。编译源文件,指定生成的字节吗文件所在的目录。如:如:javac d F:tsinghua1000 MyFile.java第36页/共54页JDK包介

29、绍java.lang包含一些java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能java.awt包含了构成抽象窗口工具包(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)java.applet包含applet运行所需的一些类包含执行与网络相关的操作的类java.io包含能提供多种输入/输出功能的类java.util包含一些使用工具类,如定义系统特性,使用与日期日历相关的函数第37页/共54页 4.11 import语句 使用使用import import 语句可以引入包中的类。

30、语句可以引入包中的类。在编写源文件时,除了自己编写类外,我们经常需要使用Java提供的许多类,这些类可能在不同的包中。在学习Java语言时,使用已经存在的类,避免一切从头做起,这是面向对象编程的一个重要方面。1.使用类库中的类使用类库中的类 为了能使用Java提供给我们的类,我们可以使用import语句来引入包中类。在一个Java源程序中可以有多个import语句,它们必它们必须写在须写在package语句(假如有语句(假如有package语句的话)和源文件中类的语句的话)和源文件中类的定义之间。定义之间。引用一个包中全部的类:引用一个包中全部的类:import java.awt.*;只引入包

31、中某一个类:只引入包中某一个类:public class Example4_11 public static void main(String args)Date date=new Date();本地机器的时间:n%s,date);注意:注意:java.lang包中的类不用引入,由系统自动完成包中的类不用引入,由系统自动完成第38页/共54页 4.11 import语句2使用自定义包和无名包中的类使用自定义包和无名包中的类v 可以使用import 语句引入自定义包中的类。如:v 可以对单独的一个类进行编译,生成字节码文件然后供其它类使用。如引用的源文件没有包名,可直接将其字节码文件和应用程序放

32、如引用的源文件没有包名,可直接将其字节码文件和应用程序放在同一目录在同一目录如引用的源文件有包名,如:如引用的源文件有包名,如:tom.jiafei;可在应用程序所在目录可在应用程序所在目录下建立其包对应的子目录结构下建立其包对应的子目录结构tomjiafei,然后将其字节码文件放,然后将其字节码文件放在其中在其中如果引用的源文件编译后的字节码文件存放在其他目录中,需在如果引用的源文件编译后的字节码文件存放在其他目录中,需在classpath中指明其位置中指明其位置表示加载应用程序当前目录中的无名包类表示加载应用程序当前目录中的无名包类第39页/共54页3避免类名混淆 Java运行环境总是先到

33、程序所在目录中寻找程序所使用的类,然后加载到内存。如果在当前目录没有发现所需要的类,就到import语句所指的包中查找。4.11 import语句v区分无包名和有包名的类:区分无包名和有包名的类:有包名的类不能省略包名有包名的类不能省略包名 Triangle a1=new Triangle();v区分有包名的类区分有包名的类:同时引入了两个包中同名的类,都不能省略包名同时引入了两个包中同名的类,都不能省略包名 第40页/共54页4.10-4.11 package,import总结如果想将一个类放入包中,在这个类源文件第一句话写如果想将一个类放入包中,在这个类源文件第一句话写package必须保

34、证该类的必须保证该类的class字节码文件位于正确目录下字节码文件位于正确目录下该类的源码可能会产生影响该类的源码可能会产生影响删除或转移到另外的目录删除或转移到另外的目录另外的类想访问的话:另外的类想访问的话:写全名写全名访问位于同一个包中的类不需要引入访问位于同一个包中的类不需要引入引入引入*具体类名具体类名执行一个类需要写全包名执行一个类需要写全包名第41页/共54页4.12 访问权限 Java权限修饰符public protected private置于类的成员定义前,用来限定其他对象对该类对象成员(成员变量和方法)的访问权限.1 1私有变量和私有方法私有变量和私有方法 用关键字pri

35、vate修饰的成员变量和方法被称为私有变量和私有方法。对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的private成员变量和类中的private方法。运行例4-13,例4-14 class A private float weight;private float f(float a,float b);class B void g();A a=new A();a.weight=23f;a.f(3f,4f);/非法/非法第42页/共54页 2 2共有变量和共有方法共有变量和共有方法 用public修饰的成员变量和方法被称为共有变量和共有方法,如:class A pub

36、lic float weight;/weight被修饰为public的float型变量。public float f(float a,float b)/方法 f是public方法。4.12 访问权限 class B void g()A a=new A();a.weight=23f;/合法。a.f(3,4);/合法。在任何一个类中用另一个类A创建了一个对象后,该对象能访问自己的public变量和类A中的public方法第43页/共54页 3 3友好变量和友好方法友好变量和友好方法 不用private、public、protected修饰符的成员变量和方法被称为友好变量和友好方法友好变量和友好方法

37、,如:class A float weight;/weight是友好的float型变量。float f(float a,float b)/方法 f是友好方法。4.12 访问权限 假如B与A是同一个包中的类,那么,下述B类中的a.weight、a.f(3,4)都是合法的。class B void g()A cat=new A();a.weight=23f;/合法。a.f(3,4);/合法。第44页/共54页 4 4受保护的成员变量和方法受保护的成员变量和方法 用protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法,如:class A protected float weig

38、ht;/weight被修饰为public的float型变量。protected float f(float a,float b)/方法 f是public方法。4.12 访问权限 假如B与A是同一个包中的类,那么,B类中的a.weight、a.f(3,4)都是合法的。class B void g()Tom a=new Tom();a.weight=23f;/合法。a.f(3,4);/合法。第45页/共54页5public类与友好类类与友好类 类声明时,如果关键字class前面加上public关键字,就称这样的是一个public类,不能用protected和private修饰类。如:public

39、class A 可以在任何另外一个类中,使用public类创建对象。如果一个类不加public修饰,如:class A 4.12 访问权限 6关于构造方法 private、public、protected修饰符的意义也同样适合于构造方法。如果一个类没有明确地声明构造方法,那么public类的默认构造方法是public的,友好类的默认构造方法是友好的。需要注意的是,如果一个public类定义声明的构造方法中没有public的,那么在另外一个类中使用该类创建对象时,使用的构造方法就不是 public的,创建对象就受到一定的限制。第46页/共54页4.12 访问权限 无无第47页/共54页4.13

40、对象的组合 一个类可以把对象作为自己的成员变量,如果用这样的类创建对象,那么该对象中就会有其它对象,也就是说该对象将其他对象作为自己的组成部分(这就是人们常说的Has-A),或者说该对象是由几个对象组合而成.例例4-15第48页/共54页4.14 基本类型数据的类包装 Java的基本数据类型包括:byte、int、short、long、float、double、char。Java同时也提供了基本数据类型相关的类基本数据类型相关的类,实现了对基本数据实现了对基本数据类型的封装类型的封装。这些类在java.lang包中,分别是:Byte、Integer、Short、Long、Float、Doubl

41、e和Character类。1.Double和Float类 Double类和Float类实现了对double和float基本型数据的类包装。可以使用Double类的构造方法:Double(double num)创建一个Double类型的对象;使用Float类的构造方法:Float(float num)创建一个Float类型的对象。Double对象调用第49页/共54页包装类常见方法2.Byte、Integer、Short和Long对象分别调用 byteValue()、intValue()、shortValue()和longValue()方法可以返回该对象含有的基本型数据。方法public sta

42、tic final int MAX_VALUE最大的整形数(231-1)public static final int MIN_VALUE最小的整形数(-231public long longValue()返回封装数据的long型值public double doubleValue()返回封装数据的double型值public int intVlue()放回封装数据的int型值public static int parseInt(String str)throws NumberFormatException把字符串解析成int型数据,返回该数据public static Integer val

43、ueOf(String s)throws NumberFormatException返回Integer对象,其中封装的整形数据为字符串s所表示第50页/共54页 3.haracter类 Character类实现了对char基本型数据的类包装。可以使用Character类的构造方法:Character(char c)创建一个Character类型的对象。Character对象调charValue()方法可以返回该对象含有的char型数据。Character类还包括一些类方法,这些方法可以直接通过类名调用,用来进行字符分类,比如判断一个字符是否是数字字符或改变一个字符的大小写等。Character

44、类中的一些常用类方法:4.14 基本类型数据的类包装 l public static boolean isDigit(char ch)如果ch是数字字符方法返回 true,否则返回false。l public static boolean isLetter(char ch)如果ch是字母方法返回 true,否则返回false。l public static boolean isLetterOrDigit(char ch)如果ch是数字字符或字母方法返回 true,否则返回false。l public static boolean isLowerCase(char ch)如果ch是小写字母方法返

45、回 true,否则返回false。例4-16第51页/共54页4.15 反编译和文档生成器 使用SDK提供的反编译器:javap.exe可以将字节码反编 译为源码,查看源码类中的public方法名字和public成员变量的名字,例如:将列出Button中的public方法和public成员变量。下列命令 将列出Button中的全部方法和成员变量。第52页/共54页 使用SDK提供的javadoc.exe可以制做源文件类结构的 html格式文档。假 设 D:test有 源 文 件:Example.java,用javadoc生成Example.java的html格式文挡:javadoc Example.java 这时在文件夹test中将生成若干个html文挡,查看这些文档可以知道源文件中类的组成结构,如类中的方法和成员变量。使用javadoc时,也可以使用参数-d指定生成文挡所在的目录,例如,avadoc d F:gxybook Example.java 4.15 反编译和文档生成器 第53页/共54页感谢您的观看!第54页/共54页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁