java程序设计教学教案课件_第1页
java程序设计教学教案课件_第2页
java程序设计教学教案课件_第3页
java程序设计教学教案课件_第4页
java程序设计教学教案课件_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、java程序设计教学教案第四章第四章 类、对象和接口类、对象和接口java程序设计教学教案4.2 对象类是创建对象的模板创建对象:对象的声明为对象分配内存java程序设计教学教案4.2 对象1、对象的声明:格式:类的名字 对象名字;如:People zhangPing;java程序设计教学教案4.2 对象2、为声明的对象分配内存:使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的)。如:zhangPing=new People();java程序设计教学教案4.2 对象class XiyoujiRenwufloat hei

2、ght,weight;String head,ear,hand,foot,mouth;void speak(String s)System.out.println(s);class Apublic static void main(String args )XiyoujiRenwu zhubajie; /声明对象zhubajie=new XiyoujiRenwu(); /为对象分配内存,使用new运算符和默认的构造方法例:例:1java程序设计教学教案4.2 对象class Point int x,y; Point(int a,int b) x=a; y=b; public class A p

3、ublic static void main(String args) Point p1,p2; /声明对象p1和p2。 p1=new Point(10,10); /为对象分配内存,使用 new 和类中的构造方法。 p2=new Point(23,35); /为对象分配内存,使用 new 和类中的构造方法。 例:例:2java程序设计教学教案练习 用课本P45 类梯形创建一个名为“tx”的对象java程序设计教学教案4.2 对象3、对象的内存模型:声明对象时的内存模型声明对象变量后,变量内存无数据,是空对象,不能使用如:XiyoujiRenwu zhubajie;zhubajiejava程序设

4、计教学教案4.2 对象3、对象的内存模型:对象分配内存后的内存模型为成员变量分配内存返回一个应用给对象变量如 zhubajie=new XiyoujiRenwu();0.00.0nullnullnullnullnull0 xAB12zhubajieweightheightheadearmouthhandfootjava程序设计教学教案4.2.2 使用对象使用运算符 “.” ,对象实现对自己的变量访问和方法的调用对象操作自己的变量(对象的属性)对象创建后,就有自己的变量。通过使用运算符“.”对象实现对自己变量的访问。对象调用类中的方法(对象的功能)采用“.”调用创建它的类中的方法。当对象调用类中

5、的一个方法时,方法中的局部变量被分配到内存空间java程序设计教学教案4.2.2 使用对象class XiyoujiRenwu float height,weight; String head, ear,hand,foot,mouth; void speak(String s) head=歪着头; System.out.println(s); public class Example public static void main(String args) XiyoujiRenwu zhubajie,sunwukong;/声明对象。 zhubajie=new XiyoujiRenwu();/为

6、对象分配内存,使用new 运算符和默认构造方法。 sunwukong=new XiyoujiRenwu(); zhubajie.height=1.80f; /对象给自己的变量赋值。 java程序设计教学教案 zhubajie.weight=160f; zhubajie.hand=两只黑手; zhubajie.foot=两只大脚; zhubajie.head=大头; zhubajie.ear=一双大耳朵; zhubajie.mouth=一只大嘴; sunwukong.height=1.62f; /对象给自己的变量赋值。 sunwukong.weight=1000f; sunwukong.hand

7、=白嫩小手; sunwukong.foot=两只绣脚; sunwukong.head=绣发飘飘; sunwukong.ear=一对小耳; sunwukong.mouth=樱桃小嘴; System.out.println(zhubajie的身高:+zhubajie.height); System.out.println(zhubajie的头:+zhubajie.head); System.out.println(sunwukong的重量:+sunwukong.weight); System.out.println(sunwukong的头:+sunwukong.head); zhubajie.sp

8、eak(俺老猪我想娶媳妇); /对象调用方法。 System.out.println(zhubajie现在的头:+zhubajie.head); sunwukong.speak(老孙我重1000斤,我想骗八戒背我); /对象调用方法。 System.out.println(sunwukong现在的头:+sunwukong.head); java程序设计教学教案4.2.2 使用对象类中的方法可以操作成员变量,当对象调用该方法时,方法中出现的成员变量就是指该对象的成员变量。java程序设计教学教案练习 打印梯形的面积:(上底为2.0,下底为5.0,高为3.0) 用课本P45 梯形类java程序设计

9、教学教案4.2.3 对象的应用和实体当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间被称作该对象的实体。对象中存放着应用,确保实体由该对象操作使用。java程序设计教学教案4.2.3 对象的应用和实体如:Point p1=new Point(12,16);Point p2=new Point(6,18);p1=p2;12166180 xAB280 xDD618XyXyXy0 xDD0 xDDp1p2p2p1java程序设计教学教案4.2.3 对象的应用和实体例4:class 圆 double 半径; 圆(double r) 半径=r; double 计算面积() return

10、3.14*半径*半径; void 修改半径(double 新半径) 半径=新半径; double 获取半径() return 半径; java程序设计教学教案4.2.3 对象的应用和实体class 圆锥 圆 底圆; double 高; 圆锥(圆 circle,double h) this.底圆=circle; this.高=h; double 计算体积() double volume; volume=底圆.计算面积()*高/3.0; return volume; void 修改底圆半径(double r) 底圆.修改半径(r); double 获取底圆半径() return 底圆.获取半径()

11、; java程序设计教学教案4.2.3 对象的应用和实体class Example public static void main(String args) 圆 circle=new 圆(10); 圆锥 circular=new 圆锥(circle,20); System.out.println(圆锥底圆半径:+circular.获取底圆半径(); System.out.println(圆锥的体积:+circular.计算体积(); circular.修改底圆半径(100); System.out.println(圆锥底圆半径:+circular.获取底圆半径(); System.out.pr

12、intln(圆锥的体积:+circular.计算体积(); java程序设计教学教案4.3 static关键字1、实例变量和类变量的区别不同对象的实例变量将被分配不同的内存空间,如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量java程序设计教学教案4.3 static关键字例子5class 梯形 float 上底,高; static float 下底; /类变量。 梯形(float 上底,float 高) this.上底=上底; this.高=高; float 获取上底() return

13、 上底; float 获取下底() return 下底; java程序设计教学教案4.3 static关键字class Example4_5 public static void main(String args) 梯形 laderOne,laderTwo; /梯形的字节码被加载到内存。 梯形.下底=60; /通过类名操作类变量。 laderOne=new 梯形(18.0f,20); laderTwo=new 梯形(9.0f,10); System.out.println(laderOne的上底:+laderOne.获取上底(); System.out.println(laderOne的下底:

14、+laderOne.获取下底(); System.out.println(laderTwo的上底:+laderTwo.获取上底(); System.out.println(laderTwo的下底:+laderTwo.获取下底(); java程序设计教学教案4.3 static关键字2、实例方法和类方法的区别当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。java程序设计教学教案4.4 this关键字1、this关键字可以出现在类

15、的实例方法中,代表使用该方法的当前对象。2、this关键字出现在类的构造方法中,代表使用该构造方法所创建的对象。实例方法可以操作类的成员变量。格式:this.成员变量 java程序设计教学教案4.4 this关键字如:class Aint x;void f()this.x=100;/此例子没有同名的成员变量和局部变量,this可以省略java程序设计教学教案4.4 this关键字如:class Bvoid f()this.g();void g()System.out.println(“OK”);/此例子中this代表使用方法f的当前对象,方法发f的方法体中this.g()就是当前对象调用方法g

16、.一个方法调用另一个方法时可以省略方法名字前面的thisjava程序设计教学教案4.5 包1、包语句通过关键字package声明包语句。package作为Java源文件的第一条语句。package语句的一般格式:package 包名;如:package sunrise;package .cn;java程序设计教学教案4.5 包如果源程序中省略了package语句,源文件所定义命名的类被隐含地认为是无名包的一部分即源文件中定义命名的类在同一个包中,但该包没有名字。java程序设计教学教案4.5 包程序如果使用了包语句,就必须有相应的目录结构。如:package tom.jafei;则目录结构必须

17、包含如下结构:tomjiafeijava程序设计教学教案4.5 包例6:package tom.jiafei;public class Example4_6 public static void main(String args) System.out.println(我有包名); java程序设计教学教案4.5 包2、 import语句使用import语句可以引入包中的类。在一个java源程序中可以有多个import语句,他们必须写在package语句和源文件中的类的定义之间java程序设计教学教案4.5 包2、 import语句Java提供的包有很多,约130多个如:java. apple

18、t 包含所有实现java applet的类 java.awt 包含抽象窗口工具集中的图形、文本、窗口GUI类java.awt.image 包含抽象窗口工具集中的图像处理类java.lang 包含所有基本语言类java.io 包含所有的输入/输出类 包含所有实现网络功能的类java.until包含有用的数据类型类java程序设计教学教案4.5 包引入类:如果要引入一个包中的全部类,则可以用星号来代替如:import java.awt.*;只引入一个确定的类,则直接写明引用如:import java.until.Datejava程序设计教学教案4.5 包例7:import java.applet.

19、Applet;import java.awt.*;public class Example extends Applet Button redbutton; public void init() redbutton=new Button(我是一个红色的按钮我是一个红色的按钮); redbutton.setBackground(Color.red); add(redbutton); public void paint(Graphics g) g.drawString(it is a button,30,50); java程序设计教学教案 例8import tom.jiafei.*;class E

20、xample4_8 public static void main(String args) Trangle trangle=new Trangle(12,3,1); trangle.计算面积计算面积(); trangle.修改三边修改三边(3,4,5); trangle.计算面积计算面积(); java程序设计教学教案4.6 访问权限1.私有变量和私有方法2.共有变量和共有方法3.友好变量和友好方法4.受保护成员变量和方法5.public类与友好类java程序设计教学教案4.6 访问权限1.私有变量和私有方法用关键字private修饰的成员变量和方法被称为私有变量和私有方法如:class T

21、omprivate float weight; /weight私有的私有的float变量变量private float f(float a, float b) /方法方法f是私有方法是私有方法java程序设计教学教案4.6 访问权限对于私有成员变量或方法,在另外一个类中,不能操作这个私有变量或方法,只有在本类中创建该类的对象的时候,才能访问自己的私有变量和类中的私有方法。class Jerryvoid g() Tom cat=new Tom();cat.weight=23f; /非法非法cat.f(3f,4f);/非法非法java程序设计教学教案4.6 访问权限class Example4_9

22、 private int money; Example4_9() money=2000; private int getMoney() return money; public static void main(String args) Example4_9 exa=new Example4_9(); exa.money=3000; int m=exa.getMoney(); System.out.println(money=+m); 类中访问自己的私有成员变量和私有方法java程序设计教学教案4.6 访问权限2.共有变量和共有方法用关键字public修饰的成员变量和方法被称为共有变量和共有方

23、法如:class Tompublic float weight; /weight共有的共有的float变量变量public float f(float a, float b) /方法方法f是共有方法是共有方法java程序设计教学教案4.6 访问权限对于共有成员变量或方法,在另外一个类中,能操作这个变量或方法。class Jerryvoid g() Tom cat=new Tom();cat.weight=23f; /合法合法cat.f(3f,4f);/合法合法java程序设计教学教案4.6 访问权限3.友好变量和方法不用private、public、protected修饰的成员变量和方法被称为

24、友好变量和友好方法。如:class Tomfloat weight; /weight友好的友好的float变量变量float f(float a, float b) /方法方法f是友好方法是友好方法java程序设计教学教案4.6 访问权限在同一个包中,那么能访问自己的友好变量和友好方法。class Jerryvoid g() Tom cat=new Tom();cat.weight=23f; /合法合法cat.f(3f,4f);/合法合法java程序设计教学教案4.6 访问权限4.受保护的成员变量和方法用关键字protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法如:cla

25、ss Tomprotected float weight; /weight受保护的受保护的float变量变量protected float f(float a, float b) /方法方法f是受保护的方法是受保护的方法java程序设计教学教案4.6 访问权限当在另外一个类中用类Tom创建一个对象后,如果这个类与类Tom在同一个包中,那么该对象能访问自己的protected变量和方法.也可以通过类名访问class Jerryvoid g() Tom cat=new Tom();cat.weight=23f; /合法合法cat.f(3f,4f);/合法合法java程序设计教学教案4.6 访问权限

26、5.public类与友好类 类声明时,如果在关键字class前面加上public关键字,就称这样类是一个public类如: public class A如果一个类不加public修饰,则为友好类如:class Ajava程序设计教学教案4.6 访问权限5.public类与友好类 不能用protected和private修饰类访问权限的排列:public 、protected、友好的、privatejava程序设计教学教案4.7 类的继承继承是一种用已有类创建新类的机制。新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类成为子类,被继承的类称为父类(超类)。Jav

27、a不支持多重继承(子类只能有一个父类)java程序设计教学教案4.7 类的继承1.创建子类在声明中,使用关键字extends来创建一个类的子类,格式:class 子类名 extends 父类名java程序设计教学教案4.7 类的继承1.创建子类例:把Student声明为People的子类,People是Students的父类.class Student extends Peoplejava程序设计教学教案4.7 类的继承2.子类的继承性子类继承父类的成员变量继承父类的方法.java程序设计教学教案4.7 类的继承2.子类的继承性子类和父类在同一包种的继承性如果子类和父类在同一个包中,那么子类自

28、然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法.继承的成员或方法的访问权限保持不变.java程序设计教学教案class Father private int money; int weight=100; String speak(String s) return s ; class Son extends Father String hand ; void f() weight=200; System.out.println(weight); class Suizi extends Son String foot

29、 ;java程序设计教学教案public class Example4_10 public static void main(String args) Son son=new Son(); Suizi sunzi=new Suizi(); son.hand=两只手 ; sunzi.hand=两小只手 ; sunzi.foot=两只脚 ; System.out.println(son.hand); son.f(); System.out.println(sunzi.weight+:+sunzi.hand+:+sunzi.foot); System.out.println(sunzi.speak(

30、我是孙子); java程序设计教学教案4.7 类的继承2.子类的继承性子类和父类不在同一包种的继承性如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量作为子类的成员变量,并且继承了父类的protected、public方法为子类的方法。继承的成员或方法的访问权限保持不变.如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。java程序设计教学教案Father.java:package tom.jiafei;public class Father int height; protected int money=120; public int

31、 weight; protected int getMoney() return money; void setMoney(int newMoney) money=newMoney; java程序设计教学教案Jerry.java package ;import tom.jiafei.Father;public class Jerry extends Father /Jerry和Father在不同的包中. void f() money=1000; /合法, /height=1.89f; /非法,因为Jerry没有继承友好的height System.out.println(money); /输出

32、结果是1000。 /setMoney(300); /非法,因为Jerry没有继承友好的方法setMoney。 int number=getMoney(); /合法. System.out.println(number); /输出结果是1000。 public static void main(String args) Jerry jerry=new Jerry(); jerry.f(); java程序设计教学教案4.7 类的继承2.子类的继承性protected的进一步说明一个类A中的protected成员变量和方法可以被它的直接子类和间接子类继承,如:B是A的子类,C是B的子类,D又是C的子

33、类,那么B、C和D类都继承了A的protected成员变量和方法。如果用D类在D本身中创建了一个对象,那么该对象总是可以通过“.”运算符访问继承的或自己定义的protected变量和protected方法。如果在另外一个类中,比如Other类,用D类创建了一个对象object,该对象通过“.”运算符访问protected变量和protected方法的权限如下:java程序设计教学教案4.7 类的继承如果在另外一个类中,比如Other类,用D类创建了一个对象object,该对象通过“.”运算符访问protected变量和protected方法的权限如下:子类D中亲自声明的protected成员变

34、量和方法,不可能是从别的类继承来的,object访问这些非继承的protected成员变量和方法时,只要Other类和D类在同一个包中就可以如果子类D的对象的protected成员变量或protected方法是从父类继承的,那么就要一直追溯到该protected成员变量或方法的“祖先”类,即A类。如果Other类和A类在同一个包,object对象能访问继承的protected变量和protected方法。java程序设计教学教案A.java:package tom.jiafei;public class A protected int x=120; protected void fA() Sy

35、stem.out.println(我是A类中的protected方法); System.out.println(x=+x); java程序设计教学教案B.java:package ;import tom.jiafei.A;public class B extends A protected void fB() System.out.println(我是B类中自己定义的方法); public static void main(String args) B b=new B(); /对象b在B类中. b.x=1000; /合法. b.fA(); /合法. b.fB(); /合法. java程序设计教

36、学教案DL.java package ;import .B;public class DL public static void main(String args) B b=new B(); /对象b在DL类中. b.x=1000; /非法,因为对象b的成员变量x是从A类继承的,但DL和A不在同一包中. b.fA(); /非法.因为方法fA是B类从A类继承的protected方法,但DL和A不在同一包中. b.fB(); /合法,因为方法fB是B类中自己定义的protected方法, DL类和B类在同一包中. java程序设计教学教案Example.javapackage tom.jiafei

37、;import .B;public class Example public static void main(String args) B b=new B(); /对象b在Example类中. b.x=1000; /合法,因为对象b的成员变量x是从A类继承的,而Example和A在 同一包中. b.fA(); /合法.因为方法fA是B类从A类继承的protected方法,而Example和A在同一包中. b.fB(); /非法,因为方法fB是B类中自己定义的protected方法,但 Example类和B类不在同一包中. ajava程序设计教学教案4.7 类的继承3.成员变量的隐藏和方法的重写成员变量隐藏:如果在子类中定义

温馨提示

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

最新文档

评论

0/150

提交评论