书签 分享 收藏 举报 版权申诉 / 73
上传文档赚钱

类型java程序设计教学教案课件-04-2.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3151276
  • 上传时间:2022-07-22
  • 格式:PPT
  • 页数:73
  • 大小:788.51KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《java程序设计教学教案课件-04-2.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    java 程序设计 教学 教案 课件 04
    资源描述:

    1、第四章第四章 类、对象和接口类、对象和接口4.2 对象类是创建对象的模板创建对象:对象的声明为对象分配内存4.2 对象1、对象的声明:格式:类的名字 对象名字;如:People zhangPing;4.2 对象2、为声明的对象分配内存:使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的)。如:zhangPing=new People();4.2 对象class XiyoujiRenwufloat height,weight;String head,ear,hand,foot,mouth;void speak(String

    2、 s)System.out.println(s);class Apublic static void main(String args)XiyoujiRenwu zhubajie;/声明对象zhubajie=new XiyoujiRenwu();/为对象分配内存,使用new运算符和默认的构造方法例:例:14.2 对象class Point int x,y;Point(int a,int b)x=a;y=b;public class A public static void main(String args)Point p1,p2;/声明对象p1和p2。p1=new Point(10,10);/

    3、为对象分配内存,使用 new 和类中的构造方法。p2=new Point(23,35);/为对象分配内存,使用 new 和类中的构造方法。例:例:2练习 用课本P45 类梯形创建一个名为“tx”的对象4.2 对象3、对象的内存模型:声明对象时的内存模型声明对象变量后,变量内存无数据,是空对象,不能使用如:XiyoujiRenwu zhubajie;zhubajie4.2 对象3、对象的内存模型:对象分配内存后的内存模型为成员变量分配内存返回一个应用给对象变量如 zhubajie=new XiyoujiRenwu();0.00.0nullnullnullnullnull0 xAB12zhubaj

    4、ieweightheightheadearmouthhandfoot4.2.2 使用对象使用运算符“.”,对象实现对自己的变量访问和方法的调用对象操作自己的变量(对象的属性)对象创建后,就有自己的变量。通过使用运算符“.”对象实现对自己变量的访问。对象调用类中的方法(对象的功能)采用“.”调用创建它的类中的方法。当对象调用类中的一个方法时,方法中的局部变量被分配到内存空间4.2.2 使用对象class XiyoujiRenwu float height,weight;String head,ear,hand,foot,mouth;void speak(String s)head=歪着头;Sys

    5、tem.out.println(s);public class Example public static void main(String args)XiyoujiRenwu zhubajie,sunwukong;/声明对象。zhubajie=new XiyoujiRenwu();/为对象分配内存,使用new 运算符和默认构造方法。sunwukong=new XiyoujiRenwu();zhubajie.height=1.80f;/对象给自己的变量赋值。zhubajie.weight=160f;zhubajie.hand=两只黑手;zhubajie.foot=两只大脚;zhubajie.h

    6、ead=大头;zhubajie.ear=一双大耳朵;zhubajie.mouth=一只大嘴;sunwukong.height=1.62f;/对象给自己的变量赋值。sunwukong.weight=1000f;sunwukong.hand=白嫩小手;sunwukong.foot=两只绣脚;sunwukong.head=绣发飘飘;sunwukong.ear=一对小耳;sunwukong.mouth=樱桃小嘴;System.out.println(zhubajie的身高:+zhubajie.height);System.out.println(zhubajie的头:+zhubajie.head);S

    7、ystem.out.println(sunwukong的重量:+sunwukong.weight);System.out.println(sunwukong的头:+sunwukong.head);zhubajie.speak(俺老猪我想娶媳妇);/对象调用方法。System.out.println(zhubajie现在的头:+zhubajie.head);sunwukong.speak(老孙我重1000斤,我想骗八戒背我);/对象调用方法。System.out.println(sunwukong现在的头:+sunwukong.head);4.2.2 使用对象类中的方法可以操作成员变量,当对象调

    8、用该方法时,方法中出现的成员变量就是指该对象的成员变量。练习 打印梯形的面积:(上底为2.0,下底为5.0,高为3.0)用课本P45 梯形类4.2.3 对象的应用和实体当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间被称作该对象的实体。对象中存放着应用,确保实体由该对象操作使用。4.2.3 对象的应用和实体如:Point p1=new Point(12,16);Point p2=new Point(6,18);p1=p2;12166180 xAB280 xDD618XyXyXy0 xDD0 xDDp1p2p2p14.2.3 对象的应用和实体例4:class 圆 double 半

    9、径;圆(double r)半径=r;double 计算面积()return 3.14*半径*半径;void 修改半径(double 新半径)半径=新半径;double 获取半径()return 半径;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

    10、底圆.获取半径();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.println(圆锥的体积

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

    12、s 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的下底:+laderOne.获取下底();System.out.println(laderTwo的上底:+laderTwo.获取上底();S

    13、ystem.out.println(laderTwo的下底:+laderTwo.获取下底();4.3 static关键字2、实例方法和类方法的区别当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。4.4 this关键字1、this关键字可以出现在类的实例方法中,代表使用该方法的当前对象。2、this关键字出现在类的构造方法中,代表使用该构造方法所创建的对象。实例方法可以操作类的成员变量。格式:this.成员变量 4.4 this关

    14、键字如:class Aint x;void f()this.x=100;/此例子没有同名的成员变量和局部变量,this可以省略4.4 this关键字如:class Bvoid f()this.g();void g()System.out.println(“OK”);/此例子中this代表使用方法f的当前对象,方法发f的方法体中this.g()就是当前对象调用方法g.一个方法调用另一个方法时可以省略方法名字前面的this4.5 包1、包语句通过关键字package声明包语句。package作为Java源文件的第一条语句。package语句的一般格式:package 包名;如:package su

    15、nrise;package ;4.5 包如果源程序中省略了package语句,源文件所定义命名的类被隐含地认为是无名包的一部分即源文件中定义命名的类在同一个包中,但该包没有名字。4.5 包程序如果使用了包语句,就必须有相应的目录结构。如:package tom.jafei;则目录结构必须包含如下结构:tomjiafei4.5 包例6:package tom.jiafei;public class Example4_6 public static void main(String args)System.out.println(我有包名);4.5 包2、import语句使用import语句可以引

    16、入包中的类。在一个java源程序中可以有多个import语句,他们必须写在package语句和源文件中的类的定义之间4.5 包2、import语句Java提供的包有很多,约130多个如:java.applet 包含所有实现java applet的类 java.awt 包含抽象窗口工具集中的图形、文本、窗口GUI类java.awt.image 包含抽象窗口工具集中的图像处理类java.lang 包含所有基本语言类java.io 包含所有的输入/输出类 包含所有实现网络功能的类java.until包含有用的数据类型类4.5 包引入类:如果要引入一个包中的全部类,则可以用星号来代替如:import

    17、java.awt.*;只引入一个确定的类,则直接写明引用如:import java.until.Date4.5 包例7:import java.applet.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.dra

    18、wString(it is a button,30,50);例8import tom.jiafei.*;class Example4_8 public static void main(String args)Trangle trangle=new Trangle(12,3,1);trangle.计算面积计算面积();trangle.修改三边修改三边(3,4,5);trangle.计算面积计算面积();4.6 访问权限1.私有变量和私有方法2.共有变量和共有方法3.友好变量和友好方法4.受保护成员变量和方法5.public类与友好类4.6 访问权限1.私有变量和私有方法用关键字private修

    19、饰的成员变量和方法被称为私有变量和私有方法如:class Tomprivate float weight;/weight私有的私有的float变量变量private float f(float a,float b)/方法方法f是私有方法是私有方法4.6 访问权限对于私有成员变量或方法,在另外一个类中,不能操作这个私有变量或方法,只有在本类中创建该类的对象的时候,才能访问自己的私有变量和类中的私有方法。class Jerryvoid g()Tom cat=new Tom();cat.weight=23f;/非法非法cat.f(3f,4f);/非法非法4.6 访问权限class Example4_

    20、9 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);类中访问自己的私有成员变量和私有方法4.6 访问权限2.共有变量和共有方法用关键字public修饰的成员变量和方法被称为共有变量和共有方法如:class Tompublic fl

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

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

    23、float b)/方法方法f是受保护的方法是受保护的方法4.6 访问权限当在另外一个类中用类Tom创建一个对象后,如果这个类与类Tom在同一个包中,那么该对象能访问自己的protected变量和方法.也可以通过类名访问class Jerryvoid g()Tom cat=new Tom();cat.weight=23f;/合法合法cat.f(3f,4f);/合法合法4.6 访问权限5.public类与友好类 类声明时,如果在关键字class前面加上public关键字,就称这样类是一个public类如:public class A如果一个类不加public修饰,则为友好类如:class A4.6

    24、 访问权限5.public类与友好类 不能用protected和private修饰类访问权限的排列:public、protected、友好的、private4.7 类的继承继承是一种用已有类创建新类的机制。新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类成为子类,被继承的类称为父类(超类)。Java不支持多重继承(子类只能有一个父类)4.7 类的继承1.创建子类在声明中,使用关键字extends来创建一个类的子类,格式:class 子类名 extends 父类名4.7 类的继承1.创建子类例:把Student声明为People的子类,People是Studen

    25、ts的父类.class Student extends People4.7 类的继承2.子类的继承性子类继承父类的成员变量继承父类的方法.4.7 类的继承2.子类的继承性 子类和父类在同一包种的继承性如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法.继承的成员或方法的访问权限保持不变.class Father private int money;int weight=100;String speak(String s)return s;class Son extends Fat

    26、her String hand;void f()weight=200;System.out.println(weight);class Suizi extends Son String foot;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

    27、(sunzi.weight+:+sunzi.hand+:+sunzi.foot);System.out.println(sunzi.speak(我是孙子);4.7 类的继承2.子类的继承性 子类和父类不在同一包种的继承性如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量作为子类的成员变量,并且继承了父类的protected、public方法为子类的方法。继承的成员或方法的访问权限保持不变.如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。Father.java:package tom.jiafei;public class Father

    28、 int height;protected int money=120;public int weight;protected int getMoney()return money;void setMoney(int newMoney)money=newMoney;Jerry.java package ;import tom.jiafei.Father;public class Jerry extends Father /Jerry和Father在不同的包中.void f()money=1000;/合法,/height=1.89f;/非法,因为Jerry没有继承友好的height System

    29、.out.println(money);/输出结果是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();4.7 类的继承2.子类的继承性 protected的进一步说明一个类A中的protected成员变量和方法可以被它的直接子类和间接子类继承,如:B是A的子类,C是B的子类,D又是C

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

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

    32、rotected方法);System.out.println(x=+x);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();/合法.DL.java package ;import .B;public class DL public static v

    33、oid 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类在同一包中.Example.javapackage tom.jiafei;import .B;public class Example public static void main(String args)B b=new B();/对象

    34、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类不在同一包中.a4.7 类的继承3.成员变量的隐藏和方法的重写成员变量隐藏:如果在子类中定义的成员变量和父类的成员变量同名时,则父类中的成员变量不能被继承,此时称为子类的成员变量隐藏了父类的成员变量。方法重写:如果子类中定义了一个方法,并且这个方法的名字、返回类型以及

    35、参数个数和类型同父类的某个方法完全相同,父类的这个方法将被隐藏,则称重写父类的方法。4.7 类的继承3.成员变量的隐藏和方法的重写子类通过成员变量的隐藏和方法的重写可以把父类的状态和行为改变成为自身的状态和行为。例子12import java.applet.*;import java.awt.*;class A private int number=100;float f(int x,int y)return x+y;float g(float x,float y)return x+y+number;class B extends A float f(int x,int y)return x*

    36、y;public class Example public static void main(String args)B b=new B();System.out.println(b.f(2,5);/调用重写的方法。System.out.println(b.g(2,5);/b调用继承的父类的方法。4.7 类的继承3.成员变量的隐藏和方法的重写重写父类的方法时,不能降低方法的访问权限。import java.applet.*;import java.awt.*;class A private int number=100;protected float f(int x,int y)return

    37、x+y;float g(float x,float y)return x+y+number;class B extends A float f(int x,int y)return x*y;class C extends A public float f(int x,int y)/合法,没有降低访问级别 return x-y;4.7 类的继承4.final类final方法Final类不能被继承,即不能有子类Final class AA就是一个final类。出于安全的考虑,将一些类修饰为final类。如果一个方法被修饰为final方法,则这个方法不能被重写。如果一个成员变量被修饰为final,就是常量。作业作业1.包语句的格式是什么?包语句在Java源文件什么位置?2.如何引入包中的类?3.用public、protected、友好的、private修饰的方法访问权限的级别排列顺序是怎样的?4.什么是类的继承?Java是否支持多重继承?

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:java程序设计教学教案课件-04-2.ppt
    链接地址:https://www.163wenku.com/p-3151276.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库