java第三部分延边大学计算机系

上传人:012****78 文档编号:125685128 上传时间:2020-03-19 格式:PPT 页数:101 大小:514.50KB
返回 下载 相关 举报
java第三部分延边大学计算机系_第1页
第1页 / 共101页
java第三部分延边大学计算机系_第2页
第2页 / 共101页
java第三部分延边大学计算机系_第3页
第3页 / 共101页
java第三部分延边大学计算机系_第4页
第4页 / 共101页
java第三部分延边大学计算机系_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《java第三部分延边大学计算机系》由会员分享,可在线阅读,更多相关《java第三部分延边大学计算机系(101页珍藏版)》请在金锄头文库上搜索。

1、第三章 类与对象 程序设计语言的发展 机器语言 汇编语言 高级语言 a b c 面向对象语言 Car myCar new Car myCar go 面向过程和面向对象 公共数据 函数 函数 函数 函数 算法 数据结构 数据 方法 方法 数据 方法 方法 过程式程序设计OOP程序设计 对象 消息 消息 面向过程和面向对象 举例 煮方便面 面向过程 往锅里倒水 把水煮开 把面放进锅里 放调 料 起锅 面向对象 分析问题域 抽象出对象 类 锅 水 面 调料 分析每个对象的属性 方法 例如 锅 加热 水 加热 面 煮 分析对象之间的关系 锅包含水 面 调料 面向过程和面向对象 用面向对象的设计思想分析

2、下句话 开车去北京 Java与面向对象 对象 对问题域中事物的描述 是Java的 核心 在Java程序中 万物皆对象 对象是静态属性 成员变量 和动态属性 方 法 的封装体 类 同种对象的抽象 类中定义这一类对 象所具有的静态和动态属性 类可以看成一类对象的模板 对象可以看 成该类的一个具体实例 举例 用代码实现 开车去北京 Java与面向对象 学生 类 学生 姓名 年龄 学号 显示学号 显示姓名 显示年龄 对象 学生A 学生 学号 01010101 姓名 张三 年龄 20 学生B 学生 学号 02020202 姓名 李四 年龄 21 抽象 实例化 题外话 为什么用面向对象 更接近人类自然思维

3、过程 可重用性 reusable 可扩展性 extensibility 类的定义 类的定义 类修饰符 class 类名 extends 父类名 implements 接口名 成员变量定义 方法定义 类的定义 类修饰符 Modifier public 允许其他类 没有限制 访问本类 一个源文件仅可以有一个public类 缺省 可被当前包中的其他类访问 abstract 没有实例的抽象概念类 是它的所 有子类的公共属性和公共方法的集合 final 不能再被扩展 不能有子类的类 易于 安全性的实现 或用于创建固定功能的类 类的定义 例 public abstract class shape clas

4、s rectangle extends shape final class roundrect extends rectangle 注意 final可以与abstract一起使用吗 成员变量 声明成员变量 member 的语法 修饰符 数据类型 变量名 引用 对象名 变量名 修饰符 访问控制符 public 可被所有其他类引用 private 仅可被该类自身引用和修改 不能 被其他任何类 包括该类的子类 引用 它 提供了最高级别的保护 成员变量 protected 该类自身 子类 同一包中的其 他类 static 类成员变量 对所有的实例一致 引用 时前缀 可使用类名或对象名 final 数值

5、不变常量 定义同时应对其进行初始 化 成员变量 public class MemberVar private int i public int j protected int k static int s final int f 1 public static final int MAX 100 方法 方法 定义对类内成员变量 数据 的操作 方法的声明语法 修饰符 返回类型 方法名 参数列表 throws 例外名 方法体 方法是类的动态属性 标志了类所具有的 功能和操作 方法 方法定义规则 方法名后的小括号是方法的标志 形式参数是方法从调用它的客户代码输入的数据 返回值是方法在操作完成后返还给

6、调用它的客户 的数据 要指定方法返回值类型 如没有返回值 类型要 写 void 方法名相同 但参数不同 是不同的方法 与类名相同的所有方法都是类的构造方法 方法 在方法中定义的变量称为局部变量 其生命周期 执行进入方法体时建立 退出方 法时撤消 局部变量使用之前必须初始化 在方法体中可以访问所有的类属性 可以 调用所有类中定义的方法 方法可以递归调用 类的定义举例 实例 定义 学生 类 public class Student private String id private int age 0 private String name public String getId return i

7、d public int getAge return age public String getName return name public void setAge int i age i 对象的引用 Java中除基本数据类型之外的变量都是引用数据 类型 Java中的对象是通过引用操作 class Test public static void main String args Student s s new Student System out println s getId s xxxx id 0 name null age 0 对象的创建和使用 必须使用new关键字创建对象 分配空间

8、使用 对象 引用 成员变量 来访问对象的成 员变量 使用 对象 引用 方法 来调用对象的方法 同一类的每个对象有不同的成员变量存储空间 同一类的每个对象共享该类的方法 类和对象的内存分析 Code Segment 类A的代码 class A int i int j main A a1 new A A a2 new A StackHeap a1 xxx a2 yyy i 0 j 0 i 0 j 0 构造方法 当new一个对象实际上调用了类的构造方法 构造方法用来初始化对象的成员变量 构造方法与类名同名 且没有返回值 构造方法 public class Student int id int age

9、 public Student int i int a id i age a public static void main String args Student s new Student 1 2 分析内存 id 1 age 2 s xxxx 构造方法 默认构造方法 如果没有显式定义一个构 造方法 那么系统将调用默认构造方法 Student 如果显式定义了构造方法 那么默认构造 方法将不起作用 Student int i int a id i age a 分析内存 构造函数的应用实例 引用类型的交换方法 myname xxx s good me yyy id 20 name xxx age

10、 1 a1 xxx id 1 a2 yyy id 2 题外话 指针的传递 C语言 指针可以更改指向的数据值 void add int p p p 1 int main int i 1 int p add p printf d i i 1 p 0 x8000 0 x8000 p 0 x8000 0 x8004 0 x8008 stack 题外话 指针的传递 C语言 可以更改指针指向吗 void setNull int p p NULL int main int i 1 int p setNull p i 10 x8000 p 0 x80000 x8004 p 0 x80000 x8008 题外话

11、 指针的传递 C语言 通过二级指针改变指针指向 void setNull int p p NULL int main int i 1 int p setNull i 10 x8000 p 0 x80000 x8004 p 0 x80040 x8008 类之间的关系 UML类图描述 UML Unified Modeling Language 常用的UML建模工具软件 rational rose UML包括 用例图 类图 对象图 状态 图 时序图 协作图 活动图 组件图 配置图 类之间的关系 UML类图描述 UML类图 Class Diagrams 类之间的关系 UML类图描述 依赖关系 depe

12、ndency l可以理解为一个类A使用了另外一个类B l这种关系是具有偶然性的 临时性的 弱 的关系 l类B的变化会影响到A 类之间的关系 UML类图描述 依赖关系 dependency 类之间的关系 UML类图描述 class Mouse public void cry System out println Damn it public class Cat public void catchMouse Mouse m m cry public static void main String args Mouse m new Mouse Cat c new Cat c catchMouse m

13、 类之间的关系 UML类图描述 关联关系 Associations public class Person private Car mycar public Person mycar new Car public void gotoYanji mycar run public static void main String args Person p new Person p gotoYanji class Car public void run System out println car is running 类之间的关系 UML类图描述 聚合 aggregation l聚合是关联关系的一

14、种特例 体现的整体 与部分 拥有的关系 即has a的关系 l但是整体和部分可以分离 有各自的生命 周期 例如家庭和人的关系 公司与员工 的关系等 类之间的关系 UML类图描述 聚合 aggregation 类之间的关系 UML类图描述 聚合 aggregation public class Family private Collection persons 类之间的关系 UML类图描述 组合 Composition l组合也是关联关系的一种特例 体现的是 contains a的关系 这种关系比聚合更强 l同样体现整体和部分的关系 但是整体和 部分是不可分的 l整体的生命周期结束意味着部分的部

15、分周 期也结束 类之间的关系 UML类图描述 组合 Composition 类之间的关系 UML类图描述 继承 Inheritance l继承是指一个类扩展另一个类的功能 通 常能表示is a关系 l除了包含父类的已有属性 方法外还可以 增加自己的属性和方法 l继承是面向对象程序设计语言的重要特性 类之间的关系 UML类图描述 继承 Inheritance 类之间的关系 UML类图描述 继承 Inheritance public class Person private String id private String name public void eat System out print

16、ln 吃饭 请勿打扰 public class Student extends Person private String stu id public void study System out println 学习中 public class Teacher extends Person private String job No public void teach System out println 上课中 类之间的关系 UML类图描述 实现 implements l指的是一个类 class 实现一个接口 interface l接口用来定义一组抽象操作的集合 l实现 implements 一个接口的类必须实现 接口中规定的所有方法 类之间的关系 UML类图描述 实现 implements 类之间的关系 UML类图描述 实现 implements public interface Movable public void run public class Car implements Movable public void run System out println 四轮驱动 pu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号