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

类型Java课件第六讲Java面向对象程序设计.ppt

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

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

    特殊限制:

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

    关 键  词:
    Java 课件 第六 面向 对象 程序设计
    资源描述:

    1、第6讲 Java面向对象程序设计 面向对象的程序设计方法按照现实世界的特点,把复杂的事务抽象为对象。对象具有自己的状态和行为,通过对消息的反应来完成一定的任务。面向对象是Java的重要特性。一、Java面向对象基础(一)类的定义 Java的类是由类声明和类体二部分构成,类声明定义的格式如下:类修饰符 class 类名 extends 父类名 implements 接口名,接口名 类体例:HelloWorldApp.java public class HelloWorldApp public static void main(String args)System.out.println(“Hel

    2、loWorld!”);类体定义的格式:class 类名 变量声明;方法声明;例:class Point int x,y;void init(int ix,int iy)x=ix;y=iy;例:public class Calculator private double result;public double a,b;public double Calculator()result=0;public double Add()result=a+b;return result;public double Minus()result=a-b;return result;组成一个类的组件如下:impo

    3、rt包包 类修饰符类修饰符 class xxxclass extends父类父类 implements 接口接口 /类变量类变量 或称类字段或称类字段 /实例变量或称实例字段实例变量或称实例字段 /构造函数构造函数 /静态初始者静态初始者 /类方法类方法 /实例方法实例方法 /内部类内部类(二)类的修饰符public提供给其他类完全的存取权限。即:在同一包中的类可自由取用此类,而别的包中的类可通过import关键词来引入此类所属的包加以运用。用public修饰的类有几个特性:1.一个程序里只能有一个类被修饰为public,否则编译会错。public class xxxClass()class

    4、aaaClass()class bbbClass()2.源文件存储文件名,必须是用public修饰的类名(xxxClass)3.若程序中没有任何public类,则文件名可任取。而如果文件名是程序中的一个类名,则该类被视作public,可供别的类存取。final表示此类为“最终”类,别的类不能继承此类,其方法也不能被覆盖。例如java.lang.System类即为final类:public final class System extends Object 注意:我们可使用该类,但不能继承并覆盖其内容。用重复的两个修饰符public+final的意思是:此final类可被import来引用,但不

    5、能被继承。System类关系到系统层级控制,为了安全性,故必须为final类,以避免被覆盖。但final与abstract就不能复合来用,因为二者是相冲突的。另外:final关键字也可用于修饰方法和变量,用final修饰的方法不能被覆盖,用final修饰的变量定义的同时必须赋初值且在程序中不能被赋值,final变量被认为是符号常量,习惯上用大写字母表示这些变量。例:FinalTest.javafinal class A final double PI=3.1416;final double area(double r)return(PI*r*r);class FinalTest public

    6、static void main(String args)A a=new A();System.out.println(area=+a.area(5.0);abstract此字的英文意思是”抽象的”,”非实际的”。此修饰符可修饰类及方法。用abstract修饰的类只是先定义一些方法规格,然后让继承此类的子类来覆盖此规格的内容。即:抽象类不需给出类中每个方法的完整实现,要实现此方法必须要由子类的方法来覆盖。abstract类与方法有下列特性:1.一个抽象类里可以没有定义抽象方法。但只要类中有一个方法是被声明为abstract,则该类必须为abstract。2.抽象类不能被实例化,即不能被new成

    7、一个对象实例。3.若一个子类继承一个抽象类,则子类需用覆盖的方式来实化该抽象父类中的抽象方法。若没有完全实化所有的抽象方法,则子类仍是抽象的。4.抽象方法可再与public、protected复合使用,但不能与final、private和static复合使用。例:Abstract_Demo.java abstract class A abstract void callme();void metoo()System.out.println(在A的metoo方法里);class B extends A void callme()System.out.println(在B的callme方法里);c

    8、lass Abstract_Demo public static void main(String args)B a=new B();a.callme();a.metoo();例:抽象类示例默认修饰符 如果一个类没有修饰符,就说明它具有默认的访问控制特性。这样的类只允许与该类处于同一个包中的类访问和调用,而不允许被其他包中的类使用。注意:Java中,外部类不能用private和protected修饰,内部类可以用private和protected修饰。二、对象的创建和引用(一)对象的定义 定义了用户自己的类之后,就可以用这个类去定义类的对象了。如:Box myBox;因为类可以当作是用户自行声

    9、明的复合数据类型,所以使用之前还需用new为其开辟存储空间。如:myBox=new Box();注:以上两步可合而为一 Box myBox=new Box();接下来,可以利用成员运算符“.”来访问对象的各个成员变量。如:myBox.color=“Blue”;myBox.width=10.5;总结:对象的创建包括“声明”、“实例化”、“初始化”三步:声明:类型 对象名;实例化:用new可以为一个类实例化多个 不同的对象,这些对象分别占 用不同的内存空间。初始化:执行构造函数。(二)对象成员变量的引用引用格式:对象名.成员变量名(三)对象方法的调用调用格式:对象名.方法名例:BoxClass.j

    10、avaclass Box String color;double width;double height;double depth;double volume()return width*height*depth;void BoxMessage()System.out.println(盒子的颜色:+color);System.out.println(盒子的宽度:+width);System.out.println(盒子的高度:+height);System.out.println(盒子的深度:+depth);public class BoxClass public static void ma

    11、in(String args)Box myBox=new Box();double myBoxVolume,Volume;myBox.color=Blue;myBox.width=10.5;myBox.height=20.6;myBox.depth=15.7;myBoxVolume=myBox.volume();Volume=myBox.width*myBox.height*myBox.depth;System.out.println(体积是:+myBoxVolume);System.out.println(体积是:+Volume);myBox.BoxMessage();Java中的变量成员变

    12、量(在类中定义,不需要初始化)自动变量(在方法中定义,定义同时初始化)三、成员变量 成员变量是类的两大组成部分之一,因此类体中定义的变量都称之为成员变量,而方法体中定义的变量不能称之为成员变量。类变量(由static修饰)成员变量 实例变量(没有static修饰)(一)成员变量的定义 格式:变量修饰符 类型 变量名=初值,变量名=初值;如:public int a,b=12;protected String s=Hot Java;注意:若成员变量在定义时没有赋初值,则系统会为其自动进行初始化,但方法中的自动变量必须人为的赋初值。(二)成员变量修饰符1.存取性修饰符:控制类间的存取,包括publ

    13、ic,protected,private;2.存在性修饰符:成员变量本身在类中存在的特性,包括static和final。v public修饰符 public变量和方法是“公开”的,既允许变量自身所属的类访问,也允许同一个包中的其他类访问,还允许其他包中的类访问。v protected修饰符 protected变量和方法是“受保护”的,它们仅能被与该类处于同一个包中的类所直接存取和使用。v private修饰符 private变量和方法是“私有的”,除了声明它们的类外,不能被任何其他的类直接存取和使用。注:当变量和方法前不加以上三种修饰符时,被认为是默认访问级,只允许定义它的类自身以及在同一个包

    14、中的类访问和调用。static修饰符 用关键字static可以修饰类的成员变量及方法,使它们成为静态成员。如:static int y=3;static showx()注意:用static修饰的变量称为类变量,用static修饰的方法称为类方法。类变量和类方法在使用时也和其他变量与方法不同。例:UseStatic.java UseGeneral.java StaticTest.java final修饰符 将变量或方法声明为final,可以保证他们在使 用中不被改变。注意:被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改;被声明为final的方法也同样只能使用,不

    15、能重载或覆盖。例:FinalTest.javafinal class A final double PI=3.1416;final double area(double r)return(PI*r*r);class FinalTest public static void main(String args)A a=new A();System.out.println(area=+a.area(5.0);四、成员方法(成员函数)在Java中,成员变量和成员方法(成员函数)是类的两大组成部分,成员变量反映了类的性质,而方法(函数)反映了类的行为。(一)成员方法的声明声明格式:方法修饰符 返回值类型

    16、 方法名(参数表)方法体说明:定义方法时一定要给出返回值类型和参数表;没有返回值时,返回值类型记为void。如:public static void main(String args)public int area(int length,int width)return length,*width;(二)成员方法修饰符 方法修饰符大部分的种类及意义与变量修饰符一样,不过多了一种存在性的abstract以及线程用的运作性修饰符synchronized。存取性:public,protected,private存在性:static,abstract,final运作性:synchronized1.st

    17、atic修饰符 此修饰符会使方法成为唯一的。与类的地位等同。不会因实例的产生而受影响。static方法在使用上,有几点注意事项:(1)static方法中只能使用static变量,否则编译会出错。(2)一个类的static变量和static方法,可直接用该类的 名称,按以下方法来使用:类名.类方法 类名.类变量 类名.静态变量.静态方法2.abstract修饰符 抽象方法存在于抽象类中,并不建立程序代码,而是留给继承的子类来覆盖。被声明为abstract的方法不需要实际的方法体,只需给出方法的名称、返回值类型和参数表。格式:abstract 返回值类型 方法名(参数表);注:声明抽象方法时,并不

    18、用写出大括号。定义了abstract抽象方法的类必须被声明为abstract的抽象类。3.final修饰符 被声明为final的方法不能被其他类变更方法里的内容,即使是继承的子类。4.synchronized修饰符 此方法修饰符用于同步化监控处理。被synchronized修饰的方法,一次只能被一个线程来使用。(三)成员方法调用1.简单调用:根据被调用的方法是否有返回值,有两种调用形式。(1)作为一条单独的语句(void)如:System.out.println(“”);(2)作为一个表达式(有返回值)如:s=area(3,4);例:SquareDouble.java public class

    19、 SquareDouble public static void main(String arg)double a=10.0,x=0.0;x=square(a);System.out.println(“正方形面积是:”+x);public static double square(double y)return y*y;2.根据调用方法的所在位置及其本身的性质,又分为几种不同情况。(1)被调用的方法有可能是在本身这个类中,也有可能是在父类或其他的类中。(2)被调用的方法有可能是类方法,也有可能是实例方法。(3)主调方法有可能是类方法,也有可能是实例方法。方法调用的写法就要根据方法所在的位置及它

    20、本身的性质来进行调用。调用方法被调用方法 类方法 实例方法本类类方法A直接调用:类方法A或本类实例.类方法A但不能用this。直接调用:类方法A或 this.类方法A均可。实例方法B本类实例.实例方法B,但不能用this,也不能直接调用。直接调用:实例方法B或 this.实例方法B均可。父类/其他类类方法C父类实例.类方法C/其他对象实例.类方法C。父类实例.类方法C或 super.类方法C/其他对象实例.类方法C。实例方法D父类实例.实例方法D/其他对象实例.实例方法D。父类实例.实例方法D或 super.实例方法D/其他对象实例.实例方法D。上表的原则:1.this与super不能用在由s

    21、tatic修饰的类方法里。若放在其中,则会产生编译错误信息:non-static variable this cannot be referenced from a static contextnon-static variable super cannot be referenced from a static context2.在类方法中可直接调用本身类方法,但不可直接调用实例方法。3.在实例方法中可直接调用本身类中的类方法与实例方法。4.this与super只能用在实例方法中。5.xx对象.xx方法的方式可用于任何情况里。例:TestMethod.java(四)成员方法参数的传递 参数可

    22、以是基本数据类型、数组和对象。例:ArrayMaxMin.java(参数是数组)import java.applet.Applet;import java.awt.Graphics;public class ArrayMaxMin extends Applet public void paint(Graphics g)double Max,Min;double data=0.2,5.6,7.88,20.3,-0.234,3.22;Max=ArrayMax(data);g.drawString(Max=+Max,10,20);Min=ArrayMin(data);g.drawString(Min

    23、=+Min,10,40);double ArrayMax(double array)double max=array0;for(int i=1;imax)max=arrayi;return max;double ArrayMin(double array)double min=array0;for(int i=1;iarray.length;i+)if(arrayimin)min=arrayi;return min;方法参数是类对象 方法参数是类对象时,在方法体内可通过类的成员运算符“.”使用类的成员变量和方法。如:public void paint(Graphics g)g.drawStri

    24、ng(“Hello Java!”,10,30);例:PassingParam.javapublic class PassingParam static class OneObject public String Y=a;static void changeParam(int xx,OneObject oobject1)xx=3;oobject1.Y=A;public static void main(String args)int x=1;OneObject oobject=new OneObject();/创建对象oobject System.out.println(传递前的参数值:x=+x+y=+oobject.Y);PassingParam.changeParam(x,oobject);/传递变量x和对 象oobject地址 System.out.println(传递后的参数值:x=+x+y=+oobject.Y);(五)finalize方法 相当于C+中的析构方法,用来释放对象所占用的系统资源。当对象实例不被任何变量使用时,Java对自动进行垃圾回收,因此该方法会被Java系统自动调用。

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

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


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


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

    163文库