java教案9计算10.doc_第1页
java教案9计算10.doc_第2页
java教案9计算10.doc_第3页
java教案9计算10.doc_第4页
java教案9计算10.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

课时授课计划课次序号: 9 一、课题:变量多态及 非访问控制符、接口、嵌套类与内部类二、课型:课堂讲授三、目的要求: 学生通过该次课的学习,掌握static、final、abstract的用法:接口的定义与用法;内类的用法。四、重点、难点: 重点:掌握static、final、abstract的用法,接口的定义与用法 难点: static的用法 五、教学方法及手段: 一讲授为主,例题的编辑、编译、运行结合现场演示进行。六、参考资料:JAVA程序设计实用教程Java语言程序设计/javase/reference/api.jsp七、作业:八、授课记录:授课日期班次九、授课效果分析:变量多态和非访问控制符比较难理解,讲解时结合实例进行。特别是static的用法,通过现场绘图帮助学生理解。十、教学进程(教学内容、教学环节及时间分配等)1、复习(5分钟)2、导入课题(5分钟)3、教学内容(75分钟)l static1)静态变量类变量,被这个类所创建的对象共有多个对象实例共享一个内存区例:public class scope static int a; int b;public static void main(String args)a+;scope s1=new scope();s1.a+;s1.b+;scope s2=new scope();s2.a+;s2.b+;scope.a+;System.out.println(a=+a);System.out.println(s1.a=+s1.a);System.out.println(s2.a=+s2.a);System.out.println(s1.b=+s1.b);System.out.println(s2.b=+s2.b);2)静态方法*使用规则:a) 静态方法只能访问类变量或方法参数,不能直接访问成员变量。 b) 静态方法不能直接访问非静态方法class test static int num; int c; void tt()num=100;c=10;public static void main(String args) tt();/错误 num+; c=c*2;/错误 *作用 例:statict.javaclass card static long nextcardN; long cardN; double balance; static nextcardN=200180001; card(double b) cardN=nextcardN+; balance=b; public class statict public static void main(String args) card c1=new card(50.0); card c2=new card(100.0); System.out.println(The First card number is+c1.cardN); System.out.println(The 2nd card number is+c2.cardN); l 变量多态(继承层次结构中对象间的关系)1) 定义 类型为X的参考变量,其指向的对象类型既可以是X,也可以是X的子集。 例如:Student s1,s2;s1=new Student(651003,王五);s2=new Collegian(0810123,张三,计算机);注意:使用时通过变量访问哪些成员变量还是由变量的类型决定。例:class Student String studentNo,name; Student(String sn,String nm) studentNo=sn; name=nm; void showInfo() System.out.println(学号:+studentNo); System.out.println(姓名:+name); class Collegian extends Student String major; Collegian(String sn,String nm,String mj) super(sn,nm); major=mj; void showInfo() super.showInfo(); System.out.println(专业:+major); class sttest1 public static void main (String argsp) Student s1,s2; s1=new Student(651003,王五); s1.showInfo(); s2=new Collegian(0810123,张三,计算机); System.out.println(姓名:+); System.out.println(专业:+s2.major);/System.out.println(专业:+(Collegian)s2).major);/ 可以将多态的变量强制类型转换为指向对象的类型。 s2.showInfo(); 2)用于异类收集通过一个数组对象把不同的对象组合在一起。Student s; s=new Student2; s0=new Student(651003,王五);s1=new Collegian(0810123,张三,计算机);3)用于方法参数传递Stack类 public int search(Object o) 4)类型判断对象 instanceof 类class Student String studentNo,name; Student(String sn,String nm) studentNo=sn; name=nm; class Collegian extends Student String major; Collegian(String sn,String nm,String mj) super(sn,nm); major=mj; class sttest3 public static void main (String argsp) Student s; s=new Student2; s0=new Student(651003,王五); showInfo(s0); s1=new Collegian(0810123,张三,计算机); showInfo(s1); static void showInfo(Student s) System.out.println(学号:+s.studentNo); System.out.println(姓名:+); if (s instanceof Collegian) System.out.println(专业:+(Collegian)s).major); 5)参考类型转换规则子类向父类的转换可以自动进行,而父类向子类的转换则需要指明,且看是否能转换。class a int a1;class b extends a int b1;程序段一:class c public static void main(String args) a x; b y=new b(); x=y; /对程序段二:class c public static void main(String args) a x=new a(); b y; y=x;/编译错 程序段三:class c public static void main(String args) a x=new a(); b y; y=(b)x;/运行错 程序段四:class c public static void main(String args) a x=new b(); b y; y=x;/编译错 程序段五:class c public static void main(String args) a x=new b(); b y; y=(b)x; /对l final修饰类:最终类,不能被继承修饰方法:最终方法,不能被覆盖修饰变量:常量修饰符,其值不能改变static final double PAI=3.14159;l abstract修饰类和方法修饰类:抽象类,被继承;不能实例化;修饰方法:抽象方法,只是方法的声明,没有方法体。注意:1)抽象类不一定含有抽象方法,但含有抽象方法的类一定是抽象类。/错误的例子abstract class fatherabstract void tt();abstract void tt1();class son extends father void tt() System.out.println(son);2)abstract和final不能使用在同一个类和方法上。abstract class vehicle int kil; abstract int getfuel(); class car extends vehicle car(int kl) kil=kl; int getfuel() return(7*kil/100); class bus extends vehicle bus(int kl) kil=kl; int getfuel() return(10*kil/100); class company vehicle fleet; company() fleet=new vehicle3; fleet0=new car(300); fleet1=new bus(500); fleet2=new car(400); int rf() int ff=0; for(int i=0;ifleet.length;i+) ff=ff+fleeti.getfuel(); return(ff); public static void main(String args) company c=new company(); System.out.println(sum=+c.rf(); l 接口1. 说明:接口中的方法不给出方法体,是抽象方法;接口中只允许定义常量,不允许定义变量;接口之间是多重继承;一个类可以实现多个接口。2定义:interface interfaceNAme 3 继承 : 接口的继承使多重继承。interface first int a=1; void f1();interface second void s1();interface third extends first,second void t1();4实现 class className implements interfaceNAme注意:一个类实现一个接口,如果该类不是抽象类,则必须实现接口中每个方法,即给出每个方法的方法体。 一个类可以实现多个接口。class c1 implements first,second public void f1() System.out.println(a=+a); public void s1() 例:class c1 implements first,second public void f1() System.out.println(a=+a); public void s1() interface vehicle int getfuel(); class car implements vehicle int kil; car(int kl) kil=kl; public int getfuel() return(7*kil/100); class bus implements vehicle int kil; bus(int kl) kil=kl; public int getfuel() return(10*kil/100); class company1 vehicle fleet; company1() fleet=new vehicle3; fleet0=new car(300); fleet1=new bus(500); fleet2=new car(400); int rf() int ff=0; for(int i=0;ifleet.length;i+) ff=ff+fleeti.getfuel(); return(ff); public static void main(String args) company1 c=new company1(); System.out.println(sum=+c.rf(); l Object所有java类共有的父类,是java.lang中的类;java.lang是最基本的包,无需用import加载。l 内类l 内类:一个类声明在另一个类的类体内,称为内类。l 作用:内部类的主要作用就是直接访问外部类的成员例:1)在外部类的非静态方法中创建内部类对象。class Outer private int i = 10; public void makeIn() Inner in = new Inner(); in.fIn();System.out.println(outer); class Inner public void fIn() System.out.println(innner:i+i); public static void main

温馨提示

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

评论

0/150

提交评论