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

    java概述课件08对象和类.ppt

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

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

    java概述课件08对象和类.ppt

    1第 8 章 对象和类2引言学习过前几章的内容后,我们已经能够使用选择、循环、方法和数组解决很多程序设计问题这些java的特性还不足够用来开发图形用户界面和大型软件系统,假设希望开发一个GUI(图形用户界面)该如何用程序实现它呢?3学习目标 描述对象和类,使用类来建模对象(8.2节)使用 UML 图形符号来描述类和对象(8.2节)演示如何定义类以及如何创建对象(8.3节)使用构造方法创建对象(8.4节)通过对象引用变量访问对象(8.5节)使用引用类型定义引用变量(8.5.1节)使用对象成员访问操作符(.)来访问对象的数据和方法(8.5.2节)定义引用类型的数据域并给对象的数据域赋默认值(8.5.3节)区分对象引用变量和基本类型变量的不同(8.5.4节)使用java类库中的Date类、Random 类和JFrame 类(8.6节)区分实例变量与静态变量、实例方法和静态方法的不同(8.7节)定义有恰当的get方法和set方法的私有数据域(8.8节)封装数据域以便于类的维护(8.9节)开发带对象参数的方法,区分基本类型参数和对象类型参数的不同(8.10节)在数组中存储和处理对象(8.11节)4面向对象编程概念面向对象程序设计(OOP):使用对象进行程序设计对象(objects):代表现实世界中可以明确标识的一个实体例如:一个学生、一张桌子、一个圆、一个按钮甚至一笔贷款都可以看作是一个对象每个对象都有一个独特的标识、状态和行为 5类对象具有状态和行为定义了对象,就定义了对象的状态和行为6类Java类使用变量定义数据域,使用方法定义动作除此之外,类还提供了一种称为构造方法(constructor)的特殊类型的方法,调用它可以创建一个新对象构造方法本身是可以完成任何动作的,但是设计构造方法的初衷还是为了完成初始化动作7类8UML 类图9举例:定义类和创建类目的:展示创建对象,访问数据,以及使用方法TestCircle1Run10举例:定义类和创建类目的:展示创建对象,访问数据,以及使用方法TestTVRunTV11构造方法构造方法Circle()Circle(double newRadius)radius=newRadius;构造函数是一种特殊的方法,用来构造对象。12构造方法,续构造方法的作用是初始化对象构造方法名必须和类名相同 构造方法没有返回类型,甚至连void也没有 构造方法在创建一个对象时,使用new操作符调用13使用构造方法构造对象new ClassName();例:new Circle();new Circle(5.0);14默认构造方法一个类可以不定义构造方法,在这种情况下,类中隐含定义一个方法体为空的无参构造方法这个构造方法称为默认构造方法当且仅当类中没有明确定义任何构造方法时才会自动提供它15通过对象引用变量引用一个对象,分配对象的引用变量声明一个引用变量,使用语法:ClassName objectRefVar;例:Circle myCircle;16声明/创建对象:一步完成ClassName objectRefVar=new ClassName();例:Circle myCircle=new Circle();创建对象分配对象引用 17访问对象 引用对象的数据 objectRefVar.data 例:myCircle.radius 调用对象的方法 objectRefVar.methodName(arguments)例:myCircle.getArea()18跟踪代码Circle myCircle=new Circle(5.0);SCircle yourCircle=new Circle();yourCircle.radius=100;声明myCircleno valuemyCircle19跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;创建circleno valuemyCircle20跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;reference value将对象引用分配给myCirclemyCircle21跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;no valueyourCircle声明 yourCirclereference valuemyCircle22跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;创建一个新 Circle 对象reference valuemyCircleno valueyourCircle23跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;将对象引用分配给yourCirclereference valuemyCircleyourCirclereference value24跟踪代码,续。Circle myCircle=new Circle(5.0);Circle yourCircle=new Circle();yourCircle.radius=100;改变yourCircle半径reference valuemyCircleyourCirclereference value25注意 回想一下,我们曾使用:Math.methodNamemethodName(参数)(例如:Math.pow(3,2.5)来调用 Math 类中的方法。那么能否用 Circle1.getArea()来调用getArea()方法呢?答案是不能。本章之前所有的方法是静态方法,使用静态定义的关键字static,然而getArea()方法非静态,它必须用一个对象调用:objectRefVar.methodName(参数)(例如:myCircle.getArea()26引用数据域数据域也可能是引用型的。例如:下面的Student类包含一个String类型的name数据域,String是一个预定义的Java类。public class Student String name;/name has default value null int age;/age has default value 0 boolean isScienceMajor;/isScienceMajor has default value false char gender;/c has default value u000027 null 值如果一个引用类型的数据域没有引用任何对象,那么这个数据字域就有一个特殊的Java值,null28数据域的默认值引用类型数据域的默认值是null,数值类型数据域的默认值是0,boolean类型数据域的默认值是false,而char类型数据域的默认值是 u0000。但是Java没有给方法中的局部变量赋默认值。public class Test public static void main(String args)Student student=new Student();System.out.println(name?+student.name);System.out.println(age?+student.age);System.out.println(isScienceMajor?+student.isScienceMajor);System.out.println(gender?+student.gender);29例如public class Test public static void main(String args)int x;/x has no default value String y;/y has no default value System.out.println(x is +x);System.out.println(y is +y);Compilation error:variables not initializedJava没有给方法中的局部变量赋默认值。30基本类型变量和引用类型变量的区别31基本类型变量和引用类型变量的赋值32垃圾回收如图所示,执行完赋值语句C1=C2之后,C1指向C2所指的同一个对象C1以前引用的对象就不再有用,因此,它现在就成为垃圾(garbage)垃圾会占用内存空间,java运行系统会检测垃圾并自动回收它所占的空间,这个过程称为垃圾回收(garbage collection)。33垃圾回收,续。提示:如果我们认为不再需要某个对象,就可以显示的给该对象引用变量赋null值如果某对象没有被任何引用变量所引用,java虚拟机将自动回收它所占的空间。34Date 类Java提供了一个系统的封装java.util的日期和时间的日期类。您可以使用Date类创建一个实例为当前日期和时间,并使用它的toString方法返回的该日期和时间以字符串的形式。35 Date 类举例例如,代码:java.util.Date date=new java.util.Date();System.out.println(date.toString();显示一个字符串:Sun Mar 09 13:50:19 EST 200336Random 类我们可以使用Math.random()获取一个0.0到1.0(不包括1.0)andom()类。37Random 类示例如果两个Random对象有相同的种子,那它们将产生相同的数列。例如:下面的代码都用相同的种子3来产生两个Random对象。Random random1=new Random(3);System.out.print(From random1:);for(int i=0;i 10;i+)System.out.print(random1.nextInt(1000)+);Random random2=new Random(3);System.out.print(nFrom random2:);for(int i=0;i 10;i+)System.out.print(random2.nextInt(1000)+);From random1:734 660 210 581 128 202 549 564 459 961 From random2:734 660 210 581 128 202 549 564 459 96138显示 GUI 组件开发程序创建图形用户界面时,将会用到像JFrame JButton、JRadioButton、JComboBox和JList这样的Java类来创建框架、单选按钮、组合框、列表,等。下面是一个示例,该示例用JFrame创建两个窗体。TestFrameRun39跟踪代码JFrame frame1=new JFrame();frame1.setTitle(Window 1);frame1.setSize(200,150);frame1.setVisible(true);JFrame frame2=new JFrame();frame2.setTitle(Window 2);frame2.setSize(200,150);frame2.setVisible(true);声明、创建和分配一个框架。referenceframe1:JFrametitle:width:height:visible:40跟踪代码JFrame frame1=new JFrame();frame1.setTitle(Window 1);frame1.setSize(200,150);frame1.setVisible(true);JFrame frame2=new JFrame();frame2.setTitle(Window 2);frame2.setSize(200,150);frame2.setVisible(true);referenceframe1:JFrametitle:Window 1width:height:visible:设置标题属性41跟踪代码JFrame frame1=new JFrame();frame1.setTitle(Window 1);frame1.setSize(200,150);frame1.setVisible(true);JFrame frame2=new JFrame();frame2.setTitle(Window 2);frame2.setSize(200,150);frame2.setVisible(true);referenceframe1:JFrametitle:Window 1width:200height:150visible:设置尺寸属性42跟踪代码JFrame frame1=new JFrame();frame1.setTitle(Window 1);frame1.setSize(200,150);frame1.setVisible(true);JFrame frame2=new JFrame();frame2.setTitle(Window 2);frame2.setSize(200,150);frame2.setVisible(true);referenceframe1:JFrametitle:Window 1width:200height:150visible:true设置是否可见属性43跟踪代码JFrame frame1=new JFrame();frame1.setTitle(Window 1);frame1.setSize(200,150);frame1.setVisible(true);JFrame frame2=new JFrame();frame2.setTitle(Window 2);frame2.setSize(200,150);frame2.setVisible(true);referenceframe1:JFrametitle:Window 1width:200height:150visible:truereferenceframe2:JFrametitle:width:height:visible:声明、创建和分配另一个框架44跟踪代码JFrame frame1=new JFrame();frame1.setTitle(Window 1);frame1.setSize(200,150);frame1.setVisible(true);JFrame frame2=new JFrame();frame2.setTitle(Window 2);frame2.setSize(200,150);frame2.setVisible(true);referenceframe1:JFrametitle:Window 1width:200height:150visible:truereferenceframe2:JFrametitle:Window 2width:height:visible:设置标题属性45跟踪代码JFrame frame1=new JFrame();frame1.setTitle(Window 1);frame1.setSize(200,150);frame1.setVisible(true);JFrame frame2=new JFrame();frame2.setTitle(Window 2);frame2.setSize(200,150);frame2.setVisible(true);referenceframe1:JFrametitle:Window 1width:200height:150visible:truereferenceframe2:JFrametitle:Window 2width:200height:150visible:设置尺寸属性46跟踪代码JFrame frame1=new JFrame();frame1.setTitle(Window 1);frame1.setSize(200,150);frame1.setVisible(true);JFrame frame2=new JFrame();frame2.setTitle(Window 2);frame2.setSize(200,150);frame2.setVisible(true);referenceframe1:JFrametitle:Window 1width:200height:150visible:truereferenceframe2:JFrametitle:Window 2width:200height:150visible:true设置是否可见47窗口中添加 GUI 组件我们可以给窗口添加按钮、标签、文本域、复选框和组合框这样的组件组件是使用类来定义的下面是一个示例来创建按钮、标签、文本域、复选框、单选按钮、组合框GUIComponentsRun48实例变量和方法实例变量属于一个特定的实例调用类中方法的一个实例49静态变量、常量和方法静态变量被类的所有实例共享静态方法不绑定到一个特定的对象静态常量是最终变量,被类的所有实例共享要声明一个静态变量或定义一个静态方法,就要在这个变量或方法的声明中使用修饰符static50静态变量、常量和方法,续51使用实例变量、类变量和方法示例 目的:显示实例和类变量的使用。这个示例用一个类变量numberOfObjects跟踪Circle对象创建的数量。TestCircle2RunCircle252可见性修饰符和访问器/修改器方法默认情况下类、方法和数据域是可以被同一个包中的任何一个类访问的。public类、数据或方法可被任一包 的类访问 private 数据或方法只能在它自己的类中访问 get 和 set 方法通常用来读取和修改私有数据域53私有的修饰符将访问权限限定在它自己的类内,默认修饰符将访问权限限定在包内,而公共的修饰符没有限定权限。54注意一个对象不能访问私有成员,如(b)所示。但是,如果是自己的类中声明的对象,是可以的,如(a)所示。55为什么数据域应该设为私有?l保护数据l使类易于维护56数据域封装示例Circle3RunTestCircle357给方法传递对象参数给方法传递对象参数通过值传递参数类型值(值传递给参数)通过值传递引用类型值(值是对象的引用)TestPassObjectRun58给方法传递对象参数,续。给方法传递对象参数,续。59对象数组 Circle circleArray=new Circle10;一个对象数组实际上是一个引用变量数组。因此调用circleArray1.getArea()实际上调用了两个层次的引用,如下图所示。circleArray引用了整个数组,circleArray1引用了一个Circle对象。60对象数组,续。Circle circleArray=new Circle10;61对象数组,续统计圆的总面积 TotalAreaRun

    注意事项

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

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




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

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

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

    收起
    展开