JAVA第三部分

上传人:012****78 文档编号:125685129 上传时间:2020-03-19 格式:PPT 页数:113 大小:773KB
返回 下载 相关 举报
JAVA第三部分_第1页
第1页 / 共113页
JAVA第三部分_第2页
第2页 / 共113页
JAVA第三部分_第3页
第3页 / 共113页
JAVA第三部分_第4页
第4页 / 共113页
JAVA第三部分_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《JAVA第三部分》由会员分享,可在线阅读,更多相关《JAVA第三部分(113页珍藏版)》请在金锄头文库上搜索。

1、河南大学软件学院 Java Java 编程基础编程基础 主讲 王倩 第三章 面向对象基础 3 1 类和对象 3 2 定义Java类 3 3 创建对象 3 4 成员变量 3 5方法及重载 3 6 构造方法 3 7 this关键字 3 8 static关键字 3 9 访问控制 3 10 对象清理 面向对象的程序设计思想 客观世界是由各种各样的对象组成 将客观世界中的对象模 型化 形成一种计算机化的表示 并以此为基础来分析和解决问 题便形成了面向对象技术 对象由属性和方法组成 属性反映了对象的信息特征 而方 法则定义改变属性状态的各种操作 3 1 类和对象 对象通过属性和方法来对应事物所具有的静态属

2、性和动态属性 类是用于描述同一类型的对象的一个抽象的概念 类中定义类这 一类对象所具有的静态和动态属性 类可以看成一类对象的模板 对象可以看成该类的一个具体实例 3 1 类和对象 3 2定义Java类 修饰符 class类名 extends父类名implements接口名1 声明属性 声明方法 声明构造方法 类的修饰符可以有以下几种情况 public abstract final default 举例 写一个person类 变量定义的语法规范 变量修饰字 数据类型 变量名1 变量名2 变量初值 变量的定义及修饰字 public protected private static final tr

3、ansient volatile 成员变量的类型可以是Java中任意的数据类型 包括简单类 型 类 接口 数组 在一个类中的成员变量应该是唯一的 命名规则 第一个单词的首字母小写 运用驼峰规则 成员变量分类 实例成员变量 由对象来调用实例成员 静态成员变量 类成员变量 用static声明的成员变量 由类来调用静态成员 成员方法 方法修饰字 返回类型 方法名称 参数1 参数2 throws exceptionList statements 方法体 方法的内容 方法的定义及修饰字 public protected private static final abstract native synch

4、ronized 返回类型可以是任意的Java数据类型 当一个方法不需要 返回值时 返回类型为void 方法也可以分为两类 实例方法 类方法 也称为静态方法 有static修饰 方法分类 P91 例3 6 构造函数 作用 在创建对象时执行初始化 当创建对象时 系统为这个对象的属性进行默认初始化 这种 默认初始化把基本类型的属性设为0或false 把所有引用类型的 属性设为null 如果想改变这种初始化 想让系统创建对象时就 为对象各属性显式指定初始值 就可以通过构造函数来实现 构造函数 声明构造方法的语法格式 修饰符 构造方法名 形参列表 构造方法体 修饰符可以是public private p

5、rotected其中的任何一个 构造方法的名字必须和该类的名字保持一致 否则程序编译出错 形参列表格式和方法中的形参列表格式一致 一个类中的构造方法可以有0或多个 如果一个类没有显式声明 构造方法 Java会自动提供一个无形参的缺省构造方法 如果类中 如果已显式声明了构造方法 Java不再提供无形参的缺省构造方法 例3 11 构造函数不能定义返回值类型声明 也不能使用void定 义构造函数没有返回值 如果为构造函数定义了返回值 类型 或使用void定义构造函数没有返回值 编译不会 报错 但Java会把这个所谓的构造函数当做一般的方法 构造函数用new关键字来调用 new关键字的作用是用来为 对

6、象分配空间 并且进行初始化 构造函数 创造对象实例 Java中 使用new运算符实例化对象 具体的格式如下 类名 实例名 new该类的构造方法 参数 实例名 int a int b int c 访问对象的成员变量和方法 实例方法或变量 实例 成员变量 方法 同一类的每个对象有不同的成员变量存储空间 同一类的每个对象共享该类的方法 对象的成员方法是针对每个对象进行调用 变量定义的语法规范 变量修饰字 数据类型 变量名1 变量名2 变量初值 变量的定义及修饰字 public protected private static final transient volatile 成员变量的类型可以是Ja

7、va中任意的数据类型 包括简单类 型 类 接口 数组 在一个类中的成员变量应该是唯一的 命名规则 第一个单词的首字母小写 运用驼峰规则 成员变量分类 实例成员变量 由对象来调用实例成员 静态成员变量 类成员变量 用static声明的成员变量 由类来调用静态成员 成员变量的初始化和内存运行机制 系统会在第一次使用某类时加载这个类 并且初始化该类 类初始化完成时 系统会为静态成员分配内存空间 public class child public int id public String name public static int num public static void main String

8、 args child p1 new child p1 name 张三 栈 堆 数据区 当创建对象是 系统会为实例属性 非静态成员变量 分配 内存空间 并指定初始值 创建对象 代码区 成员变量可以是Java语言中任何 一种数据类型 包括基本类型和 引用类型 在定义成员变量时可以对其初始 化 如果不对其初始化 java使 用默认的值对其初始化 成员变量的作用范围为整个类体 成员变量默认值 局部变量 局部变量定义的位置 方法体中 局部变量的作用域 本大括号中 在内存中的位置 栈中 局部变量的初始化和内存中的运行机制 局部变量定义以后 必须经过显式初始化才能使用 系统不会为 局部变量执行初始化 局部

9、变量在栈中分配存储空间 如果是基本数据类型 8种 则变量的值直接保存在内存中 如果是引用数据类型 则在变量中保存地址 通过该地址引 用到该变量实际引用的对象或数组 无需系统垃圾回收 超出作用域范围 自动释放空间 u 变量的初始值 成员变量有默认值 局部变量必须显式的初始化 u存储位置 成员变量中的实例变量存储在堆内存中 局部变量存储在栈内存中 静态变量 类变量 存储在数据区中 局部变量和成员变量的区别 成员方法 方法修饰字 返回类型 方法名称 参数1 参数2 throws exceptionList statements 方法体 方法的内容 方法的定义及修饰字 public protected

10、 private static final abstract native synchronized 返回类型可以是任意的Java数据类型 当一个方法不需要 返回值时 返回类型为void 方法也可以分为两类 实例方法 类方法 也称为静态方法 有static修饰 方法分类 P91 例3 6 返回值 u返回类型可以是任意的Java数据类型 包括基本类型和引用 类型 u如果方法声明了方法返回值类型 则方法体中必须有一个有 效的return语句 该语句返回一个变量或一个表达式 这个变量 或表达式的类型必须与此处声明的类型匹配 u当一个方法不需要返回值时 必须使用void来声明没有返回 值 3 5 2参

11、数传递方式 Java里参数传递方法只有一种 值传递 值传递分为两种 基本类型参数传递 引用类型参数传递 基本类型参数传递 public class PassPrimitiveDemo public static void swap int a int b int temp a a b b temp System out println 执行方法时 a a b b 语句 4 public static void main String args int a 1 int b 2 System out println 执行方法前 a a b b 语句 1 swap a b 语句 2 System o

12、ut println 执行方法后 a a b b 语句 3 画内存 分析 引用类型参数传递 public class TestReferenceTransfer public static void swap DataWrap dw 下面三行代码实现dw的a b属性值交换 int tmp dw a dw a dw b dw b tmp System out println swap方法里 a的值是 dw a b的值是 dw b public static void main String args DataWrap dw new DataWrap dw a 6 dw b 9 swap dw S

13、ystem out println 交换结束后 a的值是 dw a b的值是 dw b 注意 引用类型参数传递 的值到底是什么 地址 一个Java源文件中可以包含多个类 但最多只能有一个public 类 如果源文件中没有一个类是public类型的 那么文件命名时最 好与含有main 方法的类名称一致 但这也不是必须的 注意 本节主要内容 3 5方法重载 3 6 构造方法 3 7 this关键字 3 8 static关键字 方法的三要素 调用者 也就是方法的所属者 既可以是类 也可以是对象 方法名 方法的标识 形参列表 当调用方法时 系统将会根据传入的实参列表匹配 方法重载的要求 两同一不同 同

14、一个类中方法名相同 参数列表不同 至于 方法的其它部分 如返回值类型 修饰符等 与方法重载没 有任何关系 方法重载 方法重载 什么叫做重载 Java允许同一类里定义多个同名方法 只要形参列表不同 就可 如果同一类中包含了两个或两个以上方法的方法名 相同 但形参列表不同 则被称为方法重载 参数列表不同包括以下3种情形 u 参数的数据类型不同 u 参数之间的顺序不同 u 参数的个数不同 方法重载 P98 例 3 10 注意 根据返回值类型 系统不能区分两个方法 所以重载不包括 返回值类型 int byte short char 可以构成重载 如果不明确地指明整数的类型 则调用整型参数方法 如果指明

15、参数的类型 则调用相应类型参数的方法 例 TestOverload java Static 关键字静态变量 类变量 在类中 用static声明的成员变量为静态成员变量 它 为该类的公用变量 在第一次类被加载时初始化 对于 该类的所有 对象来说 static成员变量只有一份 public class Cat private static int sid 0 private String name int id Cat String name name name id sid public void info System out println cat is name No id public

16、static void main String arg Cat sid 100 Cat maomao new Cat maomao Cat baibai new Cat baibai maomao info baibai info 例 静态变量 类变量 Stack segmentHeap segment Data segment 什么时候分配内存 分配在哪 从修饰符讲 实例变量无static修饰 而类变量则需要static修饰 从生存期讲 实例变量的生存期从执行new运算后创建对象开始 存在 直到Java垃圾回收器销毁这个对象结束 实例变量的生存期 与对象的生存期一致 类变量的生存期从定义类开始存在 直到该 类所在的程序停上执行为止 很明显类变量的生存期要大于等于实 例变量的生存期 从访问方式讲 实例变量只能通过实例名 实例变量的方式来访问 而类变量可以使用实例名 类变量和类名 类变量两种方式访问 静态变量和实例变量的区别 静态方法 类方法 用static声明的方法为静态方法 在调用该方法时 不会将对 象的引用传递给它 所以在static方法中不可访问非static的成员 静态方法不再

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

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

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