面向对象的编程(基本语法).ppt
《面向对象的编程(基本语法).ppt》由会员分享,可在线阅读,更多相关《面向对象的编程(基本语法).ppt(96页珍藏版)》请在三一办公上搜索。
1、第3章 面向对象编程(基本语法),第3章 面向对象的编程(基本语法),3.1 面向对象程序设计概述3.2 类的定义3.3 类中的方法3.4 方法中的参数传递3.5 访问控制,程序设计语言的发展,机器语言由计算机硬件系统可以识别的二进制指令组成的语言,这种语言中的指令都是由0,1组成的序列,称这样的序列为一条机器指令。如1011 0111 0001汇编语言由机器指令映射出来的容易被人读懂的助记忆符,如ADD DX CX高级语言机器码低级高级,面向过程的程序设计,设计思路自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。程序结构按功能划分为若干个基本模块,形成一个树状结构。各模块间的
2、关系尽可能简单,功能上相对独立;每一模块内部均由顺序、选择和循环三种基本结构组成。其模块化实现的具体方法是使用子程序。优点有效地将一个较复杂地程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。,面向过程的程序设计的局限,在面向过程程序设计中,被操作的数据仍然是嵌入在编程语句中的,并且与程序逻辑混合在一起,计算机的信息世界与现实世界之间的映射关系仍然不直接,不明确。用面向过程的方法开发较大的软件系统,数据缺乏保护。使用面向过程程序设计方法建立的应用程序是很难修改。,面向对象程序设计的概念,面向对象程序设计是建立在结构化程序设计基础上的,但它不再是从功能入手,而是从对象(人、地方、
3、事情等)入手;面向对象程序设计以类作为构造程序的基本单位,它具有封装、数据抽象、继承、多态等特点;,面向对象的方法学,世界是由什么组成的?,对象,一般意义上的对象是现实世界中的一个实际存在的事物,可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划),是构成世界的一个独立单位,具有:对象标识:即对象名,是一个对象区别于其他对象标识符。对象状态:可以用某种数据来描述对象行为:对象所表现的行为或具有的功能,对象,有各自不同的状态,对象,布兰尼,朱丽叶,顾客姓名:朱丽叶年龄:28体重:52千克操作:购买商品,姓名:布兰尼职衔:收银员年龄:35体重:60千克操作:收款打印账单,对象的特征属性,属
4、性对象具有的各种特征每个对象的每个属性都拥有特定值例如:布兰尼和朱丽叶的体重不一样,60kg,布兰尼,属性,35岁,对象的特征方法,方法对象执行的操作,打单,收银,方法,刷卡,对象的属性和方法,列出尼古拉斯凯奇驾驶的这辆法拉利F360 Spider的属性和方法列出小狗对象的属性和方法,属性:品牌:法拉利 型号:F360 Spider 颜色:黄色 价格:380万元方法:发动 停止 加速,属性:颜色:白色方法:叫 跑 吃,说一说教室里的对象描述他们的属性和方法,颜色:黑色品牌:BENQ投影,姓名:张三年龄:20学习,抽象,分类人类通常的思维方式分类所依据的原则抽象忽略事物的非本质特征,只注意那些与
5、当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。,抽象,对象类(抽象化),Shape,从对象抽象出“类”,抽取出下列对象的属性和方法的共同特征,轿车,顾客,类,面向对象方法中的“类”具有相同属性和方法的一组对象的抽象的描述。类的数据成员是对对象属性的抽象,类的方法成员是对对象行为的抽象,而类本身就是对对象的抽象。类与对象的关系 犹如模具和铸件之间的关系,一个属于某类的对象称为该类的一个实例。,对象类(抽象化)类对象(具体化),王艳 2年级3班,刘强 5年级1班,范小飞 2年级1班,Student,类,类和对象,小汽车,类的实例化,是由类具体化对象
6、,类,产地,车体颜色,行驶,刹车,归纳一组相似对象的共性,对象,属性,方法,封装,把对象的属性和方法结合成一个独立的系统单位对象的属性和方法通常被封装在一起,共同体现事物的特性,二者相辅相承,不能分割,封装,封装第一个涵义是,把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。第二个涵义也称作“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。,继承,继承是面向对象语言的另一特性。类与类之间可以组成继承层次,一个类的定义(子类)可以定义在另一个已定义类(父类)的基础上。子类可以继承父类中的属性和操作,
7、也可以定义自己的属性和操作。因而具有继承这一特性所带来的优势,大大增加了程序的重用性。,面向对象的方法学,继承,多态,多态性多态性是指不同类型的对象接收相同的消息时产生不同的行为。如电梯系统中,当向按钮对象发送消息pressButton()时,不同按钮对象如电梯内部按钮(ElevatorButton)和楼层按钮(FloorButton)会自动判断自己的所属类并执行相应的服务。,消息机制,在面向对象技术中,对象间的交互是通过消息的传递来完成的。消息处理方法就是对象的成员方法。Windows操作系统也是以消息为基础,事件为驱动的。,3.2 类的定义,类是对象的模板,使用对象前必须先创建类,修饰符
8、class 类名 extends 父类 implements 接口名 成员变量声明;/描述对象的状态 方法声明;/实现对象的行为,public class Customer public stringname;public doublecreditLimit;public intcustomerID;,类访问修饰符默认为:friendly,3.2 类的定义,类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。类的实现包括两部分:类声明和类体。“class Customer”叫做类声明;“Customer”是类名。习惯上类名的第一个字母大写,但这不是必须的。类声
9、明之后的一对大括号“”,“”以及它们之间的内容称做类体。,3.2 类的定义,类修饰符:public公共类、private私有类、protected受保护类;abstract抽象类;final最终类。class:是关键字,是声明类的必须的符号。类名:是类设计者指定的标识符。父类:如果正在定义的类需要从另一个类中继承所有的成员,被继承的类就是父类。,类的访问控制,顶层类只能是public或默认访问级别public级别的类可以被同一个包或者其他包中的类访问默认级别的类只能被同一个包中的类访问,public class Sample/public级别class Sample/默认访问级别protect
10、ed class Sample/非法private class Sample/非法,class trapezia float supside,subside,high,area;/变量定义部分 float computeArea()/方法定义 area=(supside+subside)*high/2.0f;return area;void modifyHigh(float h)/方法定义 high=h;,3.2 类的定义,成员变量,成员变量是用来描述事物的静态特征的。,修饰符,修饰符 数据类型 变量名;,public:可被所有其他类引用。private:仅可被该类自身引用和修改,不能被其他任
11、何类(包括子类)引用。protected:该类自身、子类、同一包中的其他类。缺省:本包中的类。static:类成员变量,对所有的实例一致,引用时前缀可使用类名或对象名。final:数值不变常量,定义同时应对其进行初始化。,成员变量和局部变量,类中变量定义部分所定义的变量被称为类的成员变量。在方法体中定义的变量和方法的参数被称为局部变量。成员变量在整个类内都有效,局部变量只在定义它的方法内有效。如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏。这时如果想在该方法内使用成员变量,必须使用关键字this。,变量1类型 变量1;变量2类型 变量2;变量3类型 变量3;,public 返回类型
12、方法1()变量4类型 变量4;public 返回类型 方法2()变量5类型 变量5;,public class AutoLion,AutoLion类的方法别的类的方法,谁能使用这些变量?,方法1,方法2,成员变量,局部变量,局部变量,成员变量和局部变量,public class AutoLion String color=黄色;public void run()/方法1:跑(正在以0.1米/秒的速度向前奔跑。);public String bark()/方法2:叫 String sound=吼;return sound;public String getColor()/方法3:获得颜色属性 r
13、eturn color;public String showLion()/方法4:输出类的描述信息 return 这是一个+getColor()+的玩具狮子!叫声是+sound;,可以调用吗?,成员变量和局部变量,类的方法,(2)类的方法 类的方法,用来规定类属性上的操作,实现类对外界提供的服务,也是类与外界交流的接口。Java中声明方法的语法如下:,修饰符 返回值类型 方法名(参数列表)throws 异常1/方法体声明 局部变量声明;语句序列;,类和对象,类:相对对象而言,类似于蓝图包含方法和数据,对象:是类的实例使用关键字 new 创建对象具有行为,对象,类,3.2.2 创建类的实例对象,
14、创建一个对象包括对象的声明和为对象分配内存两个步骤。(1)对象的声明。一般格式为:,Person zhangPing;,类的名字 对象名字;,如:,3.2.2 创建类的实例对象,(2)为声明的对象分配内存使用new运算符为声明的对象分配内存。如:,zhangPing=new Person();,class Person float height,weight;String name;void speak(String s)System.out.println(s);class Program public static void main(String args)Person zhangPin
15、g;/声明对象zhangPing=new Person();,(3)对象的内存模型,3.2.2 创建类的实例对象,当用Person类声明一个变量,即对象zhangPing时,如例子中的对象:Person zhangPing;内存模型如左图所示,3.2.2 创建类的实例对象,当系统见到:zhangPing=new Person();时,就会做两件事:,为height,weight,name各个变量分配内存,即Person类的成员变量被分配内存空间。new运算符在为变量height,weight,name分配内存后,将返回一个引用给对象变量zhangPing。,3.2.2 创建类的实例对象,值类型
16、与引用类型,JAVA数据类型分为两类:值类型和引用类型。值类型:包括简单类型、枚举类型。引用类型:包括类、接口、数组。一般把引用类型的变量称为对象。,值类型与引用类型区别,堆栈,堆,5,6,i,j,实际数据,12345H,obj,public class School/定义属性 String schoolName;/学校的全称 int classNum;/教室的数目 int labNum;/机房的数目/定义方法 public String toString()return schoolName+n+配备:+classNum+教室+labNum+机房;,定义类的toString()方法,用于输出
17、类相关的信息,public String toString()return 字符串;/方法体,成员变量,使用对象,使用对象:使用“.”进行以下操作给类的属性赋值:对象名.属性调用类的方法:对象名.方法名(),school.Name=“西亚斯学院;/给属性赋值school.toString();/调用类的方法,该方法中的操作将被执行,public class InitSchool public static void main(String args)School school=new School();System.out.println(school);school.Name=“郑州轻工业学
18、院;school.classNum=100;school.labNum=20;System.out.println(school);,创建和使用对象示例,说一说看到什么效果?,编写学生类,输出学生相关信息编写教师类,输出教师相关信息,3.3 构造函数,Student zhang=new Student();zhang.Name=张靓靓;zhang.Age=20;zhang.Hobby=唱歌歌;,班级来了新学生添加学生对象,学生类实例化对象、设置属性,初始属性若太多,设置麻烦,能否在实例化时设置属性?,public Student(string name,int age,string hobby
19、)this.Name=name;this.Age=age;this.Hobby=hobby;,Student zhang=new Student(张靓靓,20,唱歌歌);,一次设置完成,类中加入这个方法,添加的方法叫做构造函数,构造函数,访问修饰符()/构造函数的主体,public class Employee/默认构造函数 Employee()qualification=研究生;,构造函数,是类中的一种特殊的方法构造函数名与类名相同,不返回任何值可初始化成员变量,每次创建类的实例都会调用此方法,static void Main(String args)/调用默认构造函数 Employee o
20、bjEmployee=new Employee();(“资格=+objEmployee.qualification);(“薪水=+objEmployee.salary);,构造函数,class Employee,private String name;private char gender;private String qualification;private int salary;,/默认构造函数 private Employee()qualification=“研究生;,实例化对象调用构造函数,使用 new 关键字,finalize()方法,Java中一旦垃圾收集器准备好释放对象占用的存
21、储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。使用finalize()方法的一般格式如下:protected void finalize()/finalization code here 其中关键字protected是防止该类之外的其他对象或代码访问该方法。,3.4方法的使用,写出狮子对象的“跑”方法写出狮子对象的“叫”方法,电动玩具狮子属性:颜色:黄色行为:跑叫,按此按钮,狮子开始跑,3.4方法的使用,public class AutoLion String
22、color=黄色;public void run()(正在以0.1米/秒的速度向前奔跑);public String bark()String sound=吼;return sound;,AutoLion类代码实现,方法名称,方法体,返回类型,如何定义类的方法,方法(Method)是一组程序代码的集合方法是类或对象的行为对象需要做某些事情,在类中添加方法,方法的名称,方法的主体,方法返回的数据类型,参数列表,3.4方法的使用,访问修饰符 返回类型 方法名(参数列表)/方法的主体,通过return返回值,publicprivate,intdoublestringvoid,命名规范:单词首字母大写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 编程 基本 语法
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6034406.html