CH03Java面向对象程序设计.ppt

上传人:xin****828 文档编号:6286167 上传时间:2020-02-21 格式:PPT 页数:74 大小:559.31KB
返回 下载 相关 举报
CH03Java面向对象程序设计.ppt_第1页
第1页 / 共74页
CH03Java面向对象程序设计.ppt_第2页
第2页 / 共74页
CH03Java面向对象程序设计.ppt_第3页
第3页 / 共74页
点击查看更多>>
资源描述
第3章Java的面向对象程序设计 面向对象程序的概念类 class 对象 object static关键字this关键字包 package 访问权限类的继承对象的上转型对象多态性 abstract类和abstract方法super关键字接口 interface 内部类匿名类异常类Class类基本类型的类包装反编译和文档生成器jar文件 3 1面向对象程序的概念 机器语言 如汇编语言 计算机处理信息的早期语言是所谓的机器语言 这种语言中的指令都是由0 1组成的序列 称这样的序列为一条机器指令 过程语言语言把代码组成叫做过程或函数的块 每个块的目标是完成某个任务 例如 一个C的源程序就是由若干个书写形式互相独立的函数组成 面向对象编程面向对象编程主要体现下列三个特性 1 封装性 Encapsulation 2 继承性 Inheritance 3 多态性 Polymorphism Java语言是面向对象语言 它的源程序是由若干个类组成 源文件是扩展名为 java的文本文件 3 2类 class class是组成Java程序的基本要素 类封装了一类对象的状态和方法 类是用来定义对象的模板 类的结构分为两个两部分 类声明 ClassDeclaration 和类体 ClassBody 格式如下 类声明 类体 如 publicclassPeople Stringname 1 类声明 ClassDeclaration 类声明的格式 类修饰符class类名 extends父类名 implements接口表列 类体 类声明由关键字class 类名 类修饰符三部分组成关键字class用固定的小写字母格式类名 符合Java书写规范的标识符类修饰符 可选 可以为public 缺省 abstract final 用于说明类的访问控制 publicclassPeople 叫做类声明 People 是类名 习惯上类名的第一个字母大写 但不是必须的 2 类体 ClassBody 写类的目的是为了描述一类事物共有的属性和功能 描述过程由类体来实现 类声明之后的一对大括号 以及它们之间的内容称做类体 大括号之间的内容称做类体的内容 类体的内容由两部分构 一部分是变量的定义 用来刻画属性 另一部分是方法的定义 用来刻画类的功能 class梯形 float上底 下底 高 laderArea 变量定义部分float计算面积 方法定义laderArea 上底 下底 高 2 0f returnladerArea void修改高 floath 方法定义高 h 3 成员变量和局部变量 MemberVariables LocalVariables 类体中的变量分为两部分成员变量 变量定义部分所定义的变量被称为类的成员变量 局部变量 在方法体中定义的变量和方法的参数被称为局部变量 成员变量在整个类内都有效 局部变量只在定义它的方法内有效 成员变量又分为实例成员变量 简称实例变量 和类变量 也称静态变量 如果局部变量的名字与成员变量的名字相同 则成员变量被隐藏 即这个成员变量在这个方法内暂时失效 此时如果想在该方法内使用成员变量 必须使用关键字this 成员变量定义 修饰符 变量类型变量名 修饰符 pubic private protected 默认 友好型 static 类变量 final 常量 变量类型 可以是简单类型 数组类型 类 String Date 第三方类 自定义类 类型变量名 合法的Java标识符局部变量定义 变量类型变量名 变量类型 可以是简单类型 数组类型 类 String Date 自定义类 类型变量名 合法的Java标识符 class三角形 floatsideA sideB sideC lengthSum voidsetSide floatsideA floatsideB floatsideC this sideA sideA this sideB sideB this sideC sideC 其中 this sideA this sideB this sideC就分别表示成员变量sideA sideB sideC 4 方法 Method 方法的概念描述对象所具有的功能或操作 反映对象的行为 是具有某种相对独立功能的程序模块方法的类型从来源看 类库方法 用户自定义方法从参数个数看 无参方法 有参方法方法定义的格式 方法声明 方法体 修饰符 返回值类型成员方法名 形参表 throws异常表 方法体 修饰符 pubic private protected 默认 友好型 static 静态方法 final 最终方法 abstract 抽象方法 native 本地方法 返回值类型 简单类型 数组类型 void型 类 String Date 其他类 类型形参表 格式为 形参类型1形参变量1 形参类型2形参变量2 javanative方法是指本地方法 当在方法中调用一些不是由java语言写的代码或者在方法中用java语言直接操纵计算机硬件时要声明为native方法 java中 通过JNI JavaNativeInterface java本地接口 来实现本地化 5 方法的参数 Arguments 方法的参数在整个方法内有效 方法内定义的局部变量从它定义的位置之后开始有效 如果局部变量的定义是在一个复合语句中 那么该局部变量的有效范围是该复合语句 即仅在该复合语句中有效 如果局部变量的定义是在一个循环语句中 那么该局部变量的有效范围是该循环语句 即仅在该循环语句中有效写一个方法和C语言中写一个函数类似 只不过在这里称做方法 6 方法重载 Overload 方法重载的意思是 一个类中可以有多个方法具有相同的名字 但这些方法的参数必须不同 即或者是参数的个数不同 或者是参数的类型不同 classArea floatgetArea floatr return3 14f r r doublegetArea floatx inty returnx y floatgetArea intx floaty returnx y doublegetArea floatx floaty floatz return x x y y z z 2 0 7 构造方法 Constructor 构造方法是一种特殊方法 主要作用是在类创建对象时进行初始化 当用类创对象时 使用构造方法构造方法的名字必须与它所在的类的名字完全相同 而且没有类型 用户不能直接调用构造方法 构造方法是在用户创建对象时 由系统自动调用执行构造方法的作用是对类对象进行初始化 构造方法也可以重载 类中可以不定义构造方法 系统将为该类默认定义一个构造方法 即默认构造方法 用默认构造方法初始化对象时 系统用默认值初始化对象的数据成员 构造方法 Constructor class梯形 float上底 下底 高 梯形 梯形 floatx floaty floath 上底 x 下底 y 高 h 8 类方法和实例方法 类中的方法分为实例方法和类方法方法声明时 方法类型前面不加关键字static的是实例方法 加关键字static的是类方法 构造方法是特殊的方法 不能用static修饰构造方法 类方法可以通过类名直接引用 实例方法必须通过类的对象来引用 3 3对象 类是创建对象的模板 当使用一个类创建了一个对象时 我们也说我们给出了这个类的一个实例 1 创建对象 创建一个对象包括对象的声明和为对象分配内存两个步骤 1 对象的声明一般格式为 类的名字对象名字 如 PeoplezhangPing 2 为声明的对象分配内存使用new运算符和类的构造方法为声明的对象分配内存 如果类中没有构造方法 系统会调用默认的构造方法 默认的构造方法是无参数的 你一定还记得构造方法的名字必须和类名相同这一规定 如 zhangPing newPeople 下面举例说明对象的内存模型classXiyoujiRenwu floatheight weight Stringhead ear hand foot mouth voidspeak Strings System out println s classTest publicstaticvoidmain Stringargs XiyoujiRenwuzhubajie 声明对象zhubajie newXiyoujiRenwu 为对象分配内存 使用new运算符和默认的构造方法 2 对象的内存模型 3 声明对象时的内存模型 当用XiyoujiRenwu类声明一个变量 即对象zhubajie后 XiyoujiRenwuzhubajie 此时 变量zhubajie内存模型如左图所示 4 对象分配内存后的内存模型 当系统执行到zhubajie newXiyoujiRenwu 时 就会做两件事 为height weight head ear mouth hand foot各个变量分配内存 即XiyoujiRenwu类的成员变量被分配内存空间 然后执行构造方法中的语句 new运算符在为变量height weight head ear mouth hand foot分配内存后 将返回一个引用给对象变量zhubajie 5 使用对象 对象不仅可以操作自己的变量改变状态 而且还拥有了使用创建它的那个类中的方法的能力 对象通过使用这些方法可以产生一定的行为 通过使用运算符 对象可以实现对自己的变量访问和方法的调用 当对象调用方法时 方法中出现的成员变量就是指该对象的成员变量 6 对象的引用和实体 当用类创建一个对象时 类中的成员变量被分配内存空间 这些内存空间称做该对象的实体 而对象中存放着引用 以确保实体由该对象操作使用 一个类创建的两个对象 如果具有相同的引用 那么就具有完全相同的实体 没有实体的对象称作空对象 空对象不能使用 即不能让一个空对象去调用方法产生行为 例 3 1 3 2 3 3 3 4 对象的声明 引用 7 参数传值 当方法被调用时 如果方法有参数 参数必须要实例化 即参数变量必须有具体的值 在Java中 方法的所有参数都是 传值 的 也就是说 方法中参数变量的值是调用者指定的值的拷贝 基本类型的参数接收的实参变量的value 对象参数接收的实参对象的引用 例如 如果向方法的int型参数x传递一个int值 那么参数x得到的值是传递值的拷贝 方法如果改变参数的值 不会影响向参数 传值 的变量的值 8 基本数据类型参数的传值 对于基本数据类型的参数 向该参数传递的值的级别不可以高于该参数的级别比如 不可以向int型参数传递一个float值 但可以向double型参数传递一个float值 9 引用类型参数的传值 Java的引用型数据包括对象 数组和接口 当参数是引用类型时 传值 传递的是变量的引用而不是变量所引用的实体 如果改变参数变量所引用的实体 就会导致原变量的实体发生同样的变化 但是 改变参数的引用不会影响向其传值的变量的引用 参数传递举例例3 5 3 6 简单类型参数传递和对象参数传递 3 5null关键字 null用来标识一个不确定的对象 可以将null赋给引用类型变量 但不可以将null赋给基本类型变量 如intx null 非法Stringstr null intarr null Peoplep null 合法null本身不是对象 也不是Objcet的实例测试 nullinstanceofjava lang Object 的值为falasenull的其他作用判断一个引用类型数据是否null 用 来判断 释放内存 让一个非null的引用类型变量指向null 这样这个对象就不再被任何对象应用了 等待JVM垃圾回收机制去回收 3 6static关键字 用static修饰的成员变量称为类变量staticintx 5 用static修饰的方法称为类方法publicstaticStringcurrentDate 1 实例变量和类变量的区别 一个类通过使用new运算符可以创建多个不同的对象 不同的对象的实例变量将被分配不同的内存空间 如果类中的成员变量有类变量 那么所有的对象的这个类变量都分配给相同的一处内存 改变其中一个对象的这个类变量会影响其它对象的这个类变量 类变量是和该类创建的所有对象相关联的变量 改变其中一个对象的这个类变量就同时改变了其它对象的这个类变量 因此 类变量不仅可以通过某个对象访问也可以直接通过类名访问 实例变量仅仅是和相应的对象关联的变量 也就是说 不同对象的实例变量互不相同 即分配不同的内存空间 改变其中一个对象的实例变量不会影响其它对象的这个实例变量 实例变量可以通过对象访问 不能使用类名访问 2 实例方法和类方法的区别 实例方法可以被类创建的任何对象调用执行 类方法不仅可以被类创建的任何对象调用执行 也可以直接通过类名调用例3 7 static关键字 3 7this关键字 this是Java的一个关键字 表示某个对象 this可以出现在实例方法和构造方法中 但不可以出现在类方法中 this关键字出现在类的构造方法中时 代表使用该构造方法所创建的对象 this关键字出现在类的实例方法中时 代表正在调用该方法的当前对象 例3 8 this关键字 3 8包 Package 包是Java语言中有效地管理类的一个机制 Java通过关键字package声明包语句 package语句作为Java源文件的第一条语句 指明该源文件定义的类所在的包 package语句的一般格式为 package包名 包名可以是一个合法的标识符 也可以是若干个标识符加 分割而成 如packagecn zzuli cs 1 包语句 如果源程序中省略了package语句 源文件中你定义命名的类被隐含地认为是无名包的一部分 即源文件中定义命名的类在同一个包中 但该包没有名字 例3 9 package关键字 2 import语句 使用import语句可以引入包中的类 在编写源文件时 除了自己编写类外 我们经常需要使用Java提供的许多类 这些类可能在不同的包中 在学习Java语言时 使用已经存在的类 避免一切从头做起 这是面向对象编程的一个重要方面 例3 10 3 11 3 12 3 将自定义的类打成jar包 程序代码见例2 13打包命令编译 javac d java打包 jarcvfmyzzuli jarcn Eclpse中打包右击包名 Export Java Jarfile Next 输入 jar包名 jar Finish 3 访问权限 类创建了一个对象之后 该对象可以通过 运算符操作自己的变量 使用类中的方法 但对象操作自己的变量和使用类中的方法是有一定限制的 所谓访问权限是指对象是否可以通过 运算符操作自己的变量或通过 运算符使用类中的方法 访问限制修饰符有private protected和public 都是Java的关键字 用来修饰成员变量或方法 4 私有变量和私有方法 一个类 A 在另外一个类 B 中创建一个对象后 该对象 b 不能访问自己的私有变量和私有方法对于一个类的私有类变量 静态成员变量 那么在另外一个类中 也不能通过类名来操作这个私有类变量 例3 14 私有变量和私有方法举例 classA privateinta1 inta2 protectedinta3 publicinta4 privatevoidfa1 voidfa2 classB voidfbx Aa newA a a1 12 非法a a2 13 a a3 14 a fa1 非法a fa2 5 公有变量和公有方法 一个类在另外一个类中创建一个对象后 该对象能访问自己的public变量和public方法对于一个类的public类变量 静态成员变量 那么在另外一个类中 也能通过类名来操作这个public类变量 6 友好变量和友好方法 不用private public protected修饰符的成员变量和方法被称为友好变量和友好方法 一个类在另外一个类中创建一个对象后 如果两个类在同一包中 该对象能访问自己的友好变量和友好方法对于一个类的友好类变量 静态成员变量 如果两个类在同一包中 那么在另外一个类中 也能通过类名来操作这个友好类变量 7 受保护的成员变量和方法 一个类在另外一个类中创建一个对象后 如果两个类在同一包中 该对象能访问自己的protected变量和protected方法对于一个类的protected类变量 静态成员变量 如果两个类在同一包中 那么在另外一个类中 也能通过类名来操作这个protected类变量 在后面学习类的继承时 将讲述protected和 友好 之间在继承方面的区别 8 public类和友好类 类声明时 如果关键词class前面加上public关键字 就称这样的类是一个public类 可以在任何另外一个类中使用public类创建的对象 类声明时 如果关键词class前面 没有任何关键词修饰 就称这样的类是一个友好类 那么 另外一个类中使用友好类创建的对象时 要保证它们是在同一个包中 注1 不能用protected和private修饰类 内部类除外 注2 访问权限的级别从高到低依次为 public protected 友好的 private 3 9类的继承 继承是一种由已有的类创建新类的机制 利用继承 可以先创建一个公有属性的一般类 根据该一般类再创建具有特殊属性的新类 新类继承一般类的状态和行为 并根据需要增加它自己的新的状态和行为 由继承而得到的类称为子类 被继承的类称为父类 超类 Java不支持多重继承 子类只能有一个父类 1 子类 在类的声明中 通过使用关键字extends来创建一个类的子类 格式如下 class子类名extends父类名 例如 classStudentsextendsPeople 2 子类的继承性 类有可以有两种重要的成员 成员变量和方法 子类的成员中有一部分是子类自己声明定义的 另一部分是从它的父类继承的 所谓子类继承父类的成员变量作为自己的一个成员变量 就好象它们是在子类中直接声明一样 可以被子类中自己声明的任何实例方法操作 所谓子类继承父类的方法作为子类中的一个方法 就象它们是在子类中直接声明一样 可以被子类中自己声明的任何实例方法调用 3 子类和父类在同一包中的继承性 如果子类和父类在同一个包中 那么 子类自然地继承了其父类中不是private的成员变量作为自己的成员变量 并且也自然地继承了父类中不是private的方法作为自己的方法 继承的成员或方法的访问权限保持不变 例3 15 4 子类和父类不在同一包中的继承性 如果子类和父类不在同一个包中 那么 子类继承了父类的protected public成员变量做为子类的成员变量 并且继承了父类的protected public方法为子类的方法 继承的成员或方法的访问权限保持不变 如果子类和父类不在同一个包里 子类不能继承父类的友好变量和友好方法 5 成员变量的隐藏和方法的重写 子类也可以隐藏继承的成员变量 对于子类可以从父类继承的成员变量 只要子类中定义的成员变量和父类中的成员变量同名时 子类就隐藏了继承的成员变量 子类通过方法的重写可以隐藏继承的方法 方法重写是指 子类中定义一个方法 并且这个方法的名字 返回类型 参数个数和类型与从父类继承的方法完全相同 对于子类创建的一个对象 如果子类重写了父类的方法 则运行时系统调用子类重写的方法 如果子类继承了父类的方法 未重写 那么子类创建的对象也可以调用这个方法 只不过方法产生的行为和父类的相同而已 例3 16 3 17 6 final关键字 final关键子可以修饰类 成员变量和方法中的参数 final类不能被继承 即不能有子类 如果一个方法被修饰为final方法 则这个方法不能被重写如果一个成员变量被修饰为final的 就是常量 常量必须赋给初值 而且不能再发生变化 如果方法的参数被修饰为final的 该参数的值不能被改变例3 18 7 对象的上转型对象 假设B类是A类子类或间接子类 当我们用子类B创建一个对象 并把这个对象的引用放到A类的对象中时 Aa Bb newB a b 称这个A类对象 a 是子类对象b的上转型对象 对象的上转型对象的实体是子类负责创建的 但上转型对象会失去原子类对象的一些属性和功能 上转对象不能操作子类新增的成员变量 失掉了这部分属性 不能使用子类新增的方法 失掉了一些功能 上转型对象可以操作子类继承或隐藏成员变量 也可以使用子类继承的或重写的方法 上转型对象操作子类继承或重写的方法时 就是通知对应的子类对象去调用这些方法 因此 如果子类重写了父类的某个方法后 对象的上转型对象调用这个方法时 一定是调用了这个重写的方法 可以将对象的上转型对象再强制转换到一个子类对象 这时 该子类对象又具备了子类所有属性和功能 例3 19 对象的上转型对象 3 11多态性 多态性就是指父类的某个方法被其子类重写时 可以各自产生自己的功能行为 当一个类有很多子类时 并且这些子类都重写了父类中的某个方法 那么当我们把子类创建的对象的引用放到一个父类的对象中时 就得到了该对象的一个上转型对象 那么这个上转的对象在调用这个方法时就可能具有多种形态 例3 20 用多态性实现不同动物的叫声 1 abstract类和abstract方法 用关键字abstract修饰的类称为abstract类 抽象类 abstractclassA 2 abstract类的特点 和普通的类相比 abstract类可以有abstract方法 对于abstract方法 只允许声明 不允许实现 而且不允许使用final修饰abstract方法 abstractclassA abstractintmin intx inty 抽象方法intmax intx inty 普通方法returnx y x y 对于abstract类 我们不能使用new运算符创建该类的对象 需产生其子类 由子类创建对象 如果一个类是abstract类的子类 它必须具体实现父类的abstract方法 这就是为什么不允许使用final修饰abstract方法的原因 一个abstract类只关心它的子类是否具有某种功能 并不关心功能的具体行为 功能的具体行为由子类负责实现 抽象类中的抽象方法可以强制子类必须给出这些方法的具体实现 例2 21 2 22 3 abstract类不能用new运算创建对象 3 12super关键字 子类不继承父类的构造方法 因此 子类如果想使用父类的构造方法 必须在子类的构造方法中使用 并且必须使用关键字super来表示 而且super必须是子类构造方法中的头一条语句 如果我们在子类中想使用被子类隐藏了的父类的成员变量或方法就可以使用关键字super 比如 super x super play 就是被子类隐藏的父类的成员变量x和方法play 例2 23 2 24 3 13接口 interface Java不支持多继承性 即一个类只能有一个父类 单继承性使得Java简单 易于管理程序 为了克服单继承的缺点 Java使用了接口 一个类可以实现多个接口 1 接口的声明与使用 使用关键字interface来定义一个接口 接口的定义和类的定义很相似 分为接口的声明和接口体 接口体中包含常量定义和方法定义两部分 接口体中只进行方法的声明 不许提供方法的实现 所以 方法的定义没有方法体 且用分号 结尾 如 interfacePrintable finalintMAX 100 voidadd floatsum floatx floaty 2 接口的使用 一个类通过使用关键字implements声明自己使用一个或多个接口 如果使用多个接口 用逗号隔开接口名 如 classAimplementsPrintable Addable如果一个类使用了某个接口 那么这个类必须实现该接口的所有方法 即为这些方法提供方法体 特别注意 接口中的方法默认的是publicabstract方法 所以其实现类给出的方法体一定要用public来修饰 而且接口中的常量默认是publicstatic常量 3 理解接口 接口的思想在于它可以增加很多类都需要实现的功能 使用相同的接口类不一定有继承关系 同一个类也可以实现多个接口 接口只关心功能 并不关心功能的具体实现 例3 25 3 26 4 接口回调 接口回调是指 可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中 那么该接口变量就可以调用被类实现的接口中的方法 实际上 当接口变量调用被类实现的接口中的方法时 就是通知相应的对象调用接口的方法 例3 27 3 28 5 接口做参数 一个方法的参数是接口类型 就可以将任何实现该接口的类的实例的引用传递给该接口参数 接口参数就可以回调类实现的接口方法 例3 29 3 14内部类 Java支持在一个类中声明另一个类 这样的类称作内部类 而包含内部类的类成为内部类的外嵌类 内部类的类体中不可以声明类变量和类方法 外嵌类的类体中可以用内部类声明对象 作为外嵌类的成员 例3 30 3 15匿名类 和类有关的匿名类当使用类创建对象时 程序允许我们把类体与对象的创建组合在一起 也就是说 类创建对象时 除了构造方法还有类体 此类体被认为是该类的一个子类去掉类声明后的类体 称作匿名类 和接口有关的匿名类Java允许直接用接口名和一个类体创建一个匿名对象 此类体被认为是实现了接口的类去掉类声明后的类体 称作匿名类 例3 31 3 16异常类 程序运行出现异常时 Java运行环境就用异常类Exception的相应子类创建一个异常对象 并等待处理 例如 读取一个不存在的文件时 运行环境就用异常类IOException创建一个对象 异常对象可以调用如下方法得到或输出有关异常的信息 publicStringgetMessage publicvoidprintStackTrace publicStringtoString 使用try catch finally语句来处理异常 将可能出现的异常操作放在try catch语句的try部分 当try部分中的某个语句发生异常后 try部分将立刻结束执行 而转向执行相应的catch部分 所以程序可以将发生异常后的处理放在catch部分 finally部分放的是无论是否出现异常都要执行的语句 try catch语句可以由几个catch组成 分别处理发生的相应异常 1 异常处理 try catch语句的格式如下 try 包含可能发生异常的语句 catch ExceptionSubClass1e 异常处理语句1 catch ExceptionSubClass2e 异常处理语句2 finally 无论异常发生与否都要执行的语句 例3 33 2 try catch finally语句格式 用户自定义的所有异常类都必须是Exception的子类publicclassMyExceptionextendsException 一个方法在声明是可以使用throws关键字声明要产生的异常 并在该方法体中给出产生异常的操作在程序中发现异常情况时 可以抛出 throw 一个异常实例 将其放到异常队列中去 并激活Java的异常处理机制 如 thrownewMyException 例3 34 3 自定义异常类 3 18Class类 Class是java lang包中的类 该类的实例用来封装对象运行时的状态 当一个类被加载且创建对象时 和该类相关的一个类型为Calss的对象就会自动创建 Class类本身不提供构造方法 因此 不能使用new运算符和构造方法显示地创建一个Class对象 1 Class类的使用 任何对象调用getClass 方法都可以获取和该对象相关的一个Class对象 这个Class对象调用如下的方法可以获取创建对象的类的有关信息 StringgetName 获取类名 Field getDeclaredFields 获取成员变量 Method getDeclaredMethods 获取成员方法 Constructor getDeclaredConstructors 获取构造函数例3 35 2 使用Class实例化一个对象 创建对象最常用的方式就是使用new运算符和类的构造方法 实际上也可以使用Class对象得到一个类的实例 为了得到一个类的对象 可以先得到一个和该类相关的Class对象 只要使用Class的类方法publicstaticClassforName StringclassName throwsClassNotFoundException就可以返回一个和参数className指定的类相关的Class对象 再让这个Class对象调用publicObjectnewInstance throwsInstantiationException IllegalAccessException方法就可以得到一个className类的对象 例3 36 3 19基本类型的类包装 Java的基本数据类型包括 byte int short long float double char Java同时也提供了基本数据类型相关的类 实现了对基本数据类型的封装 这些类在java lang包中 分别是 Byte Integer Short Long Float Double和Character类 例3 37 3 20反编译和文档生成器 使用JDK提供的反编译器 javap exe可以将字节码反编译为源码 查看源码类中的方法名字和成员变量的名字用法 javapclassFileName说明 类名 className 不要加后缀 class例如 javapHelloWorld使用JDK提供的javadoc exe可以制做源文件类结构的html格式文档 用法 javadocjavaFilePath说明 java文件路径 javaFilePath 包含其所在的完整路径例如 javadocHelloWorld java 反编译和文档生成器举例 packagezzuli cs 这是一个用于测试javadoc的java文件 author朱老师 JavaDocTest java publicclassJavaDocTest 本方法用于计算两个数的和 parama被加数 paramb加数 return总和 publicintadd inta intb returna b 本方法用于计算两个数的差 parama被减数 paramb减数 return差值 publicintminus inta intb returna b 主程序 用于测试数字到字符串之间的转换 paramargs接收从键盘输入的数据 publicstaticvoidmain Stringargs Stringx String valueOf 123 456e2 System out println x x 先将文件左边文件创建到到C盘根目录下 执行如下命令 编译 C javac d JavaDocTest java运行 C javazzuli cs JavaDocTest反编译 1 用javap命令C javapzzuli cs JavaDocTest 2 用专门反编译工具如jd gui exe生成文档 C javadocJavaDocTest java 3 20创建能够在windwos下直接运行的java程序 编译java源程序将生成的java类和指明了主类的清单文件打成jar包例3 38 作业 P104 4 4 4 6
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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