java 对象 类课件,Java电子教案(PPT) 第6章类与对象课件

41528d3028836879cd698677c3999917.gifJava电子教案(PPT) 第6章类与对象课件

•在日常生活中,在盖房子之前要首先设计一个建筑图纸, 然后根据图纸来盖房子。所谓类,好比在日常生活中描述 一个物品的信息,如房子的建筑图纸。而对象就好比实实 在在的房子。本章将要介绍类的定义、类的成员变量的定 义和方法的定义、方法的参数等知识。通过本章的学习,读 者应该能够完成如下几个目标。 •了解什么是面向对象。 •熟悉 Java中的类并能够进行类的操作。 •掌握成员变量和局部变量的区别。 •掌握 Java程序中的方法的创建和使用。 •所谓面向对象,是指编写程序的时候要围绕着一个对象的 功能进行编写的。本节将要介绍面向对象的特点以及与面 向过程编程的区别。 •提示:继承是发生在类与类之间的。继承可以是单继承, 也可以多层继承。 •多态是指对象在运行期和编译期具有两种状态,多态的使 用使代码具有了更多的灵活性和重用性。 •抽象是指在定义类的时候,确定了该类的一些行为和动作 。比如自行车可以移动,但怎么移动不进行说明。这种提 前定义一些动作和行为的类为抽象的。 •封装是指对一件物品的描述信息是这个物品所特有的,是 不能让外界看到的一些成员变量和方法。在Java里成员变量 和方法就被封装在类里,需要通过一些特有的方法访问它 们。 •面向过程是指在遇到问题的时候,怎么去解决这个问题, 而分析问题的步骤,就是解决这个问题的方法,是通过方 法一步一步来完成的。面向对象是指在遇到问题的时候, 把问题分解成各自独立功能的类,而这个类是完成各自问 题的。总结如下所述。 •面向过程和面向对象最明显的区别就是,面向对象是按照 要完成的功能来实现的,而面向过程是按照解决这个问题 的步骤来实现的。 •面向对象是按照程序中的功能进行划分的。 •面向过程是按照问题的解决思路来划分的,是一步一步来 解决问题的。 •面向过程更看重的是完成问题的过程。 •面向对象更看重的是功能,通过各种功能模块的组合来完 成问题。 •所谓类是一种抽象的东西,描述的是一个物品的完整信息 。比如房子和图纸的关系。在Java里,图纸就是类,定义了 房子的各种信息,而房子是类的实体。 •在定义一些类的时候,如何使用它们呢?这里需要分为多 种情况。定义的类可以在一个包下面,也可以不在一个包 下面,这在使用时是不同的。类又分为已有类和自定义类 ,它们之间的使用也是有区别的。下面就通过范例来讲解 在不同情况下如何使用类。 •【范例】在同目录下使用类。首先是定义一个bike类,在该 类中不存在任何成员变量和方法,这里只是演示如何在同 一目录下使用类。 •示例代码 •01 //bike.java •02 class bike •03 { •04 } •接下来定义一个使用bike类的类。 •01 //testBike.java •02 //在testBike类里使用了 bike类 •03 class testBike •04 { •05bike b = new bike(); •06 } •所谓成员变量就是这个类里定义的一些私有的变量.,这些 变量是属于这个类的。就好比日常生活中的自行车的大小 ,即这个车子是 26还是 28的,这个尺寸就是自行车的成员 变量,是描述这个自行车的。下面开始介绍成员变量。 •代码讲解 •通过 new关键字来创建这个bike类的对象,用 bike类的对象 引用 b来给其成员变量赋值。因为成员变量是在这个类实例 化后才能访问到的。成员变量赋完值后,调用println语句来 打印并显示结果。 •通过 new关键字来创建一个对象后,会有一个系统默认的初 始值。所以说不管有没有在创建成员变量的时候给变量一 个值,系统都会有一个默认的值。 •成员变量和对象的引用在申明的时候不对其赋初值,那么 系统都会赋一个初值,具体的信息如表所示。 •局部变量和成员变量很相似都是描述信息的。局部变量和 成员变量的不同点就是局部变量是在方法体里创建的,在 方法体外是访问不到这个变量的。 •局部变量描述的是这个方法体内的属性的,而成员变量描 述的是这个对象里的属性的,它们之间的区别,即访问区 别如下: •成员变量可以被 public、protected、default、private、static、 final修饰符修饰。 •局部变量可以被 final修饰符修饰,但不能修饰为public、 protected、default、private、static。 •成员变量是在堆里进行创建的,而局部变量是在栈里进行 创建的。 •成员变量是系统默认值。 •局部变量没有系统默认值,必须手动赋值。 •每个人都有走、吃和睡等动作。在Java中,所谓方法就好比 日常生活中的一个动作,是完成一系列操作的。在Java中也 是如此,方法收到对象的信息,进行处理的操作。 •20public static void changeString(String str) •21{ •22str = new String(“hi“); •23str = str + “china!“; •24} •25 } •当把对象引用 s传递到一个方法后,这个方法可以改变这个 对象的属性,并能返回相应的改变。但这个对象引用指向 的这个字符串 s是永远不会改变的。这里传递对象引用后, 又通过这个引用去创建了一个新的String类型的字符串,这 两个字符串在内存中当然不是同一个了。 •所谓对象引用就是该引用名称指向内存中的一个对象,通 过调用该引用即可完成对该对象的操作。本节将要讨论一 些操作对象引用中将出现的一些常见问题。如不存在的对 象、空引用、对象间的比较等问题,下面分别来说明。 •运行将会发生如下异常。 •Exception in thread “main“ java.lang.Error: Unresolved compilation problem: •t.a cannot be resolved or is not a field •at test.main(test.java:7) •【代码解析】对象引用t要访问的是 a这个成员变量,而a没 有声明,在编译的时候将提示错误信息。在错误提示里, 已经提示为 main方法里的第 7行,只需查看这里就能找到错 误的所在。 •ArrayList类为一个集合类和数组很相似,都是用来存储数据 用的。错误提示在main方法里的 20行,提示为 NullPointerException,即空指针错误。对象引用al声明为一 个null值,表示这个对象并没有创建其对象的实例,只是一 个引用而已。当操作任意一个为null的对象的时候都将提示 空指针错误。 •对本节的内容进行总结,可以概括成如下几点。 •任何操作的对象的值为null,都将出现空指针错误,即 “NullPointException”。 •NullPointerException错误是运行期的错误,在编译的时候系 统是不进行提示的。 •在声明一个对象引用后尽量为其赋一个初值,来避免空指 针的出现。 •equals方法在这里比较的是对象的引用,因为equals方法是 Object类的方法,而任何类的父类都为Object,equals方法是 继承过来的。继承将在后面的章节里做详细讲解。用new关 键字创建的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值