类与对象、方法、封装、包_第1页
类与对象、方法、封装、包_第2页
类与对象、方法、封装、包_第3页
类与对象、方法、封装、包_第4页
类与对象、方法、封装、包_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

面向对象技术本章目标理解对象理解类理解抽象和封装理解对象与类之间的关系掌握包的创建和导入面向对象编程概念

面向对象编程是一种创建计算机程序的方法,它模仿了现实世界中的物体被组合在一起的方式。生活实例:猜拳游戏前提:有两个要进行猜拳比赛的选手,一个裁判。动作:1、两名选手入场。

2、裁判入场。

3、开始三局两胜比赛。

4、选手出拳,由裁判判断输赢,并给赢家加1分。

5、比赛结束后,由裁判宣读比赛结果。演示Java语言面向对象程序面向对象程序演示面向对象语言的工作特点

面向对象语言编写的计算机程序,将重点放在要求计算机完成的任务上。计算机程序被视为一组相互协同、共同完成任务的对象。每个对象都是程序的独立部分,它以特定的、高度可控的方式与其他部分进行交互。猜拳游戏对象

对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。对象由一组属性和对这组属性进行操作的一组服务组成对象是实现域中某些事物的一个抽象对象反映该事物在系统中需要保存的信息和发挥的作用对象是一组属性和有权对这些属性进行操作的一组服务的封装体客观世界是由对象和对象之间的联系组成的对象裁判对象姓名:John得分:1出拳结果:石头动作:出拳加分姓名:Lisa得分:1出拳结果:剪子动作:出拳加分姓名:Dave动作:判断每局胜负通知选手加分公布比赛结果选手对象选手对象类把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。分类的原则是抽象。属性:姓名服务:判断每局胜负通知选手加分公布比赛结果属性:姓名得分出拳结果服务:出拳加分裁判类选手类类类的特征

具有相同属性和服务的一组对象的集合为属该类的对象提供抽象描述

内部包括属性和服务类与对象的关系如模具和铸件的关系类的实例化就是对象一类对象的抽象就是类属性属性是对象区别于其他对象的数据,可用于确定属于该类的对象的外观、状态和其他性质。属性

姓名得分出拳结果Lisa1分剪子===实例变量

实例变量定义了特定对象的属性。对象的类定义了属性的类型,每个实例都存储了自己的属性值。实例变量也叫对象变量。选手对象选手对象内存……John2分石头Lisa1分剪子姓名得分出拳结果姓名得分出拳结果0类变量

类变量定义了类的属性类变量用于类本身及其所有的实例,不管使用该类创建了多少个对象,都只存储该变量的一个值内存…………类变量:选手人数创建对象对象1+112对象2Lisa2分2对象的类行为

行为指的是对象能够对自身和其他对象执行的操作。行为可以用来修改对象的属性,接收来自其他对象的信息以及向其他对象发送消息让它们执行任务。裁判对象选手对象内存……John2分3Lisa1分2Lisa获胜加1分执行加分方法方法方法是类中用来完成某个任务的一组相关语句。针对对象执行特定的任务对象之间能够通过方法彼此进行通信与C语言中的函数和子程序相同将变化告知另一个对象让其他对象对自身进行修改让其他对象执行某项操作

类方法方法分为实例方法和类方法。实例方法通常简称方法,用于处理类的一个对象。类方法适用于类本身。属性:姓名得分出拳结果类变量:选手人数方法:出拳加分类方法:获取选手总人数选手类数据抽象

抽象是处理事物复杂性的方法:只关注事物的重要细节,而忽略事物的次要细节。数据抽象:抽取出关键数据抽取出属性和方法选手出拳结果选手姓名选手得分查看出拳值查看得分更新得分初始化对象选手类类对象经过人类的抽象动物用一个叫“动物”的类来概括它们 类与对象——面向对象的核心概念类的定义修饰符class类名{

type

instance-variable1;…type

methodname1(parameter-list)

{

//

body

of

method

}

}类:对某一类事物的描述,抽象的、概念上的定义对象:实际存在的该类事物的个体,也称实例。类与对象类的定义classPerson{intage;

voidshout(){System.out.println("Oh,mygod!myageis"+age);}}属性age方法shout类是数据和方法的集合;类类是具有共同属性和行为的对象的抽象。类可以定义为数据和方法的集合。对象具有特殊属性和行为方式的实体。类对象抽象实例化封装的实体=数据+方法操作或行为属性或状态方法数据或变量在Java中创建类class类名称{//类开始标记}//类结束标记属性声明;方法声明;Java语言中定义类的语法在Java中创建类类的命名规则:不能为Java中的关键字不能包含空格或点号“.”只能以下划线“_”、“$”符号或字母开头class

Person{

String

name;//定义参赛选手名字

intscore;//定义参赛选手得分

intgiveNum;//定义参赛选手本轮的出拳}

在Java类中定义方法返回值类型方法名称{//方法开始标记}//方法结束标记方法主体Java语言中定义方法的语法(参数1,参数2,……

参数n)在Java类中定义方法class

Person{

String

name;//定义参赛选手名字

int

score;//定义参赛选手得分

int

giveNum;//定义参赛选手本轮的出拳

//返回该参赛选手的名字

public

String

getName()

{

return

name;

}

…}构造方法构造方法是一个特殊的方法:Java中的每个类都有构造方法创建类实例时调用的方法与类同名,但没有返回类型Java为对象分配内存,初始化实例变量并调用构造方法构造方法只能由new运算符调用两种构造方法:参数化构造方法隐式构造方法构造方法参数化构造方法classPerson{

Stringname;//定义参赛选手名字

intscore;//定义参赛选手得分

intgiveNum;//定义参赛选手本轮的出拳

Person(Stringna)//构造方法

{ name=na; score=0;

}}

构造方法隐式构造方法classPerson{

Stringname;//定义参赛选手名字

intscore;//定义参赛选手得分

intgiveNum;//定义参赛选手本轮的出拳

}

创建对象时自动创建一个无参数的构造方法方法重载方法重载是指多个方法享有相同的方法名。重载的方法具备如下特点:方法的参数必须不同方法参数的个数不同参数类型不同返回类型不能用来区分重载的方法

方法重载

Person()//构造方法

{

name=

“选手”;//给姓名赋初值

score=0;//给成绩赋初值

}

Person(String

na)//构造方法

{

name=na;//给姓名赋初值

score=

0;//给成绩赋初值

}

Person(String

na,int

sc)//构造方法

{

name=na;//给姓名赋初值

score=

0;//给成绩赋初值

}构造方法重载创建对象类实例化可生成对象,对象通过消息传递来进行交互。消息传递即激活指定的某个对象的方法以改变其状态或让它产生一定的行为。一个对象的生命周期包括三个阶段:生成、使用和消除。创建对象创建对象

声明实例化初始化类对象名称

new

构造方法(参数)//实例化对象选手JohnPersonp1

=

newPerson("John");//实例化对象选手LisaPersonp2

=

newPerson("Lisa");//实例化裁判DaveJudgmentj1

=

newJudgment("Dave"); 对象的使用通过运算符“.”可以实现对变量的访问和方法的调用。变量和方法可以通过设定访问权限来限制其它对象对它的访问。调用对象的变量格式:对象名.属性名调用对象的方法格式:对象名.方法名(参数列表);

classCompareTwo{

publicstaticvoidmain(String[]args) //程序入口

{ ……

/*********************比赛开始*************************/

while(count<3) //根据进行的局数循环比赛

{ count=count+1; //又开始一论

System.out.println("第"

+count+

"局开始:");

//裁判判决本局哪位选手加分j1.JudgmentOne(p1,p2);

System.out.println("**********************************");

}……

}}对象方法的使用This引用this指针用于实例方法内,指向当前对象this指针的值指向对其调用当前方法的对象this关键字在需要当前类类型的对象引用时使用classPerson{

Stringname;//定义参赛选手名字Person(Stringname)//构造方法

{

=

name;//给姓名赋初值

}voidgetName(){

System.out.println("选手姓名:"+name);}

publicstaticvoidmain(String[]args){Personp1=newPerson("王小睛");Personp2=newPerson("李丽");p1.getName();p2.getName();}}="王小睛";=“李丽";包包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件。有助于避免命名冲突,包基本上隐藏了类并避免了名称上的冲突。包允许在更广的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类。包的创建packagegame.person;importjava.util.Random;public

classPerson{

Stringname;//定义参赛选手名字

intscore;//定义参赛选手得分

intgiveNum;//定义参赛选手本轮的出拳

publicPerson(Stringname)

温馨提示

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

评论

0/150

提交评论