《java基础培训资料(共81张).pptx》由会员分享,可在线阅读,更多相关《java基础培训资料(共81张).pptx(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、IBM Software GroupJava2 SE讲解IBM Software Group Java基础1、语法基础2、面向对象3、JDBC 4、异常课程内容课程内容IBM Software Group3OOP&Java Base面向对象编程(Object Oriented Programming,OOP,面向对象程序设计) IBM Software Group4Java学习路线学习路线Java SE应用程序设计:面向对象(类,继承,接口,多态,抽象与封装) 异常处理,I/O编程,集合框架,GUI程序设计,多线程编程数据库的学习:可以学习Oracle数据库安装配置、基本管理及开发,使用OEM
2、/SQL Plus,标准SQL,DML,DDL,函数,事务,约束,序列,索引,视图,数据库设计,MySql,SQL Server的基本使用。Java Web应用开发:JDBC,JSP,Servlet,JavaBean,HTML,JavaScript,Session/cookie,MVC设计模式,Tomcat,Eclipse+MyEclipse. Java企业级应用开发:Struts,Hibernate,XML,J2EE/EJB,UML,Spring,AJAXIBM Software Group5Java 语言的发展历史Java 已经成为当今最为流行的软件开发语言技术之一。IBM Softwar
3、e Group6Java的平台无关性Java是一种既面向对象又可以跨平台的语言,即:编写一次,随处运行(Write once, Run anywhere);Java不仅适用于单机应用程序和基于网络的程序,也可用于创建消费类设备的附件程序,如移动电话、掌上设备等。Java源程序代码WindowsLinuxSolarisJVMJava虚拟机Java字节码(可跨平台)编译运行IBM Software Group7Java虚拟机Java虚拟机(Java Virtual Machine)是可运行Java字节码的虚拟计算机系统;使用Java语言编写的程序,实际上是运行在JVM之上,而不是运行在操作系统上;
4、它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。用户USER字节码程序JVM (Java 虚拟机)操作系统硬 件IBM Software Group8Java虚拟机的运行过程JIT代码生成器.java源代码文件.class字节码文件编译时运行时硬件类加载器字节码校验器解释器IBM Software GroupJava发展史 95年sun发布jdk1.0 98年jdk1.2 后续jdk1.3、1.4、1.5 目前jdk1.6、1.7 现在SUN已推出 Java 2 Platform Micro Edition (Java 2 ME) Java 2 Platform Stan
5、dard Edition (Java 2 SE) Java 2 Platform Enterprise Edition (Java 2 EE)IBM Software GroupJDK目录 src.zip:核心API所有类的源文件 bin :包含编译器,解释器等可执行文件 Demo:包含源代码的程序示例 include:用于本地方法的文件 jre:Java运行环境 lib:Java类库IBM Software GroupJava开发环境的下载、安装、配置开发环境的下载、安装、配置 下载:http:/ 安装(windows环境下) 配置环境变量:path 验证:Java versionJavac
6、 编译源文件Java 执行文件编写第一个Java文件:HelloWorld.javaIBM Software Group第一个第一个Java Application应用程序应用程序 打开记事本,新建一个文本文件,将文件名改为Hello.java,在文件中键入如下内容并保存:public class Hello public static void main(String args) System.out.println(Hello world!); IBM Software GroupJava源程序扩展名为扩展名为.java的源文件的源文件使用记事本使用记事本进行编辑进行编辑IBM Softw
7、are Group使用javac编译器编译源文件接下来需要将源程序进行编译;进入命令提示行,切换到源文件所在的目录,执行javac命令,使用javac编译器编译源文件;javac命令的格式是:javac 完整的源文件名切换到源文件所在的目录切换到源文件所在的目录使用使用javac命令编译源文件命令编译源文件光标闪烁表示语法无误,光标闪烁表示语法无误,顺利通过编译顺利通过编译IBM Software Group.class(字节码)文件 顺利通过编译后将生成一个扩展名为.class的字节码文件(类描述文件)。扩展名为扩展名为.java的源文件的源文件通过编译后通过编译后生成的扩展名生成的扩展名为
8、为.class的的字节码文件字节码文件IBM Software Group使用java解释器运行字节码文件进入命令提示行,在字节码文件所在的目录下,执行java命令,使用java解释器运行字节码文件;java命令的格式是:java 类名称请注意:这里只需要类名称,而不是带扩展名的文件名。执行执行java命令运行字节码文件命令运行字节码文件程序运行效果程序运行效果IBM Software Group分析程序 关键字class用来定义一个类,Hello是类的名称; 在Java程序中,所有的语句都必须放在某个类中; 整个类及其所有成员都包含在一对花括号中(即和之间),它们标志着类定义块的开始和结束。
9、 定义类的一般语法:class 类名IBM Software Group分析程序3-2 程序必须从main函数开始执行; 关键字public是访问修饰符,用来控制类成员的可见范围及作用域; 关键字static允许在不创建类的实例的情况下,调用main函数; 关键字void用来说明main函数是没有返回值的; args是字符串数组,用来从命令行接收参数; main函数的一般形式如下:public static void main(String args)IBM Software Group分析程序 String是字符串类型的数组; 在Java中,类名称一般首字母大写; 使用System.out.
10、println()将信息输出到控制台上,即打印出来。IBM Software Group 常用Java 命令 编译一个编译一个java源文件源文件 $javac 运行运行java可运行文件可运行文件 $java -options class args. 生成生成java注释文档注释文档 $javadoc options packagenames sourcefiles files例:javadoc -d D:javados -sourcepath D:java abstractMoreType.java javadoc -d c:doc -sourcepath c:src -subpackag
11、es com.liigo(递归所有com.liigo子包里的java文件) 生成一个生成一个jar包 $ jar ctxuvfm0Mi jar-file manifest-file -C directory files .例:例:jar -cvf aa.jar -C news . (把把news文件夹里的文件整个打包文件夹里的文件整个打包)IBM Software GroupJ2SE基础语法基础语法 标识符 数据类型 数据类型的转换(主讲四类八种) 运算符 条件语句、循环语句:if/for/while/dowhile()/break-continue/switchIBM Software Gr
12、oup标识符命名规范 Java语言中,为各种变量、方法和类等起的名字称为标识(identifier)。 Java标识符的命名规则:应以字母、下下线(_)、美元符($) ,数字组成,但不能以数字开头.Java标识符大小写敏感,长度无限制 不能与关键字同名IBM Software GroupJava的基础类型及常量的基础类型及常量 Java的八种基础类型:整型:byte、short、int(默认)、long字符型:char浮点型:float、double (默认)布尔型:boolean(一般用于程序的流程控制)注:Java采用Unicode编码(全球语言统一编码),每个字符占两个字节,因此一个Ch
13、ar类型的变量可以存放一个汉字(一个汉字占两个字节)IBM Software GroupJava的基础类型及常量的基础类型及常量 长度 表示范围byte 1字节,8位 -2727-1short 2字节,16位 -215215-1int 4字节,32位 -231231-1long 8字节,64位 -263263-1float 4字节,32位 大约为+/- 3.403E38double 8字节 64位 大约+/-1.798E308IBM Software Group基本数据类型转换boolean类型不可转换为其他类型。整型,字符型,浮点型的数据在混合运算中相互转换遵循如下原则:容量小的类型自动转换
14、为容量大的,数据类型按容量大小排序如下:byte、short、char-int-long-float-doublebypt、short、char三者之间不互相转换,三者参与运算时先转换为int类型容量大的在转换为容量小的时候要加强制转换符,但可能造成精度降低或溢出浮点型常量默认值为double类型,整型常量默认值为int类型成员变量、局部变量、变量作用域在Java中,变量一旦声明,就应对其进行初始化TestConvert.javaIBM Software Group基本数据类型转换 int i = 1,j; float f1 = 0.1; float f2 = 123; long l1 = 1
15、2345678; long l2 = 8888888888; double d1 = 2e20,d2 = 20; byte b1 = 1,b2 = 2, b3 = 129; j = j + 10; i = i / 10; i = i * 0.1; byte b = b1 - b2; float f3 = f1 + f2; float f4 = f1 + f2 * 0.1; double d = d1 * i + j; float f = (float)(d1 * 5 + d2);IBM Software GroupJava数据类型下分图数据类型基本数据类型引用数据类型类:class接口:int
16、erface浮点型:float、double整型:byte、short、int、long布尔型:boolean字符型:char数值型数组IBM Software Group运算符:operator Java语言支持的运算符:语言支持的运算符:算术运算符:算术运算符:+,-,*,/,%,+,-关系运算符:关系运算符:,=,基本不用基本不用赋值运算符:赋值运算符:=扩展赋值运算符:扩展赋值运算符:+=,-=,*=,/=字符串连接运算符:字符串连接运算符:+ 注:+(-)在前时先计算后取值在后时先取值后计算int x = 2;System.out.println(1 + +x + 2 + x); ?
17、x = 2;System.out.println(1 + x+ + 2 + x); ?IBM Software Group逻辑运算符逻辑运算符逻辑运算符:逻辑运算符:【! 逻辑非逻辑非】【】【& 逻辑与逻辑与】【】【| 逻辑或逻辑或】【】【 逻辑异与逻辑异与】【】【& 短路与短路与】【】【| 短路或短路或】ab!aa&ba|baba&ba|btruetruefalsetruetruefalsetruetruetruefalsefalsefalsetruetruefalseTruefalsetruetruefalsetruetruefalsetruefalsefalsetruefalsefals
18、efalsefalsefalsepublic static void main(String args)boolean a = true, b = false, c;c = !a;System.out.println(c);c = ab;System.out.println(c);c = a|b;System.out.println(c);c = a&b;System.out.println(c);c = a|b;System.out.println(c);c = a&b;System.out.println(c);”“逻辑异与:相同就为逻辑异与:相同就为false,不同则为,不同则为true
19、|和和|区别?区别?&和和&区别?区别?IBM Software Group字符串连接符字符串连接符“+”除用于加法运算外,还可以用于字符串的连接除用于加法运算外,还可以用于字符串的连接int i = 55 + 21;String s = “wang” + “hz”;“+”运算符两侧的操作数只要有一个字符串(运算符两侧的操作数只要有一个字符串(String)类型,系)类型,系统就会自动将另一个操作数转换为字符串类型,然后连接:统就会自动将另一个操作数转换为字符串类型,然后连接:int i = 12;System.out.println(“wanghz” + i); 输出结果:输出结果:wang
20、hz12String s1 = 10+2+”qing”String s2 = “qing”+ 10+2 s1和和s2的输出结果会是什么?的输出结果会是什么?注:System.out.println(value);中的value无论是何类型,都会先转为字符型,然后打印IBM Software Groupif条件语句条件语句条件语句格式:条件语句格式: if if else if else if if else if else if else只有一句要执行的语句时只有一句要执行的语句时 可以省略可以省略但是建议不要去但是建议不要去 if(表达式表达式1) 语句块语句块1 else if(表达式表达
21、式2) 语句块语句块2 else 语句块语句块3 表达式语句块falsetrueTestIf.javaIBM Software Group循环控制语句循环控制语句For循环控制语句格式:循环控制语句格式: for(表达式表达式1;boolean类型的表达式类型的表达式2;表达式表达式3) 语句块语句块 注:注:continue和和break区别?区别?表达式1表达式2语句块true表达式3falseTestFor.java课堂练习课堂练习编写程序,用以个for循环计算1!+2!+3!+ +10!的值,并打印出计算结果。OddSum.javaIBM Software Groupwhile与do-
22、whileWhile格式:格式: while(表达式表达式) 语句块语句块 do-while格式:格式: do 语句块语句块 while(表达式表达式);表达式true语句块false语句块表达式truefalse两者区别?两者区别?WhileTest.javaIBM Software Group循环语句举例/输出1100内前5个能被3整除的数public class Test public static void main(String args) int num = 0,i = 1; while(i=100) if (i%3=0) System.out.print(i+ ); num+;
23、if (num=5) break; i+; /输出输出101200内的质数内的质数public class Test public static void main(String args) for(int i=101;i200;i+=2) boolean f = true; for (int j=2;ji;j+) if (i%j=0) f = false; break; if (!f) continue; System.out.print(i+ ); IBM Software GroupSwitch条件控制条件控制Switch 格式:格式: switch(表达式表达式) case 表达式表达
24、式1: 语句块语句块1 break; case 表达式表达式2: 语句块语句块2 break; default :(可有可无可有可无) 语句块语句块3 break; 小心case穿透,推荐使用break语句多个case可以合并到一起default可以省略,但不推荐省略注:表达式必须是int类型的(byte,short,char,int),break语句穿透问题SwitchTest.javaIBM Software Group方法Java中的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:修饰符1 修饰符2 . 返回值类型 方法名(形式参数列表) Java 语句 Sampl
25、e: public String getName(String name) return “name = ” + name; 形式参数: 在方法被调用时,用于接收外界输入的数据。实参: 调用方法时,实际传给方法的数据。返回值: 方法在执行完毕后返还给调用它的环境的数据。返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void Java语言中使用下述形式调用方法:对象名.方法名(实参列表)实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配return语句终止方法的运行,并指定要返回的数据返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void
26、 TestFuncation.javaIBM Software Group基本语法总结 标识符 数据类型 数据类型的转换(主讲四类八种) 运算符 条件语句、循环语句:if/for/while/dowhile()/break-continue/switchIBM Software Group面向对象 类与对象类与对象 对象在内存中的解析对象在内存中的解析 方法的重载(方法的重载(overload) 关键字:关键字:this、static、以及他们与类之间的、以及他们与类之间的关系关系 package和和import语句语句 继承继承 访问控制符访问控制符 多态多态IBM Software Gro
27、up类与对象类与对象 类:具有相同属性和功能的一类事物(属性和方法的集合)。 抽象:对具有相同属性和方法的一类事物的描述过程就叫抽象,抽象的结果就是类。 对象:类的一个实例,对象是组成类的元素。IBM Software Group类的定义类定义的格式:类定义的格式: 修饰符 class 类名 类体代码 类的定义主要有两部分组成:成员变量和方法/用class关键字定义类,例如: class Person /成员变量定义 private int id=1; private int age = 20; /定义方法 public int getId() return id; public int ge
28、tAge() return age; public void setAge(int i) age = i; IBM Software Group对象的创建Java语言中除基本数据类型之外的变量类型都称之为引用类型。 Java中的对象是通过引用对其操作的。例如:/声明了一个Person类型的变量,但并没/有使它指向一个对象。Person p;/使用new语句创建了一个Person类型的对象,并用p指向它,以后可以通过p完成对它的操作。 p = new Person();p=nullstackheapPerson p;p = new Person();pid:1age:20IBM Software
29、 Group方法的调用 class Person /成员变量定义 private int id; private int age = 20; /定义方法 public int getId() return id; public int getAge() return age; public void setAge(int i) age = i; public class Test public static void main(String args) Person p = new Person(); p.setAge(34); int age = p.getAge(); System.out
30、.println(age); 使用 对象引用.方法名(参数列表)来调用对象的方法。IBM Software Group封装性 类的封装性:即不能让外面的类随意修改一个类的成员变量在定义一个类的成员(包括变量和方法),使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调用; 为实现封装性,常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有 读取和赋值操作,我们一般定义两个方法来实现这两种操作,即:getXxx()与setXxx(); 一个类就是一个模块,我们应该让模块仅仅公开必须要
31、让外界知道的内容,而隐藏其他的一切内容。再进行程序设计时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求强内聚(许多功能尽量在类的内部独立完成,不让外面干预),弱耦合(提供给外部尽量少的方法调用)。IBM Software Group构造方法类内部一种特殊的方法,创建对象时所调用的方法。使用 new +构造方法名 创建一个新的对象。构造方法是定义在java类中的一个用来初始化对象的方法。构造方法没有返回值类型,它与其他的方法在此处不同构造方法的方法名与类名完全相同class Person /成员变量定义 int id; int age = 20; Person (int i,i
32、nt n) id = i; age = n; IBM Software Group构造方法创建对象时,使用构造方法初始化对象的成员变量。 public class Test public static void main(String args) /创建对象 Person tom = new Person(1,25); Person jack = new Person(2,20); tomstackjack125220heapIBM Software Group构造方法每个类都至少有一个构造方法,如果我们没有显示的声明,JVM会在加载该类时为其添加一个public的无参的构造方法: 类名()
33、例如:class Point int x; int y; .main Point p = new Point();IBM Software Group课堂练习定义一个点(point)类用来表示三维空间中的点(有三个坐标) 。要求如下: 1. 可以生成具有特定坐标的点对象 2. 提供可以设置三个坐标的方法 3. 提供可以计算该”点”到原点距离平方的方法 4. 编写程序验证上面三点TestPoint.javaIBM Software Group方法的重载方法的重载方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。调用
34、时会根据不同的参数表选择对应的方法。调用时会根据不同的参数表选择对应的方法。判断方法重载的依据:判断方法重载的依据:1、在同一个类内、在同一个类内2、方法名相同、方法名相同3、参数的类型不同,或者参数的个数不同,或者参数的排列顺序不同、参数的类型不同,或者参数的个数不同,或者参数的排列顺序不同4、方法的返回值的不同不能作为判断方法重载的依据,仅仅是返回值的不方法的返回值的不同不能作为判断方法重载的依据,仅仅是返回值的不同,就造成了方法的重名,会报错同,就造成了方法的重名,会报错。TestOverLoad.javaIBM Software Group构造方法的重载构造方法的重载与普通方法一样,构
35、造方法也可以重载例如: Person类的构造方法class Person int id; int age; public Person() id = 1;age = 20 public Person(int m) id = m;age= 20; public Person(int m,int n) id = m;age= n; 课堂练习:课堂练习:利用Person类,编写程序, 分别用三种构造方法创建三个Person对象,如下图所示:p1p2p3120220536IBM Software Group关键字关键字this在类的方法中使用。在类的方法中使用。This:当前对象的一个引用,指向它自己
36、,在类的内部使用。当前对象的一个引用,指向它自己,在类的内部使用。有时使用有时使用this可以处理方法中成员变量和参数重名的情况。可以处理方法中成员变量和参数重名的情况。 TestThis.javathisheapIBM Software Group关键字关键字static 在类中,用在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,第一次使用时被初始化,对于该类的所有对象来说, static成员变量该变量只成员变量该变量只有一份,保存在内存的有一份,保存在内存的data
37、segment中。中。用用static声明的方法,表示该方法为静态方法,在调用方法时,不会将对象的声明的方法,表示该方法为静态方法,在调用方法时,不会将对象的引用传递给它,所以在引用传递给它,所以在static方法中,不能直接调用非静态的成员变量或非静方法中,不能直接调用非静态的成员变量或非静态的方法。可以直接通过类名态的方法。可以直接通过类名.静态方法名调用。静态方法名调用。可以通过对象、引用或类名可以通过对象、引用或类名(不需要实例化不需要实例化)访问静态成员。访问静态成员。TestStatic.javaTestFuncation.javaIBM Software Grouppackage
38、和import语句为便于管理大型软件系统中数目众多的类,解决类的命为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,名冲突问题,java引入包引入包(package)机制。机制。package语句作为java源文件的第一条语句,指定该文件源文件的第一条语句,指定该文件中定义的类所在的包。中定义的类所在的包。它的格式为:它的格式为: package pkg1.pkg2.pkg3;Java编译器把包对应于文件系统的目录管理,编译器把包对应于文件系统的目录管理, package语句中,用.来指明包的层次,例如使用语句: package com.test; 则该文件中所有的类位于. comt
39、est 目录下TestPackage.javaIBM Software Group继承子类通过继承获得基类的所有属性(包括私有的)及方法。在子类通过继承获得基类的所有属性(包括私有的)及方法。在创建子类对象时,可以通过子类对象调用基类的方法和访问除创建子类对象时,可以通过子类对象调用基类的方法和访问除去私有的一切成员变量。去私有的一切成员变量。继承提高了代码的复用性。继承提高了代码的复用性。子类可以扩展基类的方法及属性。子类可以扩展基类的方法及属性。子类对象的创建伴随着父类对象的创建子类对象的创建伴随着父类对象的创建TestExtends.java(内存分析内存分析)ageageAnimalc
40、olorCatIBM Software Group访问权限控制访问控制本类同一包中的类其他包中子类其他包中的类publicprotected缺省privateu Java权限修饰符public、private、protected置于类的成员定义前,用来限定其它对象对该类对象成员的访问权限。u 对于class的权限修饰只可以用public和default。 public类可以在任何地方被访问。 default类只可以被同一个包内的类访问。 TestAccess.javaIBM Software Group继承中的权限控制class Parent private int n_private = 1
41、; int n_default = 2; protected int n_protected = 3; public int n_public = 4;class Child extends Parent public void f() n_private = 10; /error n_default = 20; n_protected = 30; n_public = 40; IBM Software Group课堂练习 编写一个Computer 类,提供加(add)、减(reduce)、乘(sheng)、除(div)方法。SubComputer类,继承Computer 类,提供取余(mod
42、)、求平方(square)、立方(cube)方法。TestComputer.javaIBM Software Group方法的重写 在子类中可以根据需要对从基类中继承来的方法进行重写。 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。 重写方法的访问权限不能比被重写方法的低。TestOverride.javaIBM Software Groupsuper关键字在子类中可以使用super关键字来引用基类的成分,例如:class FatherClass public int value; public void f() value = 100; System.out.println(
43、“FatherClass.value=” +value ); class ChildClass extends FatherClass public int value; public void f() super.f(); / 这里的super可以省略吗? value = 200; System.out.println(“ChildClass.value=” +value ); System.out.println(“super.value=” +super.value ); .main. ChildClass cc = new ChildClass(); s.f();IBM Softwar
44、e Groupthissupervalue:200value:100ccIBM Software Groupsuper关键字class Person public static void prt(String s) System.out.println(s); Person() prt(A Person.); Person(String name) prt(A person name is:+name); public class Chinese extends Person Chinese() super(); /调用父类构造函数(1),必须写在第一行 prt(A chinese.); Ch
45、inese(String name) super(name);/调用父类具有相同形参的构造函数(2) prt(his name is:+name); Chinese(String name,int age) this(name);/调用当前具有相同形参的构造函数(3) prt(his age is:+age); public static void main(String args) Chinese cn=new Chinese(); cn=new Chinese(kevin); cn=new Chinese(kevin,22); IBM Software Group课堂练习 创建一个仅有一个
46、非缺省构造器的基类,并创建一个带有缺省构造器和非缺省构造器的导出类。在导出类的构造器中调用基类的构造器。 IBM Software Group关键字final final修饰类,表示该类是不能被继承的; final修饰成员变量,表示该变量为常量,值不可以被修改,变量名一般采用大写字母,字母之间通过下下线连接; final修饰方法,表示该方法不能被重写,但是可以使用 一般final和static一起用,当类被多次创建时,只创建一次变量,可以节约内存。IBM Software Groupclass Animal public String name; Animal(String name) thi
47、s.name = name; class Cat extends Animal public String eyesColor; Cat(String n,String c) super(n); this.eyesColor = c; class Dog extends Animal public String furColor; Dog(String n,String c) super(n); this.furColor = c; 多态IBM Software Grouppublic class Testpublic static void main(String args) Test te
48、st = new Test();Animal a = new Animal(name);Cat c = new Cat(catName,blue);Dog d = new Dog(dogName,black);test.f(a);test.f(c);test.f(d); public void f(Animal a)System.out.println(name: +a.name);if (a instanceof Cat) Cat cat = (Cat)a;System.out.println( +cat.eyesColor+ eyes);else if (a instanceof Dog)
49、 Dog dog = (Dog)a;System.out.println( +dog.furColor+ fur);多态IBM Software Group多态TestPolymoph/Test.java多态是指在执行期间(而非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。上面例子中,根据Lady对象的成员变量Pet所引用的不同的实际类型而调用相应的enjoy方法。class Bird extends Animalprivate String featherColor;Bird(String n,String f) super(n); this.featherColor
50、= f; public void enjoy()System.out.println(鸟叫声.);public class Test public static void main(String args) Bird b = new Bird(“birdname”,”green”); Lady l3 = new Lady(l3,b); l3.myPetEnjoy(); 1.要有继承2.要有重写3.父类引用指向子类对象IBM Software Group课堂练习分析上面的程序,体会“多态特性”对于系统可扩充性的重要性。 利用多态性编程,实现求三角形,正方形和圆形面积。方法:抽象出一个共享父类,定