类与对象、方法、封装、包
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
构造方法
隐式构造方法
class Person { String name;//定义参赛选手名字 int score;//定义参赛选手得分 int giveNum;//定义参赛选手本轮的出拳 }
创建对象时自动创建一个无参数的构造方法
方法重载 方法重载是指多个方法享有相同的方法名。 重载的方法具备如下特点:
内 存
John 2分 石头 ……
选手对象
选手对象
Lisa 1分 剪子
姓名 得分 出拳结果
类变量
类变量定义了类的属性 类变量用于类本身及其所有的实例,不管使用该类 创建了多少个对象,都只存储该变量的一个值
类变量: +1 0 选手人数
内存
对象1
创建对象
1 2 …… …… 对象2
选手类
对象的类行为 行为指的是对象能够对自身和其他对象执行的操作。 行为可以用来修改对象的属性,接收来自其他对象 的信息以及向其他对象发送消息让它们执行任务。
对象的使用 通过运算符 “.”可以实现对变量的访问和方法的 class CompareTwo { 调用。 public static void main(String[] args) //程序入口 { 变量和方法可以通过设定访问权限来限制其它 …… /*********************比赛开始*************************/ 对象对它的访问。 while(count<3) //根据进行的局数循环比赛 调用对象的变量 { count = count + 1; //又开始一论 格式:对象名 .属性名 System.out.println("第" + count + "局开始:"); //裁判判决本局哪位选手加分 调用对象的方法 对象方法的使用 j1.JudgmentOne(p1,p2); 格式:对象名 .方法名(参数列表); System.out.println("**********************************"); } …… } }
面向对象技术
IC-MSP<2.0>
本章目标
理解对象 理解类 理解抽象和封装 理解对象与类之间的关系 掌握包的创建和导入
面向对象编程概念
面向对象编程是一种创建计算机程序的方法,它
模仿了现实世界中的物体被组合在一起的方式。 生活实例:猜拳游戏
前提:有两个要进行猜拳比赛的选手,一个裁判。 动作:1、 两名选手入场。 2、裁判入场。 3、开始三局两胜比赛。 4、选手出拳,由裁判判断输赢,并给 赢家加1分。 5、比赛结束后,由裁判宣读比赛结果。
构 造 方 法 重 载
创建对象 类实例化可生成对象,对象通过消息传递来进 行交互。 消息传递即激活指定的某个对象的方法以改变 其状态或让它产生一定的行为。 一个对象的生命周期包括三个阶段:生成、使
用和消除。
创建对象 类 对象名称 声明 = new 实例化 构造方法(参数) 初始化
创建对象
//实例化对象选手John Person p1 = new Person("John"); //实例化对象选手Lisa Person p2 = new Person("Lisa"); //实例化裁判Dave Judgment j1 = new Judgment("Dave");
属性 属性是对象区别于其他对象的数据,可用于确定属于 该类的对象的外观、状态和其他性质。
属性
姓名
得分
=
= =
Lisa
1分
出拳结果
剪子
选手对象
选手类
实例变量 实例变量定义了特定对象的属性。 对象的类定义了属性的类型,每个实例都存储了自 己的属性值。 实例变量也叫对象变量。
姓名 得分 出拳结果
内 存
裁判对象 John 2分 3 ……
Lisa获胜 加1分
执行 加分方法
选手对象
Lisa 2分 1 2
方法
方法是类中用来完成 某个任务的一组相关语句。 与C语言 中的 函数和 子程序相同
针对对象 执行特定 的任务
对象之间能够 通过方法彼此进行通信
将变化告知另一个对象 让其他对象对自身进行修改 让其他对象执行某项操作
对象
裁判对象 姓名:Dave 动作: 判断每局胜负 通知选手加分 公布比赛结果
姓名:John 得分:1 出拳结果:石头 动作: 出拳 加分 选手对象
姓名:Lisa 得分:1 出拳结果:剪子 动作: 出拳 加分 选手对象
类
把众多的事物归纳、划分成一些类是人类在认识客观 世界时经常采用的思维方法。分类的原则是抽象。
包 包允许将类组合成较小的单元(类似文件夹), 使其易于找到和使用相应的类文件。
有助于避免命名冲突,包基本上隐藏了类并避免
了名称上的冲突。
包允许在更广的范围内保护类、数据和方法,可
以在包内定义类,而在包外的代码不能访问该类。
包的创建
package game.person; 包的创建 import java.util.Random; public class Person { String name;//定义参赛选手名字 int score;//定义参赛选手得分 int giveNum;//定义参赛选手本轮的出拳 public Person(String name)//构造函数 { this.name = name; score = 0; } … … }
在Java类中定义方法 Java语言中定义方法的语法
返回值类型 { 方法名称 (参数1,参数2,…… 参数n)
//方法开Leabharlann Baidu标记
方法主体
}
//方法结束标记
在Java类中定义方法 class Person { String name;//定义参赛选手名字 int score;//定义参赛选手得分 int giveNum;//定义参赛选手本轮的出拳 //返回该参赛选手的名字 public String getName() { return name; } … … }
包的导入
import game.person.Person; 包的导入 import game.manager.Judgment; public class CompareTwo { public static void main(String[] args) //程序入口 { Person p1 = new Person("John"); Person p2 = new Person("Lisa"); Judgment j1 = new Judgment("Dave"); … … } }
查看出拳值 查看得分 更新得分 初始化对象
选手出拳结果
选手姓名 选手得分
类
动物
用一个叫“动物” 的类来概括它们 经过人类的抽象 对象
类与对象——面向对象的核心概念
类的定义
修饰符 class 类名
{
type instance-variable1; … type methodname1(parameter-list) { // body of method } } 类:对某一类事物的描述,抽象的、概念上的定义 对象:实际存在的该类事物的个体,也称实例。
选手:John 选手:Lisa
对象 对象是系统中用来描述客观事物的一个实体,它 是构成系统的一个基本单位。 对象由一组属性和对这组属性进行操作的一组服务 组成 对象是实现域中某些事物的一个抽象 对象反映该事物在系统中需要保存的信息和发挥的 作用 对象是一组属性和有权对这些属性进行操作的一组 服务的封装体 客观世界是由对象和对象之间的联系组成的
裁判类
属性:
属性:
选手类
姓名
服务: 判断每局胜负 通知选手加分 公布比赛结果 服务:
姓名 得分 出拳结果 出拳 加分
类
类的特征
为属该类 的对象提供 抽象描述
内部包括 属性和服务
具有相同 属性和服务 的一组 对象的集合
类与对象 的关系如 模具和铸件 的关系
类的实例化 就是对象 一类对象的 抽象就是类
面向对象程序演示 演示
Java语言面向对象程序
面向对象语言的工作特点
面向对象语言编写的计算机程序,将重点放在要求
计算机完成的任务上。 猜 计算机程序被视为一组相互协同、共同完成任务的 裁判:Dave 拳 对象。
游
戏
每个对象都是程序的独立部分,它以特定的、高度 可控的方式与其他部分进行交互。
构造方法
构造方法是一个特殊的方法: Java中的每个类都有构造方法 创建类实例时调用的方法 与类同名,但没有返回类型 Java为对象分配内存,初始化实例变量并调用 构造方法 构造方法只能由new运算符调用 两种构造方法: •参数化构造方法 •隐式构造方法
构造方法
参 数 化 构 造 方 法 class Person { String name;//定义参赛选手名字 int score;//定义参赛选手得分 int giveNum;//定义参赛选手本轮的出拳 Person(String na)//构造方法 { name = na; score = 0; } }
类与对象
类的定义
class Person { 属性age int age; 方法shout void shout() { System.out.println("Oh,my god! my age is" + age); } }
类是数据和方法的集合;
类
类是具有共同属性和 行为的对象的抽象。 类可以定义为数据和 方法的集合。 对象具有特殊属性和 行为方式的实体。
This引用
class Person this 指针用于实例方法内,指向当前对象 { String name;//定义参赛选手名字 Person(String name)//构造方法 this 指针的值指向对其调用当前方法的对象 { this.name = name;//给姓名赋初值 p2.name=="“ 李丽"; p1.name 王小睛 "; this 关键字在需要当前类类型的对象引用时使用 } void getName() { System.out.println("选手姓名:" + name); } public static void main(String[] args) { Person p1 = new Person("王小睛"); Person p2 = new Person("李丽"); p1.getName(); p2.getName(); } }
类方法
方法分为实例方法和类方法。 实例方法通常简称方法,用于处理类的一个对象。 类方法适用于类本身。
属性:
姓名 得分 出拳结果 类变量:选手人数 方法: 出拳 加分 类方法: 获取选手总人数
选手类
数据抽象 抽象是处理事物复杂性的方法:只关注事物的重要 细节,而忽略事物的次要细节。
选手类
数据抽象: 抽取出关键数据 抽取出属性和方法
方法的参数必须不同
•方法参数的个数不同
•参数类型不同
返回类型不能用来区分重载的方法
方法重载
Person()//构造方法 { name = “选手”;//给姓名赋初值 score = 0;//给成绩赋初值 } Person(String na)//构造方法 { name = na;//给姓名赋初值 score = 0;//给成绩赋初值 } Person(String na,int sc)//构造方法 { name = na;//给姓名赋初值 score = 0;//给成绩赋初值 }
总结
对象由状态和行为组成 类是具有相同属性和行为的一组对象的集合 封装是隐藏对象实现细节的过程,以便不让用户看到
面向对象技术
类的变量和方法可被该类的实例访问 圆点符号用于访问对象的成员
构造方法在创建对象时初始化对象
习题
1.比较Java语言中的类和对象之间的存在关系与现实生活中的类和对象之间 的存在关系。 2.构造方法的作用。 3.对象如何产生。 4.对象如何使用。
封装的实体=数据+方 法 数据或变量
类
方法 抽 象 实 例 化 属性或状态 操作或行为
对象
在Java中创建类 Java语言中定义类的语法
class
{
类名称
//类开始标记
属性声明;
方法声明;
}
//类结束标记
在Java中创建类 class Person { String name;//定义参赛选手名字 int score;//定义参赛选手得分 int giveNum;//定义参赛选手本轮的出拳 } 类的命名规则: 不能为 Java 中的关键字 不能包含空格或点号“.” 只能以下划线“_”、 “$”符号或字母开头