第3讲类对象和方法.ppt
《第3讲类对象和方法.ppt》由会员分享,可在线阅读,更多相关《第3讲类对象和方法.ppt(73页珍藏版)》请在三一文库上搜索。
1、第三讲 面向对象编程,计算机学院 赵卓君,回顾,Java 的数据类型:原始数据类型、引用数据类型 数据转换有两种类型:自动类型转换和强制类型转换 Java 提供了一组丰富的运算符 数组用于将相同数据类型的多项数据存储在连续的内存单元中 Java 支持以下控制语句编程结构: if else,switch for,while,do - while,计算机学院 赵卓君,本讲目标,类和对象的概念(重点、难点) 在Java中实现类并创建对象(重点) 方法的定义、调用、和参数的传递(重点) 构造函数(重点、难点) this关键字(重点) 包的使用(重点) 继承和多态(重点、难点) 访问修饰符和方法修饰符(
2、重点、难点) 接口(重点、难点) 内部类(嵌套类) (难点) 枚举,计算机学院 赵卓君,英语单词-1,class 类 object 对象 OOP-Object Oriented Programming 面向对象编程 constructor 构造器,构造方法 property 属性,特性 method 方法 protect 受保护 package 包 extends 扩充,延伸,伸展 static 静态的,计算机学院 赵卓君,英语单词-2,extends 扩充,延伸,伸展 static 静态的 final 结局,决赛,期末考试 abstract 抽象 interface 接口 implement
3、 实现 overload 重载 override 重写,覆盖 nested 嵌套 anonymous 匿名 enum 枚举,计算机学院 赵卓君,面向对象编程,OOP,计算机学院 赵卓君,对象,对象,“对象是存在的具体实体,具有明确定义的状态和行为。”,计算机学院 赵卓君,对象的示例,计算机学院 赵卓君,属性,事物的特性在类中表示为变量 每个对象的每个属性都拥有其特有的值 属性名称由类的所有实例共享,“在类中表示对象或实体拥有的特性时称为属性 ”,计算机学院 赵卓君,方法,“对象执行的操作称为方法。”,计算机学院 赵卓君,类和对象的区别,计算机学院 赵卓君,在Java中定义类和创建对象,类的命名
4、规则: 不能为 Java 中的关键字 不能包含空格或点号“. ” 可以下划线“_”、字母或“$”符号开头,class Student String stuName; String stuSex; int stuAge; ,计算机学院 赵卓君,类中的方法2-1,Java中的方法相当于C语言的函数 语法 ( , ,) ,计算机学院 赵卓君,类中的方法2-2,方法的命名规则: 不能为 Java 中的关键字 不能包含空格或点号“.” 可以下划线“_”、字母或“$”符号开头 实例方法可使用圆点符号来访问 对象名.方法名 例如:obj.method(); 方法的参数可以是对象,计算机学院 赵卓君,抽象,处
5、理事物复杂性的方法,只关注事物的重要 细节,而忽略事物 的次要细节。,计算机学院 赵卓君,数据抽象,抽取出事物中的关键数据 抽取出事物中的属性和方法,根据具体的应用抽取出类的相关关属性和操作。,计算机学院 赵卓君,数据抽象的示例,计算机学院 赵卓君,封装,信息隐藏,隐藏对象的实现细节,不让用户看到 将东西包装在一起,然后以新的完整形式呈现出来 例如,两种或多种化学药品组成一个胶囊 例如,手机、电脑 将方法和属性一起包装到一个单元中,单元以类的形式实现,隐藏属性、方法或实现细节的过程称为封装。,计算机学院 赵卓君,this关键字,用于任何实例方法内,指向当前对象 this 的值指向对其调用当前方
6、法的对象 this 关键字可在需要当前类类型的对象引用时使用,计算机学院 赵卓君,构造方法,每当创建一个类的实例时就调用的方法 为对象分配内存,初始化实例变量 与类同名,但没有返回类型,不使用void 两种构造方法 参数化构造方法 隐式构造方法,计算机学院 赵卓君,垃圾回收,使用new关键字来给对象分配内存。 Java自动垃圾回收无用对象占用的内存,无需程序员的干预。 程序员可以使用System.gc( )来方法建议回收垃圾内存。,计算机学院 赵卓君,包,包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件 有助于避免命名冲突。 包允许在更广的范围内保护类、数据和方法,可以
7、在包内定义类,而在包外的代码不能访问该类,包将类名空间划分为更加容易管理的块 包既是命名机制也是可见度控制机制,计算机学院 赵卓君,继承,计算机学院 赵卓君,继承的优点,计算机学院 赵卓君,子类构造方法,计算机学院 赵卓君,继承小结,父类的构造方法不能被子类继承 除了继承父类的成员,子类也可以有自己的成员 可以使用super关键字调用父类的构造方法 super () 方法始终指向调用类的直接父类 super()语句必须是子类构造方法的第一句 父类构造方法的调用总是先于子类构造方法,计算机学院 赵卓君,多态性,多态性是指“多种形式” 它使用不同的实例而执行不同操作 多态包括方法重写和方法重载,计
8、算机学院 赵卓君,方法重载 3-1,定义:同一个类中,有两个或多个方法名称相同、参数不同(参数的数据类型不同、或参数的个数相同,或参数的顺序不同) ,则这些方法重写构成重载,计算机学院 赵卓君,方法重载 3-2,public class DisplayNumber /* 无参数的显示方法*/ void display() System.out.println(“无参数可显示!“); /* 带参数的显示方法*/ void display(int num, int num1) System.out.println(“两个整数是:“ + num + “ “ + num1); /* 带双精度参数的显示
9、方法*/ void display(double count) System.out.println(“在 display(double)方法内:“ + count); ,计算机学院 赵卓君,方法重载 3-3,public static void main(String arg) int count = 25; DisplayNumber dispObj = new DisplayNumber(); dispObj.display(); dispObj.display(10 , 20); /* 不存在具有一个 int 型参数的方法, *int 型值自动转化为 double 型值 */ Syst
10、em.out.println(“调用 display(double) 方法,“ + “使用 int 变量: “ + count); dispObj.display(count); dispObj.display(25.5); ,计算机学院 赵卓君,方法重写 3-1,定义:子类中有一个方法和父类的方法名称相同、参数相同(参数的数据类型相同、参数的个数相同) 、返回值相同,则子类的这个方法重写父类的方法,计算机学院 赵卓君,方法重写 3-2,父类和子类中具有相同名称和类型的方法,class Rectangle int length; int width; Rectangle() /父类无参构造方法
11、 Rectangle(int len , int wid) length = len; width = wid; void getPerimeter() /* 计算矩形的周长.*/ System.out.println(“矩形的周长为“ + (2 * (length + width); ,class Square extends Rectangle Square(int len) length = len; void getPerimeter() /* 计算周长.*/ System.out.println(“正方形的周长为“ + (4 * length); ,计算机学院 赵卓君,方法重写 3-
12、3,计算机学院 赵卓君,访问修饰符 3-1,信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰符的原因 信息隐藏的原因包括: 对任何实现细节不需要关心 防止用户意外删除数据,计算机学院 赵卓君,访问修饰符 3-2,计算机学院 赵卓君,访问修饰符 3-3,访问修饰符可访问性,计算机学院 赵卓君,特殊修饰符,计算机学院 赵卓君,static 修饰符 3-1,static修饰符修饰的变量称为静态变量 static修饰符修饰的方法称为静态方法 静态变量和静态方法不依赖对象而存在,可通过类型打点直接访问,如: 类名.静态变量 类名.静态方法(),计算机学院 赵卓君,static 修饰符 3-2,计算
13、机学院 赵卓君,public static void main(String arg) /*初始化变量*/ double inch = 66; double feet = InchesToFeet.convert(inches); System.out.println(inch + “英寸为“ + feet + “英尺。“); ,public static double convert(double in) return (in / inches); ,static 修饰符 3-3,静态方法,计算机学院 赵卓君,final 修饰符4-1,final 修饰符可应用于类、方法和变量。 final在
14、应用于类、方法和变量时意义是不同的,但本质是一样的:final表示不可改变。 声明为final的类不能被继承;声明为final的方法不能被重写;声明为final的的变量为常量;,计算机学院 赵卓君,final 修饰符4-2,final class TestFinal int i = 7; int j = 1; void f() class Further extends TestFinal ,final类不能被继承,声明为final的类不能被继承。 final 类示例:,计算机学院 赵卓君,final 修饰符4-3,class TestFinal final void f() class Fu
15、rther extends TestFinal final void f() ,final方法不能被覆盖,在方法声明中使用 final 关键字向编译器表明子类不能重写此方法。 在声明类中,一个 final 方法只被实现一次。 如果一个类为 final 类,那么它的所有方法都为隐式的 final 方法。,计算机学院 赵卓君,final 修饰符4-4,一个变量可以声明为final,这样做的目的是阻止它的内容被修改。 声明final变量后,只能被初始化一次,然后就不能对其值进行修改。 一个final变量实质上是一个常量。,class FinalDemo public static void main
16、(String args) final int noChange = 20; noChange = 30; ,final变量不能被修改,计算机学院 赵卓君,abstract 修饰符 3-1,由abstract修饰的方法叫抽象方法;由abstract修饰的类叫抽象类,抽象方法必须声明在抽象类中 抽象方法语法: abstract type method_name(parameter_list); 声明抽象类语法: abstract class 使用:父类中的某些抽象不包含任何逻辑,并需要在子类中重写,子类提供这种抽象方法的实现细节,计算机学院 赵卓君,abstract 修饰符 3-2,抽象类可以具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 方法
链接地址:https://www.31doc.com/p-2255448.html