版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 JavaJava面向对象程序设计面向对象程序设计 2.1 Java2.1 Java的类和对象的类和对象 2.2 2.2 域和方法域和方法 2.3 2.3 访问控制符访问控制符 2.4 2.4 继承继承 2.5 2.5 接口接口2.1 2.1 类和对象类和对象 什么是类? 定义一种对象所能拥有的数据和能完成的操作,在面向对象的程序设计中,类是程序的基本单元。l 程序中的对象 是类的一个实例,是一个软件单元,它由一组结构化的数据和在其上的一组操作构成。variablesmethodsclass Car String ping1; double price1; String date1
2、; void show() ;void qd();(启动)启动)void sc ;(刹车);(刹车)void js() ;(减速);(减速) 计算机中的对象的原型 现实生活中的对象类和对象类和对象类和对象类和对象 变量:即指对象的所知道的状态 方法:指对象的功能单元。2.1.1 2.1.1 系统定义的类系统定义的类 JavaJava程序设计就是定义类的过程,它分为两大类:程序设计就是定义类的过程,它分为两大类:系统定义的类,即系统定义的类,即JavaJava类库中的类;类库中的类;用户程序自定义的类。用户程序自定义的类。 要提高编程效率和质量,必须熟练掌握尽可能多要提高编程效率和质量,必须熟练
3、掌握尽可能多的的JavaJava类库,根据功能的不同,类库,根据功能的不同,JavaJava类库被划分类库被划分成若干不同的包,每个包中都有不少具有特定功成若干不同的包,每个包中都有不少具有特定功能和关系的类和接口。能和关系的类和接口。 常用包(一)常用包(一)1 1 java.langjava.lang包包该包是该包是JavaJava语言的核心类库,包含了运行语言的核心类库,包含了运行JavaJava程序必不可程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等。理、线程、异常处理类等。每个每个JavaJava程
4、序运行时,系统都会自动引入程序运行时,系统都会自动引入java.langjava.lang包,所包,所以这个包的加载是缺省的。以这个包的加载是缺省的。2 2java.iojava.io包包该包是该包是JavaJava语言的标准输入语言的标准输入/ /输出类库,包含了实现输出类库,包含了实现JavaJava程程序与操作系统、用户界面以及其它序与操作系统、用户界面以及其它JavaJava程序做数据交换所程序做数据交换所使用的类。使用的类。常用包(二)常用包(二)3 3java.utiljava.util包包4 4java.awtjava.awt包包该包是该包是JavaJava语言用来构建图形用户界
5、面(语言用来构建图形用户界面(GUIGUI)的类库,)的类库,它包括了许多界面元素和资源,主要提供三方面的支持:它包括了许多界面元素和资源,主要提供三方面的支持:低级绘图操作,如低级绘图操作,如GraphicsGraphics类等;类等;图形界面组件和布局管理,如图形界面组件和布局管理,如CheckboxCheckbox类、类、ContainerContainer类、类、LayoutManagerLayoutManager接口等;接口等;界面用户交互控制和事件响应,如界面用户交互控制和事件响应,如EventEvent类。类。 常用包(三)常用包(三)5 5java.sqljava.sql包包是
6、实现是实现JDBC(Java database connection)JDBC(Java database connection)的类库。利用它的类库。利用它可使可使JavaJava程序具有访问不同种类数据库的能力,如程序具有访问不同种类数据库的能力,如OracleOracle、InformixInformix、SybaseSybase、SQL ServerSQL Server、DB2DB2等。等。 6 6java.swingjava.swing包包Swing 提供许多新的组件,让你容易地建立精致的图形提供许多新的组件,让你容易地建立精致的图形用户界面。它改进旧的组件,并增加许多组件,像是内用
7、户界面。它改进旧的组件,并增加许多组件,像是内部框架(部框架(internal frames),树,表格,和文字编辑器等),树,表格,和文字编辑器等等等Swing 组件比组件比 AWT 组件提供更标准化的跨平台运作机制,组件提供更标准化的跨平台运作机制,使我们朝使我们朝 write once, run anywhere 更接近一步。更接近一步。 2.1.2 2.1.2 用户程序自定义类(一)用户程序自定义类(一) 类的一般格式是:类的一般格式是:classHeadclassHead classBodyclassBody 一个类的定义包含有两个部分的内容:一个类的定义包含有两个部分的内容:cla
8、ssHeadclassHead类头的声明类头的声明classBodyclassBody类体的定义类体的定义类体又由属性(域)和方法组成。类体又由属性(域)和方法组成。 2.1.2 2.1.2 用户程序自定义类(二)用户程序自定义类(二) 类头使用关键字类头使用关键字classclass标志类定义的开始,标志类定义的开始,classclass后面跟着类名;后面跟着类名; 类体用一对大括号括起,包括属性(域)类体用一对大括号括起,包括属性(域)和方法两大部分:和方法两大部分:其中域对应类的静态属性其中域对应类的静态属性方法对应类的行为和操作。方法对应类的行为和操作。 2.1.2 2.1.2 用户程
9、序自定义类(三)用户程序自定义类(三) 完整的类头格式完整的类头格式: :public abstract |final class extends implements 2.1.3 2.1.3 类的修饰符类的修饰符组 成 部 分作 用publicpublic该类可以被其他的任何类访问,没有此修该类可以被其他的任何类访问,没有此修饰符则默认为包的访问权限饰符则默认为包的访问权限abstractabstract该类不能被实例化,即不能创建其对象该类不能被实例化,即不能创建其对象finalfinal该类不能被继承,即没有子类该类不能被继承,即没有子类class class 声明这是一个新类声明这是一
10、个新类extends extends 继承父类继承父类AAAA的一切成员的一切成员implements implements 执行一个或多个接口执行一个或多个接口InterInter等等2.2 2.2 域和方法域和方法 域域域是类和对象的静态属性,它可以是基本数据类型域是类和对象的静态属性,它可以是基本数据类型的变量,也可以是其它类(系统类或用户自定义类)的变量,也可以是其它类(系统类或用户自定义类)的对象。的对象。因此,定义域的操作就是说明变量或创建对象的操因此,定义域的操作就是说明变量或创建对象的操作。作。 方法方法方法是类的动态属性,标志了类所具有的功能和操方法是类的动态属性,标志了类所
11、具有的功能和操作,用来把类和对象的数据封装在一起。作,用来把类和对象的数据封装在一起。JavaJava的方法与其它语言中的函数或过程类似,是一的方法与其它语言中的函数或过程类似,是一段完成某种功能的程序段。段完成某种功能的程序段。 2.2.2 2.2.2 方法方法 方法由方法头和方法体组成,其一般格式如下:方法由方法头和方法体组成,其一般格式如下:修饰符修饰符1 1 修饰符修饰符2 2 返回值类型返回值类型 方法名(形式参数列表)方法名(形式参数列表)throwsthrows异常列表异常列表 方法体各语句;方法体各语句; 其中形式参数列表的格式为:其中形式参数列表的格式为:形参类型形参类型1
12、1 形参名形参名1 1,形参类型,形参类型2 2 形参名形参名2 2, 2.2.3 2.2.3 构造方法构造方法 构造方法构造方法构造方法是与类同名的方法,创建对象的语句用构造方法是与类同名的方法,创建对象的语句用newnew算符开辟了新建对象的内存空间后,将调用构算符开辟了新建对象的内存空间后,将调用构造方法初始化这个新建对象。造方法初始化这个新建对象。构造方法是类的一种特殊方法,其特殊性如下:构造方法是类的一种特殊方法,其特殊性如下:构造方法的方法名与类名相同。构造方法的方法名与类名相同。构造方法没有返回值。构造方法没有返回值。构造方法的作用是对类的对象初始化。构造方法的作用是对类的对象初
13、始化。在创建一个类的新对象的同时,系统会自动调用在创建一个类的新对象的同时,系统会自动调用该类的构造方法。该类的构造方法。 2.2.4 2.2.4 创建对象创建对象创建对象创建对象创建对象的一般格式为:创建对象的一般格式为:类名类名 新建对象名新建对象名 = new = new 构造方法()构造方法()例如:例如: Hero gj = new Hero();Hero gj = new Hero();2.3 2.3 访问控制符访问控制符 访问控制符是一组限定类、域或方法是否可以访问控制符是一组限定类、域或方法是否可以被程序里的其它部分访问和调用的修饰符。被程序里的其它部分访问和调用的修饰符。 类
14、的访问符只有类的访问符只有publicpublic。 域和方法的访问控制符有三个:域和方法的访问控制符有三个:publicpublicprivateprivateprotectedprotected2.3.12.3.1公共访问控制符公共访问控制符publicpublic(一)(一)1 1类类JavaJava的类是通过包来组织,处于同一包中的类的类是通过包来组织,处于同一包中的类可以不需任何说明而方便的互相访问和引用,可以不需任何说明而方便的互相访问和引用,而对于处于不同包中的类,缺省的它们是互相而对于处于不同包中的类,缺省的它们是互相之间不可见的。之间不可见的。但是,当一个类被声明为但是,当一
15、个类被声明为publicpublic时,它就具有时,它就具有了被其它包中类访问的可能性,只要这些包中了被其它包中类访问的可能性,只要这些包中的类在程序中使用的类在程序中使用importimport语句引入语句引入publicpublic类,类,就可访问它了。就可访问它了。2.3.12.3.1公共访问控制符公共访问控制符publicpublic(二)(二)2 2方法方法被定义为被定义为publicpublic的方法是这个类对外的接口部分,的方法是这个类对外的接口部分,程序的其它部分通过调用程序的其它部分通过调用publicpublic方法达到与当前类方法达到与当前类交换信息、甚至影响当前类的目的
16、。交换信息、甚至影响当前类的目的。2.3.12.3.1公共访问控制符公共访问控制符publicpublic(三)(三)3 3域域用用publicpublic修饰的域被称为公共域,如果一个修饰的域被称为公共域,如果一个公共域属于一个公共类,则它可被所有其它公共域属于一个公共类,则它可被所有其它类所引用。类所引用。publicpublic修饰符会造成安全性和数据封装性下修饰符会造成安全性和数据封装性下降,所以一般应减少降,所以一般应减少publicpublic域的使用。域的使用。 2.3.22.3.2缺省访问控制符缺省访问控制符 假如一个类没有访问控制符,缺省的认为假如一个类没有访问控制符,缺省的
17、认为该类只能被同一个包中的类访问,这种访该类只能被同一个包中的类访问,这种访问特性又称问特性又称包访问性包访问性。 同理,类内的域和方法如果没有访问控制同理,类内的域和方法如果没有访问控制符,也说明它们具有包访问性,可以被同符,也说明它们具有包访问性,可以被同一个包中的其它类所访问和调用。一个包中的其它类所访问和调用。 2.3.32.3.3私有访问控制符私有访问控制符 (一)(一) 用用privateprivate修饰的域或方法只能被该类自身所访问修饰的域或方法只能被该类自身所访问和修改,而不能被任何其它类(包括该类的子类)和修改,而不能被任何其它类(包括该类的子类)来获取和引用。来获取和引用
18、。 privateprivate修饰符提供了最高的保护级别。修饰符提供了最高的保护级别。 例如:在例如:在200200电话卡类电话卡类PhoneCard200PhoneCard200中,电话卡的中,电话卡的密码密码passwordpassword不能允许其它类或对象随意查看或修不能允许其它类或对象随意查看或修改,所以这个域可以声明为私有的:改,所以这个域可以声明为私有的:private int password; private int password; 2.3.42.3.4保护访问控制符保护访问控制符protectedprotected 用用protectedprotected修饰的域和方
19、法可以被三种类引用:修饰的域和方法可以被三种类引用:该类自身;该类自身;与它在同一个包中的其它类;与它在同一个包中的其它类;在其它包中的该类的子类。在其它包中的该类的子类。 使用使用protectedprotected修饰符的主要作用是允许包中的类修饰符的主要作用是允许包中的类和其它包中的子类来访问父类的特定属性。和其它包中的子类来访问父类的特定属性。 2.4 2.4 继承(一)继承(一) 当一个类拥有另一个类的数据和操作时,就称当一个类拥有另一个类的数据和操作时,就称这两个类之间具有继承关系,被继承的类称为这两个类之间具有继承关系,被继承的类称为父类父类或或超类超类,继承的类称为,继承的类称
20、为子类子类。 一个父类可以同时拥有多个子类,该父类实际一个父类可以同时拥有多个子类,该父类实际上是所有子类的公共域和公共方法的集合,而上是所有子类的公共域和公共方法的集合,而子类是父类的特殊化,可对公共域和方法在功子类是父类的特殊化,可对公共域和方法在功能、内涵方面加以扩展和延伸。能、内涵方面加以扩展和延伸。 2.4 2.4 继承(二)继承(二) 面向对象的继承特性中,还有一个关于单继承和面向对象的继承特性中,还有一个关于单继承和多继承的概念。多继承的概念。单继承是指任何类都只有一个父类。单继承是指任何类都只有一个父类。多继承是指一个类可以有一个以上的父类,它静态数据多继承是指一个类可以有一个
21、以上的父类,它静态数据和操作从所有这些父类中继承的。和操作从所有这些父类中继承的。 JavaJava只支持单重继承,但支持界面,一个类可以只支持单重继承,但支持界面,一个类可以实现多个界面。利用界面可以得到多继承的优点,实现多个界面。利用界面可以得到多继承的优点,又没有多继承混乱、复杂的问题。又没有多继承混乱、复杂的问题。 2.4.2.4.继承继承(三)(三) JavaJava中的继承是通过中的继承是通过extendsextends关键字来实现的关键字来实现的 class class 子类名子类名 extends extends 父类名父类名 2.5 2.5 接口(一)接口(一) 接口(接口(interfaceinterface)也称为界面,在其声明语法上)也称为界面,在其声明语法上有些类似于类。有些类似于类。 实际上,完全可以把接口实际上,完全可以把接口理解为理解为一种特殊的类,一种特殊的类,一种由常量和抽象方法组成的特殊类。一种由常量和抽象方法组成的特殊类。 在在JavaJava中,出于简化程序结构的考虑,不支持类中,出于简化程序结构的考虑,不支持类间的多重继承而只支持单重继承,即一个类至多间的多重继承而只支持
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硝酸铵结晶造粒工创新思维模拟考核试卷含答案
- 丁苯胶乳装置操作工技术落地考核试卷含答案
- 绒线编织拼布工环保及安全能力考核试卷含答案
- 电解质酸碱平衡紊乱合并休克病人的护理查房病案
- 医学课件-急救知识张燕
- 脊髓损伤患者有哪些康复方法
- 儿科常见病病因与治疗
- 伤口护理技术操作与并发症预防
- 第8讲龈上洁治术-田剑刚
- 高中体育教资面试试讲逐字稿题库及答案
- 中草药栽培技术专业介绍
- 北森行测题库及答案2026
- 安全生产三管三必须培训课件
- 子宫颈透明细胞癌诊治指南(2024年版)解读
- 电梯安装监理合同范本
- 岩土工程案例评述课件
- 【新教材】北师大版(2024)三年级上册数学全册教案(表格式)
- 选矿厂工艺安全培训课件
- 医院咨询服务解决方案
- bot项目建设合同范本
- 慢性病用药知识培训课件
评论
0/150
提交评论