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

类型Java 2实用教程第6版PPT1第3章 面向对象(上).pptx

  • 文档编号:1100900
  • 上传时间:2023-11-18
  • 格式:PPTX
  • 页数:121
  • 大小:1.08MB
  • 配套讲稿:

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

    特殊限制:

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

    关 键  词:
    Java 2实用教程第6版PPT1第3章 面向对象上 实用教程 PPT1 面向 对象
    资源描述:

    1、学习目标/Target掌握类的定义,能够独立完成类的定义掌握对象的创建和使用,能够完成对象创建,用对象访问对象属性和方法了解面向对象的思想,能够说出面向对象的三个特性掌握对象的引用传递,能够独立实现对象的引用传递熟悉Java的4种访问控制权限,能够在类中灵活使用访问控制权限学习目标/Target掌握构造方法的定义和重载,能够独立定义构造方法,重载构造方法熟悉this关键字,能够使用this调用成员属性、成员方法、构造方法熟悉类的封装特性,能够说出为什么要封装以及如何实现封装熟悉static关键字的使用,能够说出静态(属性、方法、代码块)的特点了解代码块的应用,能够说出普通代码块和构造块的特点章

    2、节概述/Summary前面学习的知识都属于Java的基本程序设计范畴,属于结构化的程序开发,若使用结构化方法开发软件,其稳定性、可修改性和可重用性都比较差。在软件开发过程中,用户的需求随时都有可能发生变化,为了更好地适应用户需求的变化,Java语言采用了面向对象的程序设计思想。在接下来的章节中,将为读者详细讲解Java语言面向对象的特性。目录/Contents010203面向对象的思想类与对象封装性04构造方法目录/Contents0506this关键字static关键字07代码块面向对象的思想3.13.1 面向对象的思想 先定一个小目标!了解面向对象的思想,能够说出面向对象的三个特性3.1

    3、面向对象的思想面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象映射现实中的事物,使用对象的关系描述事物之间的联系,这种思想就是面向对象。面向对象是把构成问题的事物按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。当然,一个应用程序会包含多个对象,通过多个对象的相互配合实现应用程序的功能,这样当应用程序功能发生变动时,只需要修改个别的对象就可以了,从而使代码维护起来更加方便。面向对象思想3.1 面向对象的思想1封装性封装是面向对象的核心思想,它有两层含义,第一层含义是指把对象的属性和行为看成是一个密不

    4、可分的整体,将这两者“封装”在一起(即封装在对象中);另外一层含义指“信息隐藏”,将不想让外界知道的信息隐藏起来。例如,驾校的学员学开车,只需要知道如何操作汽车,无需知道汽车内部是如何工作的。3.1 面向对象的思想2继承性继承性主要描述的是类与类之间的关系,通过继承,可以在原有类的基础上,对原有类的功能进行扩展。例如,有一个汽车类,该类描述了汽车的普通特性和功能。进一步再产生轿车类,而轿车类中不仅应该包含汽车的特性和功能,还应该增加轿车特有的功能,这时,可以让轿车类继承汽车类,在轿车类中单独添加轿车特性和方法就可以了。继承不仅增强了代码的复用性、提高了开发效率,还降低了程序产生错误的可能性,为

    5、程序的维护以及扩展提供了便利。3.1 面向对象的思想3多态性多态性是指在一个类中定义的属性和方法被其他类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。例如,汽车和飞机同样作为交通工具,汽车在陆地上行驶,而飞机在天空中飞行,所以不同的对象,所表现的行为是不一样的。多态的特性使程序更抽象、便捷,有助于开发人员设计程序时分组协同开发。类与对象3.23.2.1 类的定义 先定一个小目标!掌握类的定义,能够独立完成类的定义3.2.1 类的定义在面向对象的思想中最核心的就是对象,创建对象的前提是需要定义一个类,类是Java中一个重要的引用数据类型,

    6、也是组成Java程序的基本要素,所有的Java程序都是基于类的。类是对象的抽象,用于描述一组对象的共同特征和行为。类中可以定义成员变量和成员方法,其中,成员变量用于描述对象的特征,成员变量也被称作对象的属性;成员方法用于描述对象的行为,可简称为方法。类的定义3.2.1 类的定义类的语法格式定义类的定义格式如下所示:class 类名 成员变量;成员方法;3.2.1 类的定义class Student String name;/声明String类型的变量name int age;/声明int类型的变量age String sex;/声明String类型的变量sex/定义 read()方法void

    7、read()System.out.println(大家好,我是+name+,我在看书!);以上代码中定义了一个学生类。其中,Student是类名,name、age、sex是成员变量,read()是成员方法,在成员方法read()中可以直接访问成员变量name。根据上述格式定义一个学生类,成员变量包括姓名(name)、年龄(age)、性别(sex);成员方法包括读书read()。学生类定义的示例代码如下所示。脚下留心局部变量与成员变量的不同在Java中,定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。如果在某一个方法中定义的局部变量与成员变量同名,这种情况是允许的,此时,在方法

    8、中通过变量名访问到的是局部变量,而并非成员变量。请阅读下面的示例代码:脚下留心局部变量与成员变量的不同class Student int age=30;/类中定义的变量被称作成员变量void read()int age=50;/方法内部定义的变量被称作局部变量 System.out.println(大家好,我+age+岁了,我在看书!);上述代码中,在Student类的read()方法中有一条打印语句,打印了变量age,此时打印的是局部变量age,也就是说当有另外一个程序调用read()方法时,输出的age值为50,而不是30。3.2.2 对象的创建与使用 先定一个小目标!掌握对象的创建和使用

    9、,能够独立完成对象的创建,并通过对象访问对象属性和方法3.2.2 对象的创建与使用上一节定义了一个Student类,要想使用一个类则必须要创建该类的对象。在Java程序中可以使用new关键字创建对象,使用new关键字创建对象的具体格式如下:对象的创建格式类名 对象名称=null;对象名称=new 类名();3.2.2 对象的创建与使用上述格式中,创建对象分为声明对象和实例化对象两步,也可以直接通过下面的方式创建对象,具体格式如下:类名 对象名称=new 类名();例如,创建Student类的实例对象,示例代码如下:Student stu=new Student();3.2.2 对象的创建与使用

    10、class Student String name;/声明姓名属性void read()System.out.println(大家好,我是+name+,我在看书!);public class Test public static void main(String args)Student stu=new Student();/创建并实例化对象创建对象示例代码了解对象的创建之后,就可以使用类创建对象,示例代码如下。3.2.2 对象的创建与使用上述代码在main()方法中实例化了一个Student对象,对象名称为stu。使用new关键字创建的对象是在堆内存分配空间。stu对象的内存分配如下图所示。

    11、示例代码内存分析3.2.2 对象的创建与使用创建对象后,可以使用对象访问类中的某个属性或方法,对象属性和方法的访问通过“.”运算符实现,具体格式如下。对象属性和方法的访问方式对象名称.属性名对象名称.方法名3.2.2 对象的创建与使用案例演示下面通过一个案例学习对象属性的访问和方法的访问。具体代码如下所示。1class Student 2String name;/声明姓名属性 3void read()4System.out.println(大家好,我是+name);5 6 7public class Example01 8public static void main(String args)

    12、9Student stu1=new Student();/创建第一个Student对象 10Student stu2=new Student();/创建第二个Student对象 11stu1.name=小明;/为stu1对象的name属性赋值 12stu1.read();/调用对象的方法 13stu2.name=李华;14stu2.read();15 163.2.2 对象的创建与使用案例运行结果运行代码,控制台显示的运行结果如下图所示。3.2.2 对象的创建与使用由上图所示的运行结果分析可知,stu1对象和stu2对象在调用read()方法时,打印的name值不相同。这是因为stu1对象和st

    13、u2对象在系统内存中是两个完全独立的个体,它们分别拥有各自的name属性,对stu1对象的name属性进行赋值并不会影响到stu2对象name属性的值。案例运行结果分析3.2.2 对象的创建与使用stu1对象和stu2对象的内存变化如下图所示。由图可知,程序分别实例化了两个Student对象stu1和stu2,stu1和stu2分别指向各自的堆内存空间。对象运行后内存变化分析3.2.3 对象的引用传递 先定一个小目标!掌握对象的引用传递,能够说明引用传递对象在内存中的变化3.2.3 对象的引用传递类属于引用数据类型,引用数据类型就是指内存空间可以同时被多个栈内存引用。下面通过一个案例详细讲解对

    14、象的引用传递,具体代码如下所示。1class Student 2String name;/声明姓名属性 3 int age;/声明年龄属性 4void read()5System.out.println(大家好,我是+name+,年龄+age);6 7 8class Example02 9public static void main(String args)案例演示3.2.3 对象的引用传递 10Student stu1=new Student();/创建stu1对象并实例化 11Student stu2=null;/创建stu2对象,但不对其进行实例化 12stu2=stu1;/stu1给

    15、stu2分配空间使用权 13stu1.name=小明;/为stu1对象的name属性赋值 14stu1.age=20;15stu2.age=50;16stu1.read();/调用对象的方法 17stu2.read();18 19案例演示3.2.3 对象的引用传递案例运行结果运行代码,控制台显示的运行结果如下图所示。3.2.3 对象的引用传递由上图所示的运行结果分析可知,stu1对象和stu2对象输出的内容是一致的,这是因为stu2对象获得了stu1对象的堆内存空间的使用权。在文件3-2中,第14行代码对stu1对象的age属性赋值之后,第15行代码通过stu2对象对age属性值进行了修改。实

    16、际上所谓的引用传递,就是将一个堆内存空间的使用权给多个栈内存空间使用,每个栈内存空间都可以修改堆内存空间的内容。案例运行结果分析3.2.3 对象的引用传递stu1对象和stu2对象引用传递的内存分配如下图所示。对象引用传递内存分配3.2.3 对象的引用传递第一步声明对象stu1和stu2,并使用new创建Student对象赋值给stu1,使用new创建对象时会开辟一个堆内存空间,对象stu1指向开辟的堆内存地址0 x001;第二步通过对象stu1给对象stu2分配内存空间使用权,对象stu2指向堆内存地址0 x001;第三步由于对象stu1指向堆内存地址0 x001,所以对象stu1修改属性值时,就是修改堆内存中对象的值,堆内存中name的值修改为“小明”,age的值修改为20;第四步与第三步类似,对象stu2也指向堆内存地址0 x001,堆内存中age的值修改为50,最终结果对象stu1的age属性值也是50。注意:一个栈内存空间只能指向一个堆内存空间,如果想要再指向其他堆内存空间,就必须先断开已有的指向才能分配新的指向。3.2.3 对象的引用传递3.2.4 访问控制权限 先定一个小

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java 2实用教程第6版PPT1第3章 面向对象(上).pptx
    链接地址:https://www.tudouwenku.com/doc/1100900.html

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

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

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

    兔兜文库
    收起
    展开