第一讲面向对象程序设计_第1页
第一讲面向对象程序设计_第2页
第一讲面向对象程序设计_第3页
第一讲面向对象程序设计_第4页
第一讲面向对象程序设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一讲面向对象程序设计第一页,共四十页,2022年,8月28日Java工程师考试试题说明一、题型说明1、在线考试(100分)单项选择题20题多项选择题12题判断题13题2、项目题(100分)二、主要考核知识点说明

java面向对象知识(类、继承、接口、异常、线程、Applet应用程序、事件、文件、swing界面、数据库、jsp)第二页,共四十页,2022年,8月28日学习目标理解面向过程和面向对象区别掌握对象概念了解面向对象开发过程熟练掌握Java类的创建掌握类中的方法和变量的创建掌握创建对象和对象引用熟练掌握常用的基本方法,如静态方法和最终方法掌握继承概念掌握抽象类的使用第三页,共四十页,2022年,8月28日1.1面向过程与面向对象现在,作为程序员肯定听说过面向对象编程(OOP)这个奇妙的术语。OOP是当今软件开发中最热门的—种方法。面向对象编程与面向过程相比较,是一个全新的编程方式。本节就会介绍编程思路的发展和面向对象编程特点。第四页,共四十页,2022年,8月28日例题分析纯面向对象的语言有()。(3分)

A:C

B:C++

C:Java

D:Pascal属于面向对象的语言有()。(2分)522A:CB:PascalC:JavaD:C++第五页,共四十页,2022年,8月28日例题分析面向对象的的方法与面向过程的方法最大的不同在于()。(2分)

A:以功能为中心

B:以数据为中心

C:以功能和数据为中心

D:以事件驱动为中心第六页,共四十页,2022年,8月28日1.2对象入门

面向对象基本概念对象(Object)一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是客观世界中的单个物体在人们大脑里的映像,是人的意识之所以为意识的反映。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。在对内的操作通常称为方法。类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。第七页,共四十页,2022年,8月28日1.2对象入门消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。面向对象主要特征:封装性继承性多态性第八页,共四十页,2022年,8月28日425:面向对象技术的基本要素主要有()。(2分)A:抽象性B:封装性C:继承性D:多态性第九页,共四十页,2022年,8月28日1.3类在Java中,完成对功能操作封装的单位称为类。类是有共同特性(属性)和操作(行为)定义的实体,类是用于组合各个对象所共有操作和属性的一种机制。可以根据类具有的属性和方法,赋予类不同的数值,来创建不同的对象实例。第十页,共四十页,2022年,8月28日1.3.1类定义类的名称要符合标识符的命名规则,不能为Java中的关键字。不能包含空格或点号“.”,可以以下划线“_”、字母或“$”符号开头。类的名称的第一个单词的第一个字母通常是大写,第二单词的第一个字母大写,以此类推。526:下面合理的标识符是()。(2分)A:_sys1_lllB:2mailC:$changeD:class第十一页,共四十页,2022年,8月28日1.3.2属性和方法在类体中,包含的是成员变量和成员方法,成员变量通常表示一个类所具有的属性。通过声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是方法来实现,属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法参数和方法返回类型。其结构如图3-1所示:第十二页,共四十页,2022年,8月28日1.3.2属性和方法

构成方法元素第十三页,共四十页,2022年,8月28日1.3.2属性和方法在类体中创建方法,其语法格式如下:<returntype><methodname>(<type1><arg1>,

<type2><arg3>,…)

{<setofstatements>}方法以是否拥有返回值,是否带有参数,可以划分不同的方法形式。其常用的四种形式如下:voidisN(){}voidsetN(intnum){}intgetN(){}StringgetM(inta,intb){}第十四页,共四十页,2022年,8月28日例一创建类StudentStringsidStringnameintage第十五页,共四十页,2022年,8月28日1.3.3访问类使用普通的方法或者变量,不能通过类来调用,应通过对象来实现。变量和方法可使用圆点符号“.”和对象来访问。方法的访问形式如下:“obj.isN()”。obj代表一个对象名称,isN()表示方法名称。同样,也可以使用“obj.ss”来访问变量。

第十六页,共四十页,2022年,8月28日

1.3.4构造方法构造方法是类中一种特殊的方法,用来初始化该类的一个新的对象。Java中的每个类都有构造方法。如果没有指定构造方法,则系统会调用默认的构造方法。默认的构造方法不带有任何一个参数。构造方法具有和类名相同的名称,而且不返回任何数据类型,在构造方法的实现中,也可以进行方法重写。构造方法负责对象的初始化工作,为实例变量赋予合适的初始值。构造方法必须满足以下语法规则:方法名必须与类名相同。不要声明返回类型。不能被static、final、synchronized、abstract和native修饰。

第十七页,共四十页,2022年,8月28日

1.3.4构造方法构造方法可以分为参数化构造方法和隐式构造方法,参数化构造方法即在构造方法中带有参数,隐式构造方法就是系统默认的构造方法。545:有的类定义时可以不定义构造函数,所以构造函数不是必需的。(3分)A:正确B:错误第十八页,共四十页,2022年,8月28日

1.4对象在Java程序中,对象可以被显式或者隐式地创建。常用形式:用new语句创建对象

第十九页,共四十页,2022年,8月28日

例二

java类对象的使用

第二十页,共四十页,2022年,8月28日1.5基本方法在面向对象的编程中,方法是对象行为的表现。除了上面介绍的普通方法之外,还有其它类型的方法,如静态方法、最终方法等。方法之间还可以重载,这极大的表现了Java的多态性。

第二十一页,共四十页,2022年,8月28日1.5.1thisthis关键字是Java中常用的关键字,可用于任何实例方法内,指向当前对象。也可指向对其调用当前方法的对象或在需要当前类类型的对象引用时使用。第二十二页,共四十页,2022年,8月28日1.5.2方法重载在Java中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded),这个过程称为方法重载(methodoverloading)。方法重载是Java实现多态性的一种方式。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性。如果以前从来没有使用过一种允许方法重载的语言,这个概念有点不好理解,但方法重载是Java最激动人心和最有用的特性之一。方法重载是让类以统一的方式处理不同类型数据的一种手段。第二十三页,共四十页,2022年,8月28日1.5.2方法重载当一个重载方法被调用时,Java用参数的类型和(或)数量来表明实际调用的重载方法的版本。因此,每个重载方法的参数的类型或数量必须是不同的。虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分所使用的是哪个方法。当Java调用一个重载方法时,参数与调用参数匹配的方法被执行。在使用重载要注意以下的几点:在使用重载时只能通过不同的参数样式。不能通过访问权限、返回类型、抛出的异常进行重载。方法的异常类型和数目不会对重载造成影响。对于继承来说,如果某一方法在父类中的访问权限是priavte,那么就不能在子类对其进行重载,如果定义,也只是定义了一个新方法,而不会达到重载的效果。第二十四页,共四十页,2022年,8月28日

例三

java方法重载

第二十五页,共四十页,2022年,8月28日1.5.3静态变量和方法在Java语言中,没有实际意义上的全局变量,变量最大作用域范围就是类。如果两个类或多个类之间需要共享数据,单纯依靠参数进行传递,就会花费大量的代码去完成。实际上,我们完全可以利用Java语言的静态变量实现数据的共享。在Java语言中,被static关键字修饰的块、方法和变量被称为静态块、静态方法和静态变量。类中的静态变量、方法或代码块属于类,而不属于某个特定的对象。我们知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态成员就是在类被加载时就被分配相应的内存,故在程序运行期间就会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。也就是说,无论我们为该类创建了多少个实例化对象,为静态成员分配的内存就一直存在,任一个实例化对象都可以访问和改变它。第二十六页,共四十页,2022年,8月28日1.5.3静态变量和方法在使用静态方法时,应注意下面三个原则:类的静态方法只能访问其他的静态成员静态方法不能使用this和super静态方法不能被覆盖为非静态方法第二十七页,共四十页,2022年,8月28日1.5.3静态变量和方法在使用静态方法时,应注意下面三个原则:类的静态方法只能访问其他的静态成员静态方法不能使用this和super静态方法不能被覆盖为非静态方法第二十八页,共四十页,2022年,8月28日习题分析关于对象成员占用内存的说法()是正确的。(3分)

A:同一个类的对象共同用一段内存

B:同一个类的对象使用不同一段内存,但静态成员共享相同的内存空间

C:对象的方法不占用内存

D:以上都不对第二十九页,共四十页,2022年,8月28日1.5.4常量和最终方法final关键字表示对象是最终形态,对象是不可改变的意思。final在应用于类、方法和变量时意义不同,但本质一样:final表示不可改变。用在变量的前面表示变量的值不可以改变,此时该变量可以被称为常量。用在方法的前面表示方法不可以被重写,用在类的前面表示类不可以被继承,即该类是最终形态,只可以使用,如常见的类。当在类中定义变量时,如果其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。第三十页,共四十页,2022年,8月28日1.6继承继承是面向对象语言的主要特征之一。继承(Inheritance)可以使程序的整个架构具有相当的弹性,更具有层次,并提高了代码的可重用性,并减少了设计程序的难度。在本节中,将会详细介绍继承的概念和使用。第三十一页,共四十页,2022年,8月28日1.6.1Java中实现继承继承是类和类之间的关系呈现了一个层次的结构。当一个子类继承父类的时候,此时子类就具有了父类的所有的成员,除了父类的私有成员。在Java中继承只允许是单根继承,一个类只能继承一个类,不能一次性的继承多个类。继承类的关键字为extends。继承的语法格式为:classsubClass-nameextendssuperClass-name{//bodyofclass}第三十二页,共四十页,2022年,8月28日习题分析有继承关系时用到的关键字是()。(2分)

A:extend

B:extends

C:implements

D:implement306:关于继承的说法正确的是()。(2分)A:子类将继承父类所有的属性和方法B:子类继承父类的非私有属性和方法C:子类只继承父类public方法和属性D:子类只继承父类的方法,而不继承属性第三十三页,共四十页,2022年,8月28日443:由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。(3分)A:正确B:错误第三十四页,共四十页,2022年,8月28日

例四

java类的继承

第三十五页,共四十页,2022年,8月28日1.6.2方法重写和变量隐藏当子类继承父类时,可以拥有父类的成员方法和成员变量,这样就可以通过子类的实例化对象,调用父类的成员变量和方法。我们知道在子类中,可以创建属于子类自己的成员。如果创建了一个成员方法,该方法名称和父类中某成员方法名称相同,我们把这种情况称为方法重写(overidingmethod)。子类如果不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写,方法重写又称方法覆盖。第三十六页,共四十页,2022年,8月28日1.6.2方法重写和变量隐藏在重写方法时,需要遵循下面的规则:参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。返回的类型必须与被重写的方法返回类型相同,否则不能称其为重写而是重载。访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)。重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论