05Java.ppt_第1页
05Java.ppt_第2页
05Java.ppt_第3页
05Java.ppt_第4页
05Java.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4课:Java类的概念,回顾与作业点评,关于多重循环语句,下列说法正确的是( ) A多重循环指一个循环体内包含另一个完整的循环结构 B多重循环语句可以嵌套任意层次 Cwhile、do-while和for循环不可以相互嵌套 D在内层循环中执行break语句,将跳出外层循环 写出运行结果,int i = 0; for (i = 0; i 10; i +) if (i % 2 = 0) continue; i = i + 1; if (i = 5) break; System.out.println(i);,11,AB,本课目标,掌握类和对象的特征 理解封装 会创建和使用对象,为什么使用面向对象2

2、-1,现实世界是由什么组成的?,世界由对象组成,身边的对象,张浩,李明,收银员 员工号10001 姓名李明 部门财务部 操作: 收款 打印账单,顾客 姓名张浩 年龄20 体重60kg 操作: 购买商品,对象的特征属性,属性对象具有的各种静态特征 每个对象的每个属性都拥有特定值 例如:张浩和李明的年龄、姓名不一样,20岁,张浩,属性,60kg,对象的特征方法,方法对象执行的操作 对象:用来描述客观事物的一个实体,由一组属性和方法构成,打印账单,收银,方法,刷卡,对象的属性和方法,1、列出尼古拉斯凯奇驾驶的这辆法拉利F360 Spider的属性和方法 列出小狗对象的属性和方法,属性: 品牌:法拉利

3、 型号:F360 Spider 颜色:黄色 价格:380万元 方法: 发动 停止 加速,属性: 颜色:白色 方法: 叫 跑 吃,用面向对象描述世界3-1,用面向对象的思想描述世界 第一步:发现类,根据“对象”抽象出“类”,class Dog ,名词,各个狗对象,用面向对象描述世界3-2,第二步:发现类的属性,狗类共有的特征: 1. 品种 2. 年龄 3. 昵称 4. 健康情况 5. 跟主人的亲密度 ,class Dog String name = 旺财; / 昵称 int health = 100; / 健康值 int love = 0; / 亲密度 String strain = 拉布拉多犬

4、; / 品种 ,只放我关心的属性,名词,用面向对象描述世界3-3,第三步:发现类的方法,狗类共有的行为: 1. 跑 2. 吠 3. 输出狗的信息 ,动词,class Dog String name = 旺财; / 昵称 int health = 100; / 健康值 int love = 0; / 亲密度 String strain = 拉布拉多犬; / 品种 /* 输出狗的信息 */ public void print() / 输出狗信息的代码 ,只放我关心的方法,小结1,说一说教室里的对象 描述他们的属性和方法,颜色:黑色 品牌:BENQ 投影,姓名:张三 年龄:20 学习,类型:白炽灯

5、开 关 变亮 变暗,材制: 木质 支撑物品,什么是类,顾客类 轿车类 ,类是模子,确定对象将会拥有的特征(属性)和行为(方法),类 具有相同属性和方法的一组对象的集合 类是对象的类型 不同于int类型:具有方法,各种口味的球状冰淇淋,类和对象的关系,类是抽象的概念,仅仅是模板,比如说:“人” 对象是一个你能够看得到、摸得着的具体实体,小布什,普京,克林顿,Java 是面向对象的语言,所有Java程序都以类class为组织单元 关键字class定义自定义的数据类型,public class HelloWorld public static void main(String args) Syste

6、m.out.println(Hello World!); ,Java类模板,类将现实世界中的概念模拟到计算机程序中,public class 类名 /定义属性部分 属性1的类型 属性1; 属性2的类型 属性2; 属性n的类型 属性n; /定义方法部分 方法1; 方法2; 方法m; ,如何定义类,定义一个类的步骤 1、定义类名 2、编写类的属性 3、编写类的方法,面向对象(OO)的优点,与人类的思维习惯一致 把人类解决问题的思维过程转变为程序能够理解的过程 信息隐藏,提高了程序的可维护性和安全性 封装实现了模块化和信息隐藏 封装使得在对象外部不能随意访问对象的属性和方法 提高了程序的可重用性 一

7、个类可以创建多个对象实例,增加了重用性,数据类型总结,int double char boolean,String 数组 使用class定义的类型,基本数据类型,引用数据类型,数据类型使用区别,基本数据类型的深入理解2-1,4、张浩和李明去年身高都是170cm,今年李明长到了180cm,张浩没有变化,输出去年和今年两人身高 定义两个变量保存身高 修改变量的值 输出变量的值,在java中使用class关键字来定义类,使用class来定义一个对象(Object)时,会考虑这个对象可能拥有的属性(Property)和方法(Method)。 属性是对象的静态表现,而方法则是对象与外界互动的操作。,在一

8、个文件中可以定义数个类,但只能有一个类被设置为public,文件名称必须与这个public的类同名。,在类中的属性和方法,统称为类成员,成员属性,成员属性表示对象的属性或状态,成员属性可以设置默认值,如果没有设置默认值,系统将自动赋予默认值。 成员属性可以是基本类型,引用类型,基本类型的默认值数值型0,boolean为false;引用类型的默认值为null,成员方法,方法是类的功能,类的功能只能通过方法来体现 方法必须是属于某个类的,即方法必须定义在类中。 代码也必须写在方法中。 对象变量名+点号+方法名+小括号(如果有参数,要传入参数),public void driveCar(int a,

9、double b) speed=50; ,访问控制符,返回值,方法名,方法参数列表,方法体,基本数据类型的深入理解2-2,int heightZhang = 170; int heightLi = heightZhang; System.out.println(去年-张浩的身高是: + heightZhang + , 李明的身高是: + heightLi); heightLi = 180; System.out.println(今年-张浩的身高是: + heightZhang + , 李明的身高是: + heightLi);,heightZhang,170,170,heightLi,180,不

10、同的变量会分配不同的存储空间,改变一个变量值不会影响另一个变量值,引用数据类型的深入理解3-2,int infoZhang = new int 170,60; int infoLi = infoZhang; infoLi0 = 180;/今年李明的身高变为180 infoLi1 = 70;/今年李明的体重变为70 ,infoZhang,0 x2a486c,0 x2a486c,infoLi,对引用数据类型,赋值是把原对象的引用传递给另一个引用,两个引用指向同一块内存空间,总结,什么是类? 什么是对象? 类和对象的关系是什么? 如何定义一个类、类的属性和方法? 如何创建类的对象? 数据类型有哪两种

11、?区别是什么?,第5课:类的抽象和封装,回顾及作业点评,如何从现实世界抽象出类? 请一位同学到白板上写出Person类,并写出如何使用里面的属性和方法。,看懂基本的类图设计 掌握构造方法及其重载 掌握封装的概念及其使用,本章目标,用面向对象描述世界,class Dog String name = 旺财; / 昵称 int health = 100; / 健康值 int love = 0; / 亲密度 String strain = 拉布拉多犬; / 品种 /* 输出狗的信息 */ public void print() / 输出狗信息的代码 ,类图,使用类图描述类 用于分析和设计“类” 直观、

12、容易理解,“+”:public “-”:private,类名,返回值类型,类型,属性名,参数: 名字:类型,名字:类型,方法名,小结,面向对象设计的过程是什么? 为什么说类图是面向对象设计的好工具?,实现领养宠物,实现领养宠物功能 编写宠物类Dog和Penguin 创建宠物对象,输入宠物信息,最后输出,构造方法 3-1,对象初始化,Penguin pgn = new Penguin(); = qq; pgn.sex = Q仔;,class Penguin / 属性 /* 无参构造方法 */ public Penguin() name = qq; love = 20; sex

13、= Q仔; System.out.println(执行构造方法); ,使用构造方法: Penguin pgn1 = new Penguin();,能否在创建对象的同时就完成赋值?,构造方法,构造方法 3-2,构造方法,public 构造方法名( ) /初始化代码 ,与类名相同,没有返回值类型,public Penguin() name = qq; love = 20; sex = Q仔; System.out.println(执行构造方法); ,可以指定参数,构造方法 3-3,阅读代码,说出运行结果,并指出原因,class Penguin public void Penguin() healt

14、h=10; sex=雄; System.out.println(执行构造方法); public void print() System.out.println(企鹅的名字是 + name + ,健康值是 + health + ,性别是 + sex); ,Penguin pgn3=new Penguin(); pgn3.print();,有返回值类型,不是构造方法,常见错误,请指出下面代码的错误,class Dog private String name = 旺财; / 昵称 private int health = 100; / 健康值 private int love = 0; / 亲密度

15、public void play(int n) int localv; health = health - n; System.out.println(name+ +localv+ +health+ +love); public static void main(String args) Dog d=new Dog(); d.play(5); ,局部变量没有初始化,静态常量,Penguin pgn1 = new Penguin(); pgn1.sex = Penguin.SEX_MALE;,class Penguin static final String SEX_MALE=Q仔; stati

16、c final String SEX_FEMALE=Q妹; ,Java中定义常量的语法,static void print() ,用类名调用:Dog.print();,使用static定义变量,使用static定义方法,可否这样赋值?,静态常量,static可以用来修饰属性、方法和代码块 static修饰的属性和方法称为类属性(类变量)、类方法 不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量)、实例方法 static修饰的变量和方法可以通过类名和对象名访问,而不用static修饰的变量和方法只能通过对象名访问 final可以用来修饰属性、方法和类 用final修饰

17、的变量成为常量,其值固定不变,常见错误,请指出下面代码的错误,class Dog private String name = 旺财; / 昵称 private int health = 100; / 健康值 private int love = 0; / 亲密度 public void play(int n) static int localv=5; health = health - n; System.out.println(name+ +localv+ +health+ +love); public static void main(String args) Dog d=new Dog(

18、); d.play(5); ,在方法里不可以定义static变量,方法重载,一个类是否可以有多个构造方法? 方法重载,指同一个类中多个方法: 方法名相同 参数列表不同,与返回值、访问修饰符无关,为什么要使用封装,下面代码有什么问题? 如何解决上面设计的缺陷?,Dog d = new Dog(); d.health = 1000;,不合理的赋值,使用封装,什么是封装,面向对象三大特征之一封装 封装的概念 封装的好处,封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,隐藏类的实现细节,只能通过规定方法访问数据,方便加入控制语句,方便修改实

19、现,如何使用封装,封装的步骤,修改属性的可见性,创建getter/setter方法,在getter/setter方法中加入属性控制语句,设为private,用于属性的读写,对属性值的合法性进行判断,class Dog private String name = 旺财; / 昵称 private int health = 100; / 健康值 private int love = 0; / 亲密度 private String strain = 拉布拉多犬; / 品种 public int getHealth() return health; public void setHealth (int health) if (health 100 | health 0) this.health = 40; System.out.println(健康值应该在0和100之间,默认值是40); else this.health = health; / 其它getter/setter方法 ,this代表当前对象,1,2,2,3,this的用法,this关键字的用法 调用属性 调用方法 调用构造方法,this.health = 100; = 大黄;,this.print();,this();,如果使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论