java基础课教学第9天课件_第1页
java基础课教学第9天课件_第2页
java基础课教学第9天课件_第3页
java基础课教学第9天课件_第4页
java基础课教学第9天课件_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java 基础课第 9 天课件一、接口继承1、 一个接口,可以继承多个接口2、 用于接口的数据类型重新组合3、 示例如下二、接口中的所有方法,自动为 public abstract 1、 接口方法,前面没有默认地为 public abstract2、 示例如下publicerface IAdd add(a,b); /缺省了public abstractpublic class ImplAdd_1implements IAdd Override/通过下面的方法,说明父类的add(a,b)必须是public abstractpublicadd(a,b) return 0;publicerface

2、IAdd add(a,b); /缺省了public abstractpublicerface ISub sub(a,b);publicerface IAddSub extends IAdd,ISub publicerface IMul mul(a,b);publicerface IDiv div(a,b);publicerface IMulDiv extends IMul,IDiv /ICal有7+1(Object)=8个数据类型publicerface ICal extends IAddSub,IMulDiv,IAdd,ISub, IMul,IDiv三、关于接口中的属性1、 接口的所有属性,

3、缺省类型为public sic final 2、 示例如下四、关于强制转换原理分析public abstract class AbsAdd 。public class ImplAdd_1 extends AbsAdd 。检测/强制转换的原理分析public sic void main(String args) ImplAdd_1 obj=new ImplAdd_1(); Log.getLog().info(obj=+obj);b1=obj instanceof ImplAdd_1; Log.getLog().info(b1=+b1);b2=obj instanceof AbsAdd; Log.

4、getLog().info(b2=+b2);b3=obj instanceof Object; Log.getLog().info(b3=+b3); AbsAdd obj2=obj;check=obj2=obj; Log.getLog().info(check=+check);ImplAdd_1 obj3=(ImplAdd_1) obj2; /此时,需要强制转换/Object obj4=obj;/不需要强转 Object obj4=obj2;/不需要强转ImplAdd_1 obj5=(ImplAdd_1) obj4; /此时,需要强制转换Log.getLog().info(上面有错吗?);pu

5、blicerface IAdd num=10;/缺省了 public sic final,为常量String NAME=java基础;add(a,b); /缺省了public abstract/ public sic final String NAME=java基础; /这一行代码下面等效五、关于覆盖方法的定位1、 抽象父类2、 实现子类 13、 实现子类 2public class ImplAdd_2 extends AbsAddpublic ImplAdd_2() Log.getLog().info(this=+this);Overrideadd(a,b) Log.getLog().inf

6、o(a= + a + ,b= + b); return a + b+100;public class ImplAdd_1 extends AbsAdd/,AbsAdd2/有错,类的继承,只能继承一个父类public ImplAdd_1() super(); Log.getLog().info(this=+this);Overrideadd(a,b) Log.getLog().info(a= + a + ,b= + b); return a + b;/下面sub也是一个覆盖方法,并且作用域是不写的 Overridepublicsub(a,b) Log.getLog().info(a= + a +

7、 ,b= + b); return a - b;public abstract class AbsAdd public AbsAdd() Log.getLog().info(this=+this);abstractadd(a,b);/问题:如果这个方法是覆盖方法,这里的方法,不能运行 sub(a,b) Log.getLog().info(a=+a+,b=+b);return a-b-10;/下面sub也是一个覆盖方法,并且作用域是不写的Overridepublicsub(a,b) Log.getLog().info(a= + a + ,b= + b); return a - b-1;4、 覆盖

8、方法检测定位原理重点中重点,要精通父类数据类型 obj=new实现子类(。);1)上面等号左边决定 obj 是否有可以运行的方法或者:obj 的方法是否存在或者:obj 是否上面等号右边限运行相应的方法2)决定方法的具体执行六、关于抽象类的总结1、 定义抽象类时public abstract class 抽象类名称abstract 数据类型 抽象方法(类型 1参数 1,类型 2参数 2,类型 n 参数 n);/作用域可以是 3 个:不写、protected、public2、 实现子类,只能继承一个抽象父类3、 抽象类可以有抽象方法,也可以无4、 抽象类可以具体方法,也可以无5、 抽象可能有多实

9、现子类每个实现类,可能产了一个多态public sic void main(String args) AbsAdd obj=new ImplAdd_1();/AbsAdd obj=new ImplAdd_2();n1=obj.add(2, 3); Log.getLog().info(n1=+n1);n2=obj.sub(2, 3); Log.getLog().info(n2=+n2);public sic void main(String args) /Object obj=new ImplAdd_1();/这一句,没有意义,此时obj隐含存在 add,sub方法,只是能不使用AbsAdd o

10、bj=new ImplAdd_1();/AbsAdd obj=new ImplAdd_2();n1=obj.add(2, 3); Log.getLog().info(n1=+n1);n2=obj.sub(2, 3); Log.getLog().info(n2=+n2);七、关于 final 的总结作用于变量,方法,类1、 final,终态2、 作用于变量时,这个变量只能赋值 1 次3、 作用于方法时,这个方法不能有子类覆盖4、 作用于类时,这个类不能子类八、8 个基本类型对应的类型-byte-Bytechar-Character short-Short-eger float-Float lon

11、g-Long double-Double九、基本类型,也称原生类也可以想象基本类是一个普通类十、关于与eger1、是基本类型eger 是基本类型,对应的类型2、 他的包是java.lang.eger;如果一个类属于 java.lang 目录下,则不要 import 操作这个目录是 java 最基本的工具3、4、eger 类是一个final 类eger 类没有提供其值的方法所以赋值后,是不能修改的,如果改动后,则不是原有对象5、 可以将一个字符串转换一个eger 类型6、 可以一个十进制的数字,转换为 16 进制的字符串输出7、 示例如下package qh.基本类型对应的类型;import q

12、h.Log;/import java.lang;/这一行代码不存在public class 检测eger类型 public sic void main(String args) i1=0;eger i2=10; /等效于 i2=neweger(10);Log.getLog().info(i1=+i1+,i2=+i2); eger i3=neweger(13);Log.getLog().info(i3=+i3);/的类型赋值后,不能修改,如果修改后,则不是原有对象了/将一个字符串转换的类型String s=000123; Log.getLog().info(s.length()=+s.lengt

13、h();eger i4=egarse(s);十一、 基本类型,对应其他十二、 关于泛型的概念1、 泛的内含类型,略没有边界不确定多,许多,很多2、 java 的泛型是指同一个变量可能有多个数据类型定义时,不指明数据类型使用时,再确认数据类型十三、 关于泛型的定义方法1、 定义类时,定义一个或多个泛型类型2、 语法public class泛型 泛型 2泛型 n3、 示例如下类名称public class 定义一个泛型 Type1 test1;类型2 test2;void test(Type1 t1,类型2 t2)Log.getLog().info(i4=+i4);String s2=+i4; /

14、将整型数字转换为字符串 Log.getLog().info(s2=+s2);String s3=eger.toHexString(48); Log.getLog().info(s3=+s3);十四、 关于泛型的使用1、 定义好泛型后,可以任何需要时候使用2、 在使用一个泛型时,他的类型是确定的,明确的3、 示例如下十五、 使用泛型的作用1、 一个变量可以有多个数据类型2、 灵活,方便3、,或面试回答这个问题时,如下一个变量时可以有多个数据类型使用时,再确认其数据类型这个变量的类型可以很灵活十六、 关于 JDK 对泛型的支持情况JDK 版本,1.5.x 以上,支持泛型,2004 年以后 jdk

15、支持泛型public sic void main2(String args) 定义一个泛型 obj=new 定义一个泛型();obj.test1=123;/obj.test1=123;/有错 obj.test2=;/obj.test2=35;/有错Log.getLog().info(obj.test1=+obj.test1+,obj.test2=+obj.test2);public sic void main(String args) 定义一个泛型 obj=new 定义一个泛型(); obj.test1=123aaa;/obj.test1=123;/有错 obj.test2=12.5f;/ob

16、j.test2=35;/有错Log.getLog().info(obj.test1=+obj.test1+,obj.test2=+obj.test2);十七、 关于一个类文件中的多个类1、 一个类文件中可以写多个类等效于这每一个类,独立地编写在同一个目录下2、 但有一个要求,只能有一个类是 public 作用域3、 同一个类.java,在编绎输出目录下,生成多个.class 文件4、 示例如下public class 同一个类文件中的多个类 age=22;public sic void main(String args) 同一个类文件中的多个类 obj=new 同一个类文件中的多个类(); L

17、og.getLog().info(obj.age=+obj.age);class 类2age=23;public sic void main(String args) Log.getLog().info(test 2);class 类3age=25;public sic void main(String args) Log.getLog().info(test3);十八、 关于类1、类,inner class2、 写在一个类程序体的类,称为 inner class,类3、类,等效于一个动态方法或者:一个4、 示例如下类,与一个动态方法,处在平级别状态public class 写一个类程序体类是

18、类 add(a,b)return a+b;void test()类1 obj=new类1(); n1=obj.add(2, 3);Log.getLog().info(n1=+n1); n2=add(2, 3);Log.getLog().info(n2=+n2);class类1add(a,b)return a+b+100;public sic void main(String args) 运行时,可以选择其中的任何一个 main 运行十九、 关于类的作用1、 大量在 java 类部事件处理中2、 安卓开发3、 java 的 GUI(AWT,SWING)开发写一个类程序体类是类 obj=new 写

19、一个类程序体类是类(); n1=obj.add(3, 4);Log.getLog().info(n1=+n1);Log.getLog().info(n1=+n1); obj.test();/在外面,也可以使用类/类1 obj2=new类1(); /有错,不能直接使用类1 obj2=obj.new类1(); /OK1,通过对象,构建类的对象/类1 obj2=new 写一个类程序体类是类().new类1(); /道理与上一行代码相同n2=obj2.add(3, 6); Log.getLog().info(n2=+n2);二十、 关于异常的概念1、 异常错误 不正常2、 代码在运行过程中,出现的错误

20、,称为异常3、 示例如下public sic void main(String args) Log.getLog().info(-1);Log.getLog().info(-2);a=10; b=0;Log.getLog().info(出口); /上一行代码出现异常后,之后的代码不再运行,这就是运行异常c=a/b;二十一、关于 try/catch 用法1、 如果有可能出现异常,用 try/catch 捕获异常,让后续代码可以继续运行try:试一试 catch:捕获2、 语法try/加入可能在运行中出现错误的代码catch(Exception e) e.prStackTrace();/stack

21、:栈,表示栈内存/trace :/pr:显示,(打印)3、 示例如下public class 解决异常try_catch void test1()try n=10/0;Log.getLog().info(第1个检测方法,n=+n); catch (Exception e) e.prStackTrace();void test2()n=10/2;Log.getLog().info(第2个检测方法,n=+n);public sic void main(String args) 解决异常try_catch obj=new 解决异常try_catch(); obj.test1();Log.getLog

22、().info(方法1完成了。); obj.test2();Log.getLog().info(方法2完成了。); Log.getLog().info(main函数出口。);二十二、关于常见异常,查询 jdk 帮助文档,Exception1、 在帮助文档中,输入ex2、 Exception 类是绝大多数异常的父类可异常或者:必须要管理的异常3、 RuntimeException运行过程不可控异常或者:不可异常或者:可以不用管理的异常二十三、关于 try/catch,有多个 catch1、 一个程序段可能出现多个不同名称的异常每个不同名称的异常,可能用相应的异常捕获点进行管理2、 语法try/代

23、码段 1/代码段 2/代码段 ncatch(异常类 1e) e.prStackTrace();catch(异常类 2e) e.prStackTrace();catch(异常类 ne) e.prStackTrace();3、 示例如下public sic void main(String args) try Object obj=neweger(123);/String str=(String) obj;/n=10/0;nums=2,6; nums2=22;catch (ClassCastException e) Log.getLog().info(强制转换有错。); e.prStackTrac

24、e();catch (ArrayIndexOutOfBoundsException e) Log.getLog().info(数组越界有错。); e.prStackTrace();catch (ArithmeticException e) Log.getLog().info(数算有错。); e.prStackTrace();catch (Exception e) Log.getLog().info(前面错误没有声称负责,我来负责。); e.prStackTrace();二十四、关于 try/catch/finally 中的 finally 用法1、 finally,最后的代码宝地2、 在 tr

25、y/catch/finally 体系中无论 try 代码有错,还是无错,finally 部分都会运行 无论 try 后面有 catch,还是无 catch,finally 部分都会运行3、 示例如下public class 体会finally的用法 void test()try Object obj=neweger(123);/String str=(String) obj;/n=10/0;nums=2,6;/nums2=22;catch (ClassCastException e) Log.getLog().info(强制转换有错。); e.prStackTrace();catch (ArrayIndexOutOfBoundsException e) Log.getLog().info(数组越界有错。); e.prStackTrace();catch (ArithmeticException e) Log.getLog().info(数算有错。); e.prStackTrace();catch (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论