




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 面向对象的类,Java语言程序设计,面向过程与面向对象,公共数据,算法数据结构,面向过程程序设计,面向对象程序设计,对象消息,动宾,主谓,变量:指对象的所知道的状态 方法:指对象的功能单元。 消息:软件对象通过相互间传递消息来相互作用和通信。一个对象调用另一对象的某个方法 一个消息由三部分组成: 1. 接受消息的对象 2. 要完成方法的名字 3. 方法需要的参数,面向对象基本概念,数据抽象,将对象进行抽象变成程序的“类”是编制程序的首要 任务,同时也是程序设计优劣的关键。,属性:描述 类是什么,方法:描述类做什么,类的定义,Java程序由类组成,一个程序至少要包含一个类,Java程序员
2、的任务就是设计出这样的类来解决实际问题。创建类时既可以从父类继承,也可以自行定义。,修饰符 class 类名 extends 父类implements 接口名 类成员变量声明 类成员方法声明 ,不提倡把成员变量的定义分散写在成员方法之间或类体的后面,修饰符 返回值类型 方法名(参数) 申明部分 语句部分 ,方法调用 方法名(参数),一一对应,传值, 如 int age;,方法调用,public class Person int age=40;/成员变量. static int setAge(int iage)/方法setAge,返回值int,参数int多个用,分隔. int age=iage;
3、/局部变量得到传过来iage的值30. System.out.println(age);/30 return age;/返回age的值. static void sayAge()/方法sayAge,无返回值(void),无参数. int age;/局部变量 age=setAge(30);/调用方法setAge,age得到方法setAge的返回值30(static int). System.out.println(age); /30 public static void main(String args) int age=20;/局部变量. System.out.println(age); /2
4、0 sayAge(); /调用方法sayAge . ,如果方法有与成员变量同名的局部变量,方法访问的是局部变量。,构造方法,构造方法的名字与类名相同。创建对象时自动调用对对象进行初始化操作。C+析构方法,构造方法前面没有返回类型定义,它没有返回值,也不是void。不能return,构造方法可以重载多个构造方法但参数不同,可以继承子类创建时先调用父类的,再调用自己的。,JAVA每个类都至少有一个构造方法系统默认无参数构造方法;一旦定义了构造方法,系统提供的默认变得无效只要定义了有参数的,都需要再定义一个无参数的。为与局部变量区别,同名成员变量用this来访问。,对象(实例instance):实际
5、个体 创建某个类的具体对象 (类似变量声明),类(class):抽象的集合概念 系统类库中已定义好的类 用户自定义的类,属性:状态,静态特性的描述。 方法:行为,动态特性的描述。,是一个软件单元,它由一组结构化的数据和在其上的一组操作构成。,类与对象,对象实例化,你必须拥有一个合适的类才能创建一个合适的对象,有了合适的对象才能完成合适的工作。,类名 对象变量=new 类名(参数); 类名 对象变量; 对象变量= new 类名(参数);,Person p1=new Person();,对象的引用: 对象名.成员变量名 对象名.方法名(参数),class Person int age; publi
6、c class ObjtoObj public static void main(String args) Person p1=new Person(); Person p2=new Person(); p1.age=20; p2.age=30; System.out.println(p1.age:+p1.age+ p2.age:+p2.age); p1=p2; System.out.println(p1.age:+p1.age+ p2.age:+p2.age); p1.age=25; System.out.println(p1.age:+p1.age+ p2.age:+p2.age); ,2
7、0,30,30,30,25,25,p2.age=25;?,20,30,包-类管理机制,包的定义: package 包名;,位置: 程序的第一条语句 存放: Sun建议Internet域名倒置 编译: 使用javac d . xxx.java,包的引用: import 包名.类名|*;,位置: package语句若有和类定义之间 默认: 系统自动引入java.lang包import java.lang.* 路径: classpath:做为特殊的根目录使用,从这里展开对.class文件的搜索 。,忽略则默认包 默认包没有名称,可能会增加编译时间,若不引入 则使用全称,package bag.x;
8、public class X1 public void show() System.out.println(“class:X1”); ,package bag.x; public class X2 public void show() System.out.println(“class:X2”); ,javac d d:javaprog X1.java javac d d:javaprog X2.java,d:javaprog必须存在?,import bag.x.X1; import bag.x.X2; public class bag public static void main(Stri
9、ng args) new X1().show(); new X2().show(); ,set classpath=d:javaprog;,new bag.x.X2().show();,匿名对象,JavaAPIApplication Programming Interface,JavaAPI是SUN公司为Java语言开发的类的集合。 JavaAPI由多个包组成,每个包中含有多个功能强大的类。 jar tf d:javajre1.5librt.jar|more,java.lang 基本语言包 为Java语言的基本结构(如字符串类、数组类)提供了基本的类描述。 java.util 实用包 提供了一
10、些诸如编码、解码、哈西表、向量、堆栈之类的实用例程。 java.io I/O包提供了标准的输入/输出及文件例程。 java.applet Applet包 提供了与支持Java的浏览器进行交互的例程。 java.awt 窗口工具包 AWT提供了一些诸如字体、控制、按钮、滚动条之类的图形接口。 网络包 为通过诸如telnet、ftp、www之类的协议访问网络提供了例程。,封装Encapsulation,将信息隐蔽的过程称为封装。 封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。,至少有两方面的原因促使我们控制对成员的访问: 防止程序员接触他们不该接触的东西。若只是为了解决
11、特定的问题,只需操作接口即可。 允许系统人员修改内部结构,不用担心它会对程序员造成什么影响。,强内聚 弱耦合,封装实现: 访问权限,Java提供4种访问权限: public,protected,private和friendly.,继承Inheritance,面向对象语言允许从一个已有的类父类定义新的类子类,从而形成继承关系。,继承:现实世界中遗传关系的直接模拟, 它表示类之间的内在联系以及对属性和操作的共享。,子类继承了父类的属性,子类也可继承了父类的方法; 子类并不限于继承,还可以发扬光大;继承未必只有一层。,继承机制的意义 简化类或对象之间的接口 支持软件重用代码重用,Object类,cl
12、ass Person int age; void study() void work() ,class Girl extends Person double moneyForDressing void shy() ,Java使用关键字extends定义继承 不支持多重继承 extends表明要构建的新类是从一个现有类衍生的,现有类称为父类、超类、基类;而新类称为子类、派生类。,继承实现: extends,多态Polymorphism,多态性: “多种形态”,是允许一个接口被多个同类动作使用的特性。希腊语 多态用来模拟物件的对环境的适应能力的!就相当于人的多面性,对不同的人就呈现出不同的一面。,
13、同名方法的覆盖(override)和重载(overload)是多态两种完全不同的机制。 替代原则(substitution principle):父类可以用其子类代换。替代过程也是子类向上转型的过程,向上转型是一种常用的安全的类型转换。通过向上转型可实现多态性。,方法覆盖(override),覆盖的方法的标志必须要和被覆盖的方法的完全匹配,才能达到覆盖的效果; 覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类; 被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。,class A void gg() void mm(int num) ,class B extends A void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国ABS双摇床数据监测研究报告
- 2025至2030年中国防辐射铅玻璃窥视窗市场分析及竞争策略研究报告
- 2025至2030年中国钢筋矫直切断机市场分析及竞争策略研究报告
- 2025至2030年中国监控拍照防盗报警器市场分析及竞争策略研究报告
- 2025至2030年中国液化炒青机市场分析及竞争策略研究报告
- 2025至2030年中国氢氯化锆市场分析及竞争策略研究报告
- 2025至2030年中国智能高频开关电力操作电源系统市场分析及竞争策略研究报告
- 2025至2030年中国带板材轧机市场分析及竞争策略研究报告
- 2025至2030年中国口琴外壳市场分析及竞争策略研究报告
- 2025至2030年中国包塑链轮曲柄市场分析及竞争策略研究报告
- 如何提升安全管理水平
- 退赃协议书范本
- 【MOOC答案】《大学物理I力学、相对论、电磁学》(北京交通大学)章节作业慕课答案
- 落地投资协议书范本
- 托管仓库合同协议
- 企业负责人(A证)考试题(含答案)
- 河南洛阳文旅集团财务岗位招聘考试真题2024
- 深入研究福建事业单位考试中的经典案例试题及答案
- 《中华传统文化进中小学课程教材指南》
- 七年级历史下学期核心知识点、难点、重点知识总结
- 《基于web的宠物商城管理系统设计与实现》8800字(论文)
评论
0/150
提交评论