最新四章类和对象1精品课件.ppt
《最新四章类和对象1精品课件.ppt》由会员分享,可在线阅读,更多相关《最新四章类和对象1精品课件.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Company Logo主要内容学习目标及重、难点1任务学习2课堂实践3总结与要求4任务介绍任务一 理解类和对象的概念及其关系,会分析和设计银行帐户对象和储户对象任务二 定义平面上任意两个点p1,p2,并计算p1到原点的距离,以及点p1到p2的距离任务三 定义和处理员工信息任务分析支撑知识讲解p 面向对象基本概念p 类的定义 、对象的创建p 构造方法任务实现任务解决任务解决任务小结Company Logo面向对象v对象对象 世界上所有的事物都可以称为对象。 包括有形(一台电视机等)和无形(帐户、一项记录等) 对象两大要素 属性(对象静态特征,可以用某些数据描述) 操作(对象动态特征、又称方法,
2、具有的行为或功能) 如电视 属性有:品牌、尺寸、重量等 操作有:收视、选台、音量调节等 按照子类与父类的关系,把若干个对象类组成一个层次结构的系统 对象彼此之间仅能通过传递消息互相联系。Company LogoCompany Logo课堂思考思考:一只大雁要从北方飞往南方第一步:抽象出对象-大雁第二步:识别该对象的属性-一双翅膀,黑色的羽毛第三步:识别该对象的行为-飞行、觅食等第四步:封装属性和行为来描述大雁这类动物。总结:类是封装对象属性和行为的载体 对象是类的一个实例Company Logo面向对象v类类 对具有相同基本特征对象的一种抽象,是同一类事物的统称 类也是Java中最重要的数据类
3、型,自定义类型 由类定义生成的数据称为这个类的实例或对象。 类和对象关系 类是一个抽象的概念 对象是一个具体的类的实例一个类可以生成多个不同的对象,具有不同的属性值Company Logo例子Company Logo面向对象例如:定义一个类圆class Circle /属性 String color; /颜色 int length; /半径 /方法 void expand() 方法体 /方法:放大 void reduce() 方法体 /方法:缩小对象具有属性和行为。与之相对应,类在定义时,需要声明类的变量(数据)和方法。Circle c1=new Circle() /生成类Circle的实例c
4、1Company Logo类v属性属性-成员变量成员变量 属性称为数据成员,或者成员变量 描述类中所定义的数据,对客观世界实体所具有性质的抽象 类的每个实例都有自己特有的属性值例如Circle类中所定义的代表半径、颜色等的数据成员,就是Circle类的属性Company Logo类v方法方法 在类中实现的操作,它是功能实现的基本单位。 方法描述了对象执行操作的具体实现算法一个方法有以下几个部分构成:n方法名n输入参数(可空)n 返回值(可空)n执行代码段为了使Circle类的对象可以在屏幕上显示自己,可以定义方法show()int show (int i,float j)/ 返回值 方法名 输
5、入参数 /实现代码Company Logo类v消息消息 软件对象通过相互间传递消息来相互作用和通信,一个消息由三部分组成: 接受消息的对象 接收对象要采取的方法 方法需要的参数对象对象B对象对象 A消息消息Company Logo任务学习v 完成任务步骤分析完成任务步骤分析 了解对问题的描述 建立使用实例,分析整个应用实现的场景ATM必须允许用户插入银行卡,选择合适的帐户,然后存钱、取钱、查询余额;一个银行帐户必须记录帐户的ID和当前余额;支票帐户和现金帐户必须支持存钱和取钱。“取钱“是ATM的一个应用实例(存钱、查询余额、验卡、取钱-数目超过余额等也是),步骤有:n选择银行列出的帐户类型n输
6、入取钱的数额(不超过余额)n取出钱n取出卡Company Logo任务学习v 完成任务步骤分析完成任务步骤分析 提取候选类和方法(1)要发现对象以及对象的属性:n在以上使用实例中寻找名词,如帐户(2)要发现方法:n在使用实例中寻找动词,如查询(3)确定哪些是对象,哪些是对象的属性:n一般,属性是一些简单值,如余额。n而对象是由一些简单值组合而成,如帐户包括户名,余额,开户时间等。(4)把找到的方法分配对合适的对象,使其成为对象的成员方法。一些属性和对象:n银行、帐户、余额、银行卡等找到的方法包括:n取钱、选择帐户、查询余额、取卡等Company Logo任务学习v 任务解决任务解决 确定银行帐
7、户对象和储户对象:BankAccountint accountid /帐号double balance/余额void credit(double money)/存入钱到帐户double getbalance(int id)/查询帐户中的余额void debit(double money) /从帐户中取钱Personint id /身份证号int age /年龄String name/姓名void pressButton() /按钮void inputCard()/插卡绿色绿色:属性:属性紫色紫色:方法:方法这两个对象之间存在的关系为:一个储户可以有多个银行帐户,一个帐户只能属于一个储户。Com
8、pany Logo面向对象特性v三个主要特性三个主要特性 继承性 封装性 多态性继承性:指一个新的类继承原有类的基本特征,并可增加新的特性继承具有传递性,Java是单继承封装是一种信息隐蔽技术,封装的目的n隐藏类的实现细节n迫使用户通过接口去访问数据n增强代码的可维护性封装的实现nJava通过访问控制权限来实现封装,访问权限有4种:public, protected, 缺省, private多态性是指一个名称对应有多种不同的功能,提供灵活性类的多态性主要通过方法的重载,覆盖和接口来实现Company Logo面向对象v课堂思考课堂思考 小王本来体重70kg,经过减肥,体重降到45kg,试从这个
9、问题领域中识别对象、类、属性、状态和状态的变化。 1) 类:人。 2) 对象:小王。 3) 属性:体重。 4) 状态:70kg。 5) 状态的变化:小王的减肥行为导致体重下降Company Logo任务学习v 总结总结 介绍面向对象基础知识 类和对象 面向对象分析和设计的方法 三个主要特性: 继承性 封装性 多态性Company Logo任务学习v任务描述任务描述 任务二: 定义平面上任意两个点p1,p2,并计算p1到原点的距离,以及点p1到p2的距离Company Logo任务学习v 支撑知识介绍支撑知识介绍 类的定义 属性的定义 方法的定义 方法定义 方法调用 方法重载 构造方法 主方法访
10、问控制修饰符其他修饰符Company Logo类的定义v类类 类是封装对象的属性和行为的载体 Java中最重要最基本的数据类型,由两种基本成员构成: 数据(属性) 可以是基本数据类型 也可以是某个类的实例 方法 表示对象具有的行为,与函数类似,只能在类内定义Company Logo271 Java 类的定义-语法规范类的修饰符n 访问控制权限修饰符(public、缺省 、private和protected不能)n抽象和最终类修饰符(final,abstract,static不能用 )n类修饰符为可选项extendsn继承父类implements n实现接口n类是组成Java程序的基本要素。它封
11、装了一类对象的属性和方法,是这一类对象的原型。类的修饰符类的修饰符 class 类名称类名称 extends 父类名称父类名称implements 接口名称列表接口名称列表 成员变量定义及初始化;成员变量定义及初始化; 构造函数定义构造函数定义; 方法定义及方法体;方法定义及方法体;类体,其类体,其中定义了该类中所有的变量和中定义了该类中所有的变量和该类所支持的方法,称为成员变量和成该类所支持的方法,称为成员变量和成员方法。员方法。类体1 Java 类的定义v类名类名 必须符合Java标识符的命名规则 以字母、字符”_”或”$”开头 不能使用与Java关键字相同的类名 类名通常以大写字母开头,
12、如果类名由多个单词组成,则每一个单词的开头字母要大写 类名应尽量有意义,便于程序阅读者的理解和程序的维护,养成良好的编程习惯。2、类的修饰符v 访问控制修饰符访问控制修饰符 public 公开类:类成员可以被本包和不同包得任何类、对象所用;反之非公开类通常为同一个包中其它非公开类或公开类服务。 缺省 只能被同一个 包中的其他类、对象引用或继承。 protected 不能用 private 不能用v 抽象类修饰符抽象类修饰符 abstract 后面学v 最终类修饰符最终类修饰符 final 后面学注意:abstract和final是矛盾的,不能同时选择,要么都不用,要么只能选一个。3、成员变量定
13、义-语法规范变量修饰字变量修饰字 变量数据类型变量数据类型 变量名变量名1,变量名变量名2=变量初值变量初值;public | protected |缺省缺省| private static final transient volatilen 成员变量的类型可以是基本类型也可以是引用类型(类,接口,数组)n 在一个类中的成员变量唯一n 变量必须先定义,后使用n 可以设置初值,如果没有设置,则会有默认值整型 (byte、int、short、long)0字符型 (char)u0000布尔型 (boolean)false实型 (float double)0.0引用类型 (数组、类、接口)null3、
14、成员变量定义例如例如: public class Date1 /类声明 int year,month,day; /成员变量声明 v 或者:或者:byte b;double d1=0.23,d2=56.7;boolean mycom=true;char mc=b;String s“abc”;成员变量定义-修饰符v访问控制修饰符有4种 public、protected、缺省、 private,用来规定变量的访问权限vstatic 指明该变量是一个类变量(静态变量);若无,则为实例变量(属于对象)vfinal 指该变量是一个常量,不可改变Company Logo334、访问修饰符的控制范围访问修饰符
15、本类同一包中的类或子类不同包中的类或子类publicprivateprotected缺省 :可访问class A public int x;/任何类的对象都能对它读写完全暴露给使用者,除非特殊,一般不定义 pretected int y;/同一个包中任何类或不同包中该类子类对象能进行读写 private int z;/只有本类自身成员才能访问 int w;/同一个包中任何类对象可以进行读写 void setX(int a) z=a;/可以,在A类内部public class TestA public static void main(String args) A pt=new A();/通过n
16、ew运算符生成一个A类对象 pt.x=10; /因为是public,可对A类的对象中x成员进行读写 pt.y=20;/如果在同一个包,是可以的。否则不可以 pt.z=30;/不行,只有在A类内部才可以访问,外部无权 假设两个类定义在同一个包中Class Point static int x;/静态(类)变量静态(类)变量 int y; /实例变量实例变量Public class TeatPoint public static void main(String args) Point.x=10;/可以。可以。X一直存在,随时可用,与有无对象无关一直存在,随时可用,与有无对象无关 Point.y=
17、10;/不可以,是实例变量,必须先创建对象后才能使用不可以,是实例变量,必须先创建对象后才能使用 Point p1=new Point(),p2=new Point(),p3=new Point(); p1.y=10; /可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p2.y=20; /可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p3.y=30; /可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p1.x=20;/可以,所有对象共享一个类成员变量可以,所有对象共享一个类成员变量x,它一直存在,随时可,它一直存在,随时可用用 示例:控制范围-1同一
18、个类内可以访问任何访问权限的变量。package test;public class Demo2void test() Demo1 dm1=new Demo1(); dm1.priInt=1; /错误 dm1.proInt=1; dm1.defInt=1; dm1.pubInt=1;在同一个包下,但Demo2对Demo1中的private成员没有访问权限。package test;public class Demo1 private int priInt; protected int proInt; int defInt; public int pubInt; void test() priI
19、nt=1; proInt=1; defInt=1; pubInt=1; package test.t1;import test.Demo1;public class Demo4void test() Demo1 dm1=new Demo1(); dm1.priInt=1; /错误 dm1.proInt=1;/错误 dm1.defInt=1;/错误 dm1.pubInt=1;不同包下,只能访问Demo1中的public成员。5、方法定义-语法规范方法修饰字方法修饰字 返回类型返回类型 方法名称方法名称(参数参数1,参数参数2,) throws exceptionList (statements;
20、) /方法体:方法的内容方法体:方法的内容public | protected|缺省 | private static final | abstract native synchronizedn 返回类型可以是任意的Java数据类型当一个方法不需要返回值时,返回类型为void。n 参数的类型可以是简单数据类型也可以是引用数据类型(数组、类或接口)参数传递方式是值传递。n 方法体对方法的实现包括局部变量的声明以及所有合法的Java指令。局部变量的作用域只在该方法内部。举例:方法定义v 举例:举例:final void move(int dx,int dy) throws IOException
21、x+=dx; y+=dy; v 举例:举例:class Test int a,b; void change(Test obj) obj.a=50; obj.b=40; /可以在函数中改变可以在函数中改变对象状态对象状态 void setTest(int x,int y)void setTest(int x,int y) a=x; a=x; b=y; b=y; 6、方法定义-修饰符v 方法命名 符合标识符规则 Java中允许同名方法存在,但方法的参数列表应不同(方法的重载)v 访问控制权限 public 、pretected、缺省、private含义同成员变量v 其他修饰符static 类方法(
22、静态方法),可直接用类名来调用,随时可用。abstract 抽象方法,只有声明部分,方法体由子类来实现final 最终方法,不能被子类重构native 本地方法,由本地其他语言代码实现synchronized 同步,将在“多线程”中介绍v static 用于修饰类的数据成员和方法,表示该成员为静态成员 基本形式: static 数据类型 变量名; static 返回类型 方法名(参数列表) /方法体 修饰符staticclass A static int b=0; /静态成员变量 static void get() /静态方法 n static修饰的 类成员或静态成员在定义时就静态分配了内存空
23、间,在生成类对象之前就可以使用静态成员静态成员是属于整个类的,一个类的多个对象可以共享共享该静态成员n 无static修饰的 实例成员属于某个对象或实例,必须要定义对象才能使用Company Logo修饰符staticv对静态成员的访问方法对静态成员的访问方法 先生成该类的实例(对象),然后再通过点运算符访问 A a=new A(); a.b=5; a.get() 是不生成实例,直接在类名后加上点运算符和静态成员名 A.b=5; A.get()static方法内部随时可以访问static成员变量和方法,要访问非static成员变量或方法,必须先创建一个对象。非static方法随时访问静态方法不
24、能被重载和重写Company Logo修饰符staticv对静态成员的访问方法对静态成员的访问方法 static方法内部 可以访问static成员变量和方法 不能访问非static成员变量或方法,必须先创建一个对 非static方法 可以访问static成员变量和方法 可以访问非static成员变量和方法class Point static int x; int y; public static void main(String args) x=10;/可以,类变量随时可以使用 y=20;/不可以。必须先创建一个类对象 Point pt=new Point(); pt.y=20;/可以通过对象
25、pt来访问pt对象中的变量y Company Logo修饰符-finalvfinal关键字关键字 最终的,不能修改 可以修饰类,成员变量和方法。 最终类,不能再有子类; 最终方法,不能再被重写; 最终属性,初始化后,不能再被赋值。常量final class A final double PI=3.1416; final double area(double r) return (PI*r*r); class FinalTest static public void main(String arg) A a = new A( ); System.out.println(area= +a.area
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 四章类 对象 精品 课件
限制150内