书签 分享 收藏 举报 版权申诉 / 96

类型Java程序设计教程及实验指导 课件第3章 类与对象.ppt

  • 文档编号:1100893
  • 上传时间:2023-11-18
  • 格式:PPT
  • 页数:96
  • 大小:1.01MB
  • 配套讲稿:

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

    特殊限制:

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

    关 键  词:
    Java程序设计教程及实验指导 课件第3章 类与对象 Java 程序设计 教程 实验 指导 课件 对象
    资源描述:

    1、3.1 面向对象概述 面向过程方法是围绕实现处理功能的“过程”来构造系统的。然而,用户需求的变化大部分是针对功能的,因此,这种变化对于基于过程的设计来说是灾难性的。用这种方法设计出来的系统结构常常是不稳定的,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。3.1 面向对象概述 面向对象的基本思想是认为世界是由各种各样具有自己的功能和内部状态的对象所组成;不同对象之间的相互作用和通信构成了完整的现实世界。因此,软件系统也是由一些具有若干内部状态和功能的对象组成,对象之间通过合作(调用对方的功能)来完成系统功能。3.1.1 面向对象的三要素 类、对象和继承是面向对象

    2、的三要素。1、对象、对象例如:一个时钟对象例子对象的属性:属性名 属性值时 18分 30秒 10对象的行为:设置时、设置分、设置秒、显示时间。3.1.1 面向对象的三要素 2、类、类图3-1 时钟类的抽象3.1.1 面向对象的三要素+setHour()+setMinute()+setSecond()+dispTime()-run()-hour:int-minute:int-second:intClock图3-2 时钟类的类图hour:int=18minute:int=30second:int=10北京时钟:Clockhour:int=6minute:int=30second:int=10纽约时

    3、钟:Clock图3-3 时钟类的两个对象图3.1.1 面向对象的三要素 3、继承、继承表示继承关系图3-4 类的继承体系人人教教师师学学生生任任课课教教师师教教辅辅人人员员本本科科生生研研究究生生父类子类3.1.2 面向对象的特性 1、封装性、封装性3.1.2 面向对象的三大特性 2、继承性、继承性 继承(Inheritance)是一种联结类与类的层次模型。继承性是指特殊类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即特殊类中不必重新定义已在一般类中定义过的属性和行为,而它却自动地、隐含地拥有其一般类的属性与行为。3.1.2 面向对象的三大特性 3、多态性(、多态性(Polymo

    4、rphism)多态有编译时多态和运行时多态。编译时多态是通过方法重载实现;运行时多态是通过方法覆盖实现(子类覆盖父类方法)。通常说的多态是指运行时多态性,是指同一个继承体系中不同类的对象收到相同的消息时产生多种不同的行为方式。3.2 类和对象 3.2.1 类的定义及构成类定义的一般形式类定义的一般形式public class /下面是属性定义public|protected|private ;/其它属性定义/下面是方法定义 public|protected|private 方法名(类型 参数1,类型 参数2,)/方法体/其它方法定义3.2.1 类的定义及构成示例:定义一个简单的示例:定义一个简

    5、单的Person类类 class Person private String name;private int age;public void setName(String name)this.name=name;public void setAge(int age)this.age=age;public void speak()System.out.println(I am+name);System.out.println(I am+age+years old);3.2.2 对象的生成生成对象一般有两种方式:方式方式1:类名 对象引用名=null;/声明对象引用对象引用名=new 类名();

    6、/实例化对象 例如:Person p1=null;p1=new Person();方式方式2:类名 对象引用名=new 类名();/声明对象引用和实例化对象一步完成 例如:Person p1=new Person();注意:注意:对象引用不是对象,声明对象引用只是分配一个引用空间(用来存放对象的地址)。3.2.3 对象的使用public class ObjectCreateDemopublic static void main(String args)Person p1=new Person();p1.setName(张三);p1.setAge(20);p1.speak();/p1.name=

    7、张三;/错误,不能访问对象的 非public成员/p1.age=20;/错误,不能访问对象的 非public成员3.2.3 对象的使用3.2.4 对象的清除public class ObjectCreateDemopublic static void main(String args)Person p1=new Person();/p1指向一个新建的对象Person p2=new Person();/p2指向一个新建的对象p1.setName(张三);p1.setAge(20);p2.setName(李四);p2.setAge(30);System.out.println(p1指向地址:+p1

    8、);System.out.println(p2指向地址:+p2);p2=p1;/让p2指向p1所指向的对象,p2原来所指向的对象成为了垃圾对象System.out.println(在p2=p1后,p2指向地址:+p2);3.2.4 对象的清除3.2.4 对象的清除程序的运行结果如下:p1指向地址:Person5c8da962p2指向地址:Person512ddf17在p2=p1后,p2指向地址:Person5c8da962 3.3 成员方法3.3.1 成员方法的定义public|protected|private 方法名(类型 参数1,类型 参数2,)/方法体例如:public void pr

    9、int()System.out.println(你好!);3.3.2 成员方法的调用class A public void print()System.out.println(print 被调用了);public class MethodInvokeDemopublic static void main(String args)A a=new A();System.out.println(a对象的print 被调用前);a.print();/调用a对象的print()方法System.out.println(a对象的print 被调用后);程序执行结果如下:a对象的print 被调用前prin

    10、t 被调用了a对象的print 被调用后3.3.3 使用return语句返回一个值 当方法需要返回值的时候,方法体中必须有相应的return语句向方法的调用者返回和返回类型一致的数据。return语句只能返回一个值。当方法体中有return语句时,遇到return语句方法执行就结束了。3.3.4 访问器getter方法和更改器setter方法class Person private String name;private int age;public Person()public String getName()return name;public int getAge()return age

    11、;public void setName(String name)this.name=name;public void setAge(int age)this.age=age;提示提示:getter方法和setter方法在Eclipse中可以自动生成。3.3.5 成员方法的参数及传值【实例实例3-5】简单数据类型参数传递class A public void setX(int x)/x是形参System.out.println(传进来的值 x=+x);x=5;/形参改变了System.out.println(设置后 x=+x);3.3.5 成员方法的参数及传值public class Meth

    12、odArgumentDemo1 public static void main(String args)int m=2;A a=new A();System.out.println(调用setX方法前:m=+m);a.setX(m);/m是实参System.out.println(调用setX方法后:m=+m);3.3.5 成员方法的参数及传值程序执行结果如下:调用setX方法前:m=2传进来的值 x=2设置后 x=5调用setX方法后:m=23.3.5 成员方法的参数及传值【实例实例3-6】引用数据类型参数传递class A private int intValue;public int g

    13、etIntValue()return intValue;public void setIntValue(int x)intValue=x;3.3.5 成员方法的参数及传值public class MethodArgumentDemo2 public static void change(A a)/a是形参a.setIntValue(100);public static void main(String args)A a1=new A();a1.setIntValue(50);System.out.println(调用change方法前 a1中intValue的值为:+a1.getIntValu

    14、e();change(a1);/a1是实参是实参System.out.println(调用change方法后 a1中intValue的值为:+a1.getIntValue();3.3.5 成员方法的参数及传值程序执行结果如下:调用change方法前 a1中intValue的值为:50调用change方法后 a1中intValue的值为:1003.3.5 成员方法的参数及传值3.3.6 方法重载(Overload)【实例实例3-7】方法重载的例子class MethodOverloading void receive(int i)System.out.println(Receive one in

    15、t data:);System.out.println(i=+i);void receive(int x,int y)System.out.println(Receive tow int datas:);System.out.println(x=+x+y=+y);void receive(double d)System.out.println(Receive one double data:);System.out.println(d=+d);void receive(String s)System.out.println(Receive a string:);System.out.print

    16、ln(s=+s);3.3.6 方法重载(Overload)public class MethodOverloadingDemo public static void main(String args)MethodOverloading mo=new MethodOverloading();mo.receive(1);/1是int型,匹配上了void receive(int i)mo.receive(2,3);/2和3是int型,匹配上了void receive(int x,int y)mo.receive(12.56);/12.56是double型,匹配上了void receive(double d)mo.receive(very interesting,isnt it?);3.3.6 方法重载(Overload)程序执行结果如下:Receive one int data:i=1Receive tow int datas:x=2 y=3Receive one double data:d=12.56Receive a string:s=very interesting,isnt it?3

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java程序设计教程及实验指导 课件第3章 类与对象.ppt
    链接地址:https://www.tudouwenku.com/doc/1100893.html

    若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理!

    copyright@2008-2023 兔兜文库 版权所有

    鲁公网安备37072502000182号  ICP备案号:鲁ICP备2021021588号-1  百度保障

    兔兜文库
    收起
    展开