欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第7章基于对象编程.ppt

    • 资源ID:70748425       资源大小:218KB        全文页数:21页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第7章基于对象编程.ppt

    第第 7 7 章章 基于对象的编程基于对象的编程7.1 基本概念基本概念7.2 用类实现抽象数据类型用类实现抽象数据类型:时间时间7.3 成员访问控制成员访问控制7.4 创建包创建包7.5 初始化类对象:构造方法初始化类对象:构造方法7.6 static类成员类成员第第 7 7 章章 基于对象的编程基于对象的编程7.1 基本概念基本概念 类中的数部分被称为实例变量,而用户自定义类类中的数部分被称为实例变量,而用户自定义类型型(即类即类)的实例被称为对象。在的实例被称为对象。在Java中,注意力放中,注意力放在对象而不是方法上,在系统需求文档中的名词有在对象而不是方法上,在系统需求文档中的名词有助于助于Java程序员确定用一组什么样的类开始设计过程序员确定用一组什么样的类开始设计过程。程。如何创建和使用对象,这一范畴称为基于对象的如何创建和使用对象,这一范畴称为基于对象的编程编程(Object-Based Programming OBP);引入了继承性和多态性这两种关键技术,才能真引入了继承性和多态性这两种关键技术,才能真正实现面向对象编程正实现面向对象编程(Object-Oriented Programming OOP)。第第 7 7 章章 基于对象的编程基于对象的编程7.2 用类实现抽象数据类型用类实现抽象数据类型:时间时间例例7.1 建立时间类建立时间类Time1和使用时间类的和使用时间类的TimeTest1类。由于类。由于Time1类和类和TimeTest1类都是类都是public类,因此要把类,因此要把他们定义在不同的文件中。他们定义在不同的文件中。/Fig.8.1:Time1.javaimport java.text.DecimalFormat;public class Time1 extends Object private int hour;/0-23 private int minute;/0-59 private int second;/0-59 public Time1()setTime(0,0,0);public void setTime(int h,int m,int s)hour=(h=0&h=0&m=0&s 60)?s:0);public String toUniversalString()DecimalFormat twoDigits=new DecimalFormat(00);return twoDigits.format(hour)+:+twoDigits.format(minute)+:+twoDigits.format(second);public String toString()DecimalFormat twoDigits=new DecimalFormat(00);return(hour=12|hour=0)?12:hour%12)+:+twoDigits.format(minute)+“:”+twoDigits.format(second)+(hour=0&h=0&m=0&s 60)?s:0);第第 7 7 章章 基于对象的编程基于对象的编程public String toUniversalString()DecimalFormat twoDigits=new DecimalFormat(00);return twoDigits.format(hour)+:+twoDigits.format(minute)+:+twoDigits.format(second);public String toString()DecimalFormat twoDigits=new DecimalFormat(00);return(hour=12|hour=0)?12:hour%12)+:+twoDigits.format(minute)+:+twoDigits.format(second)+(hour 12?AM:PM);/end class Time1第第 7 7 章章 基于对象的编程基于对象的编程/Fig.8.5:TimeTest3.javaimport javax.swing.JOptionPane;import com.deitel.jhtp4.ch08.Time1;/import Time1 classpublic class TimeTest3 public static void main(String args)Time1 time=new Time1();/create Time1 object time.setTime(13,27,06);/set new time String output=Universal time is:+time.toUniversalString()+nStandard time is:+time.toString();JOptionPane.showMessageDialog(null,output,Packaging Class Time1 for Reuse,JOptionPane.INFORMATION_MESSAGE);System.exit(0);/end class TimeTest3第第 7 7 章章 基于对象的编程基于对象的编程7.5 初始化类对象:构造方法初始化类对象:构造方法1.constructor(构造方法构造方法):在一个类中和类:在一个类中和类同名的方法叫构造方法同名的方法叫构造方法.系统在产生对象时会系统在产生对象时会自动执行。自动执行。class Point int x,y;Point()x=0;y=0;Point(int new_x,int new_y)x=new_x,y=new_y;class UsePoint Point point_A=new Point();Point point_B=new Point(5,7);第第 7 7 章章 基于对象的编程基于对象的编程构造方法应包含哪些内容构造方法应包含哪些内容?(1)构造方法多半定义一些初值或内存构造方法多半定义一些初值或内存配置工作。配置工作。(2)一个类可以有多个构造方法一个类可以有多个构造方法(重载重载),根据参数的不同决定执行哪一个。根据参数的不同决定执行哪一个。(3)如果程序中没有定义构造方法如果程序中没有定义构造方法,则则创建对象时使用的是缺省构造方法创建对象时使用的是缺省构造方法,它是一个无内容的空方法。它是一个无内容的空方法。第第 7 7 章章 基于对象的编程基于对象的编程2.this和和superthis指自己这个对象;指自己这个对象;this的作用是要将自己这个对象当作参数的作用是要将自己这个对象当作参数,传送给别的对象中的方法。传送给别的对象中的方法。super指这个对象的父类指这个对象的父类super用来引用父类中的方法及变量数据。用来引用父类中的方法及变量数据。public class apple extends fruits public apple(int price)super(price);以上句子表示使用超类的构造函数生成实例以上句子表示使用超类的构造函数生成实例,这种情况下这种情况下super必须是必须是子类构造器的第一条语句。子类构造器的第一条语句。3.finalize(终结方法终结方法):Java的每个类都可以有一个终结方法,用于将资的每个类都可以有一个终结方法,用于将资源归还给系统。在垃圾回收器回收对象的内存之前,该对象的终结方法源归还给系统。在垃圾回收器回收对象的内存之前,该对象的终结方法肯定会被调用,执行此对象的结束清理工作。类的终结方法的名字总是肯定会被调用,执行此对象的结束清理工作。类的终结方法的名字总是finalize,它不接受任何参数,也不返回任何值,它不接受任何参数,也不返回任何值(既其返回值类型为既其返回值类型为void)。一个类只能有一个一个类只能有一个finalize方法。方法。finalize方法最初在方法最初在Object类中定义,它类中定义,它是一个空的方法,什么也不做。但这保证了每个类都有一个是一个空的方法,什么也不做。但这保证了每个类都有一个finalize方法,方法,以供垃圾回收器调用。以供垃圾回收器调用。第第 7 7 章章 基于对象的编程基于对象的编程例例7.3 this和和super的使用。的使用。/ExDemo.javaclass Par public void print()System.out.println(nIn Parent!);public class ExDemo extends Par public void print()System.out.println(nIn Child!);public void printAll()super.print();this.print();print();public static void main(String args)ExDemo ed=new ExDemo();ed.printAll();第第 7 7 章章 基于对象的编程基于对象的编程7.6 static类成员类成员类的每个对象中都有类实例变量的一份拷贝。类的每个对象中都有类实例变量的一份拷贝。在某种情况下,我们只需要某个变量的一份拷贝在某种情况下,我们只需要某个变量的一份拷贝供类中的所有对象共享。基于这个原因和其他一供类中的所有对象共享。基于这个原因和其他一些原因些原因,引入了引入了static类成员。类成员。static类成员代表类成员代表“类范围类范围”的信息的信息(既为类的所有成员所共享既为类的所有成员所共享)。static类成员的声明是以关键字类成员的声明是以关键字static开始的。开始的。尽管尽管static类变量是乎像全局变量,但类变量是乎像全局变量,但static类变类变量只具有类作用域。量只具有类作用域。public static类成员可通过类类成员可通过类的任一对象引用访问,也可利用类名加点操作符的任一对象引用访问,也可利用类名加点操作符(例如例如Math.random()访问。实际上,即使一个类访问。实际上,即使一个类的对象不存在,的对象不存在,static类成员也会存在,执行时类类成员也会存在,执行时类被装入内存后就有了它们。被装入内存后就有了它们。要想访问要想访问private static类成员,必须提供类成员,必须提供public static方法。方法。第第 7 7 章章 基于对象的编程基于对象的编程例例7.4 用用Employee类和类和EmployeeTest类,演示类,演示static成员及垃圾回收。成员及垃圾回收。/Fig.8.20:Employee.javapublic class Employee extends Object private String firstName;private String lastName;private static int count;/number of objects in memory public Employee(String first,String last)firstName=first;lastName=last;+count;/increment static count of employees System.out.println(Employee object constructor:+firstName+lastName);protected void finalize()-count;/decrement static count of employees System.out.println(Employee object finalizer:+firstName+lastName+;count=+count);public String getFirstName()return firstName;public String getLastName()return lastName;public static int getCount()return count;/end class Employee第第 7 7 章章 基于对象的编程基于对象的编程/Fig.8.21:EmployeeTest.javaimport javax.swing.*;public class EmployeeTest public static void main(String args)String output=Employees before instantiation:+Employee.getCount();Employee e1=new Employee(Susan,Baker);Employee e2=new Employee(Bob,Jones);output+=nnEmployees after instantiation:+nvia e1.getCount():+e1.getCount()+nvia e2.getCount():+e2.getCount()+nvia Employee.getCount():+Employee.getCount();output+=nnEmployee 1:+e1.getFirstName()+e1.getLastName()+nEmployee 2:+e2.getFirstName()+e2.getLastName();e1=null;e2=null;System.gc();/显式调用垃圾回收器显式调用垃圾回收器 output+=nnEmployees after System.gc():+Employee.getCount();JOptionPane.showMessageDialog(null,output,Static Members and Garbage Collection,JOptionPane.INFORMATION_MESSAGE);System.exit(0);/end class EmployeeTest

    注意事项

    本文(第7章基于对象编程.ppt)为本站会员(hyn****60)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开