《第3章面向对象的编程技术精选PPT.ppt》由会员分享,可在线阅读,更多相关《第3章面向对象的编程技术精选PPT.ppt(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章面向对象的编程技术第1页,本讲稿共24页3.1 3.1 类类(类的定义与类的定义与封装性封装性)3.2 3.2 类的实例化类的实例化(对象的定义与初始化、使用对象的定义与初始化、使用)3.3 3.3 构造方法构造方法3.43.4 类的继承性类的继承性3.53.5 thisthis与与supersuper3.63.6 类的多态性类的多态性3.73.7 抽象类、最终类、字符串类抽象类、最终类、字符串类学习内容学习内容第2页,本讲稿共24页以五子棋游戏比较面向过程和面向对象设计思路。以五子棋游戏比较面向过程和面向对象设计思路。l面向过程的设计思路面向过程的设计思路是首先分析问题的步骤:是首先分
2、析问题的步骤:1 1、开始游戏,、开始游戏,2 2、黑子先走,、黑子先走,3 3、绘制画面,、绘制画面,4 4、判断输赢,、判断输赢,5 5、轮到白子,、轮到白子,6 6、绘制画面,绘制画面,7 7、判断输赢,、判断输赢,8 8、返回步骤、返回步骤2 2,9 9、输出最后结果。、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。把上面每个步骤用分别的函数来实现,问题就解决了。l面向对象的设计思路面向对象的设计思路是分析问题相关事物:整个五子棋可是分析问题相关事物:整个五子棋可以分为以分为 1 1、黑白双方,这两方的行为是一模一样的,、黑白双方,这两方的行为是一模一样的,2 2、棋盘
3、、棋盘系统,负责绘制画面,系统,负责绘制画面,3 3、规则系统,负责判定诸如犯规、输赢、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。(规则系统)来对棋局进行判定。第3页,本讲稿共24页面向对象设计基础面向对象设计基础l什么是对象?什么是对象?l对象之
4、间如何交互(消息传递)对象之间如何交互(消息传递)?对象对象(object)everything is an object现实世界的对象现实世界的对象:(具体的具体的)人、桌子、书、自行)人、桌子、书、自行车、电视、狗、文件、表格、按钮、窗口车、电视、狗、文件、表格、按钮、窗口Java中通过调用方法来传递消息。中通过调用方法来传递消息。第4页,本讲稿共24页面向对象方法面向对象方法l实体对象的特征分析实体对象的特征分析静态特征:属性特点静态特征:属性特点动态特征:行为功能动态特征:行为功能姓名姓名性别性别年龄年龄职称职称专长专长量血压量血压听诊听诊写病历写病历开处方开处方第5页,本讲稿共24页
5、3.1 3.1 类类 l什么是类?什么是类?1 1、类类是一组具有相同属性和行为的对象描述;是一组具有相同属性和行为的对象描述;(抽象的抽象的)人、桌子、书、自行车、电视、狗、文件等。)人、桌子、书、自行车、电视、狗、文件等。2 2、类与对象的关系类与对象的关系是抽象与具体的关系。是抽象与具体的关系。3 3、JavaJava面向对象程序设计的面向对象程序设计的核心是对象核心是对象,JavaJava程序程序以类为模以类为模块块。4 4、面向对象程序(、面向对象程序(OOPOOP)技术主要包括)技术主要包括封装、继承、多态。封装、继承、多态。第6页,本讲稿共24页3.1 3.1 类类 l3 31
6、12 2 类的定义格式类的定义格式 1 1、类声明定义类的名称、访问权限修饰符、与其它类的关系。、类声明定义类的名称、访问权限修饰符、与其它类的关系。格式:格式:l class class extends extendsimplements implements 接口名接口名 2 2、类主体包括、类主体包括成员变量的声明成员变量的声明和和成员方法的声明及实现成员方法的声明及实现。l修饰符修饰符 类型类型 成员变量;成员变量;l修饰符修饰符 返回类型返回类型 成员方法成员方法(参数列表参数列表)方法体;方法体;类修饰符:类修饰符:public,public,无,无,abstract,finala
7、bstract,final成员修饰符:成员修饰符:public,protected,private,public,protected,private,无无第7页,本讲稿共24页3.1 3.1 类类 l3 31 12 2 类的完整定义类的完整定义 修饰符修饰符 class class 类名类名extends extends 父类名父类名implements implements 接口名接口名 修饰符修饰符 类型类型 成员变量;成员变量;修饰符修饰符 类型类型 成员方法成员方法(参数列表参数列表)类型类型 局部变量局部变量;方法体;方法体;第8页,本讲稿共24页定义一个类定义一个类“工人工人”cl
8、ass Employee String name;int age;float salary;void setEmployee(String n,int a,float s)name=n;age=a;salary=s;举例:举例:第9页,本讲稿共24页public class Date int year,month,day;/描述年、描述年、月、日的三个成员变量月、日的三个成员变量 void setDate(int y,int m,int d)year=y;month=m;day=d;int getYear()return year;int getMonth()return month;int
9、getDay()return day;定义一个定义一个“日期日期”类类第10页,本讲稿共24页l封装性封装性对象本身的数据得到保护对象本身的数据得到保护/隐藏。隐藏。其他对象仅仅需要知道对该对象的访问方法即其他对象仅仅需要知道对该对象的访问方法即可。可。好处好处l模块化模块化l信息隐藏信息隐藏l可重用性可重用性第11页,本讲稿共24页从类的定义体现封装性从类的定义体现封装性 Java Java 程序通过设置类的访问权限和类中程序通过设置类的访问权限和类中成员的访问权限,来实现封装性。成员的访问权限,来实现封装性。如:如:1 1、类的访问权限、类的访问权限有有 public public 和无两
10、种情况。和无两种情况。(P50P50)public class Date /public class Date /公有类公有类 class Date/class Date/非公有类非公有类2 2、类成员的访问权限、类成员的访问权限有有4 4种:种:publicpublic、protectdprotectd、无、无、private(private(见表见表3-1)3-1)第12页,本讲稿共24页第13页,本讲稿共24页3.2 类的实例化类的实例化(对象的声明、初始化、使用对象的声明、初始化、使用)1 1、声明对象、声明对象类类 对象对象;Date date1;Employee e;Date da
11、te1;Employee e;2 2、对象初始化、对象初始化对象对象 =new=new 类型构造方法类型构造方法(参数列表参数列表)Employee e=new Employee();Employee e=new Employee();Employee e=new Employee(Employee e=new Employee(“张三张三”,2020,1860);1860);?e.name=e.name=“张三张三”;e.age=20;e.age=20;e.salary=1860.5;e.salary=1860.5;第14页,本讲稿共24页3 3、对象的引用:调用成员变量和方法、对象的引用:
12、调用成员变量和方法对象对象.成员变量成员变量对象对象.成员方法成员方法(参数列表参数列表)date1.year=2011;date1.year=2011;/引用对象的成员变量引用对象的成员变量date1.setDate(2006,1,28);/date1.setDate(2006,1,28);/调用对象调用对象的方法的方法第15页,本讲稿共24页举例举例:lclass Date ll int year,month,day;l void setDate(int y,int m,int d)l l year=y;l month=m;l day=d;l l lPublic class DateDem
13、olPublic static void main(String args)l /创建对象创建对象l /对象引用对象引用l第16页,本讲稿共24页实例成员和类成员实例成员和类成员 无无staticstatic修修饰饰的的变变量量或或方方法法称称实实例例成成员员。只能通过对象引用。只能通过对象引用。用用staticstatic修修饰饰的的变变量量或或方方法法称称类类成成员员或或静态成员。可通过对象或类名来引用。静态成员。可通过对象或类名来引用。第17页,本讲稿共24页举例举例:lclass Date ll static int year;l int month,day;l void setDat
14、e(int y,int m,int d)l l year=y;l month=m;l day=d;l l lPublic class DateDemolPublic static void main(String args)l Date days;l days.year=2011;或或Date.year=2011;l days.month=3;l days.day=15;l 第18页,本讲稿共24页总结:编写总结:编写Java程序的程序的3个基本步骤个基本步骤 一、定义一个或多个类(类定义)一、定义一个或多个类(类定义)决定了在每个对象中存入什么信息并执行什么决定了在每个对象中存入什么信息并执
15、行什么方法。方法。二、创建对象作为类的实例(对象初始化)二、创建对象作为类的实例(对象初始化)创建一个实例对象,其信息有明确的意义。创建一个实例对象,其信息有明确的意义。三、使用对象来完成要实现的任务(对象使用)三、使用对象来完成要实现的任务(对象使用)调用对象的方法,让对象执行某项任务调用对象的方法,让对象执行某项任务第19页,本讲稿共24页3 33 3 构造方法构造方法 l3.3.1 3.3.1 构造方法的定义构造方法的定义 1 1、类的构造方法用于实例化对象。常用形式:、类的构造方法用于实例化对象。常用形式:public public 类名()类名()public public 类名(参
16、数列表)类名(参数列表)2 2、构造方法的特征:、构造方法的特征:l 具有与类相同的名称具有与类相同的名称l 不能含有返回类型,也不能是不能含有返回类型,也不能是voidvoid的的l 不能在方法中用不能在方法中用returnreturn语句返回一个值语句返回一个值l在类实例化时,它会由系统自动调用在类实例化时,它会由系统自动调用第20页,本讲稿共24页class Employee String name;int age;float salary;public Employee(String n,int a,float s)name=n;age=a;salary=s;例如:类例如:类“工人工人
17、”的定义的定义第21页,本讲稿共24页例如:类例如:类“工人工人”的实例化。的实例化。public class EmployeeTest public class EmployeeTest public static void main(String args)public static void main(String args)Employee staff=new Employee3;Employee staff=new Employee3;staff0=new Employee(staff0=new Employee(“张三张三”,30,30,3000);3000);staff1=new
18、 Employee(staff1=new Employee(“李四李四”,26,26,2700);2700);staff2=new Employee(staff2=new Employee(“王五王五”,53,53,5000);5000);for(int i=0;i staff.length;i+)for(int i=0;i staff.length;i+)System.out.println(System.out.println(“姓名姓名=”+staffi.name+,+staffi.name+,工资工资=+staffi.Salary=+staffi.Salary 第22页,本讲稿共24页复习提问复习提问 l1 1、构造方法有什么特点?、构造方法有什么特点?l2 2、构造方法的作用?、构造方法的作用?第23页,本讲稿共24页练习:练习:第24页,本讲稿共24页