《Java面向对象程序设计》02 面向对象的概念写字字帖_第1页
《Java面向对象程序设计》02 面向对象的概念写字字帖_第2页
《Java面向对象程序设计》02 面向对象的概念写字字帖_第3页
《Java面向对象程序设计》02 面向对象的概念写字字帖_第4页
《Java面向对象程序设计》02 面向对象的概念写字字帖_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

二面向对象的概念第章目标了解:面向对象的三大基本特点理解:类和对象的概念掌握:Java类的定义,类的属性和方法,类的构造方法以及对象的创建与引用概述面向对象编程的三大基本特点是:封装继承多态本章主要讲解面向对象编程的重要概念:建立类的概念理解程序中对象和现实生活中对象的概念建立起程序类实例(对象)的概念使用类实例(对象)调用方法和属性类的定义及现实世界的模型面向对象的开发方法是把软件系统看成各个对象的集合类(class)是将数据及处理数据的方法结合在一起的模型类用于描述对象对象是归属于某个类的具体实例类的定义及现实世界的模型现实世界中类和对象的模型类对象1对象2对象3类的定义及现实世界的模型对象可以是现实事物人、天空、月亮、太阳、桌子也可以是抽象事物会议、合约对象必须能够体现自身的一部分特性牌照号码制造商年份启动加速停车汽车会议内容开会地点开会时间结束时间与会人员会议学号年级名字通信地址上学参加活动下课学生类的定义及现实世界的模型对象的属性和行为属性体现了对象的某种特征行为即对象所能进行的操作汽车牌照号码制造商年份车速启动加速减速停车属性行为类的定义及现实世界的模型对象具有封装性封装(encapsulation)是对象最重要的特性如何完成各项操作的过程被对象隐藏起来了类的定义及现实世界的模型对象都属于某个类每个对象都是某个类的实例同一个类所有实例具有相同的属性和行为,但属性值各不相同学生类学号姓名年龄上课下课对象1学号:1001姓名:李明年龄:18上课下课对象2学号:1002姓名:王永年龄:19上课下课对象3学号:1003姓名:周佳年级:2上课下课错误:学生类中未定义年级属性类(class)是描述了一组具有相同属性和行为的对象

类的定义及现实世界的模型类图(classdiagram)是说明类的常用方法类图是统一建模语言UML(UnifiedModelingLanguage)的一部分,也是对类进行说明的标准表示法Car+regNo+make+year+speed+start()+speedUp()+slowDown()+stop()类名属性方法类的属性与方法类也是一种数据类型每个类都描述了一组特定的数据类这种数据类型统称为引用类型publicclassCar{ //汽车类

//成员变量(属性)StringregNo;//牌照号码

Stringmake;//制造商

intyear;//年份

intspeed;//车速

//构造方法(函数)publicCar(){}//无参构造方法

publicCar(StringregNo,Stringmake,intyear,intinitSpeed){}//带有参数的构造方法

//Car类的操作(方法)voidstart(){} //启动

voidspeedUp(intincrease){}//加速

voidslowDown(intincrease){}//减速

voidstop(){}//停车

}对象的实例化构造方法是用来构造类实例(对象)的方法使用关键字new来调用构造方法,从而创建一个类的实例//调用无参数构造方法创建一个类的实例Carcar=newCar();//调用带四个参数的构造方法创建一个类的实例Car

theCar=newCar("VD-12345","volvo",1998,0);对象的实例化通过类的实例(对象)调用方法以实现对象的操作 //调用无参数方法

theCarOfGreta.start(); //调用带参数的方法

theCarOfGreta.speedUp(10);对象的实例化对象变量存放的是引用引用就是一个所指向的对象的地址可以通过赋值改变该引用CartheCarOfGreta=newCar(“VD-12345”,“volvo”,1998,0);CartheCarOfAnne=newCar(“VD-12346”,“Benz”,1998,0);theCarOfGreta=theCarOfAnne;设计类类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素。它封装了同一类对象的属性和方法,是这一类对象的原型设计类是面向对象的核心设计类一个有关装修房子的问题。在该问题中涉及以下几种对象:地板,墙,油漆,墙纸,地板材料等需要了解的信息有:地板和墙的长,宽需要计算的数据有: 地板和墙的面积(用于决定需要多少墙纸,油漆和地板材料)设计类墙和地板具有相同的属性(长和宽),可以将这些抽象成一个类——Surface类Surface-name-length-width+getName()+getLength()+getWidth()+getArea()Surface类的类图私有属性(实例变量)类名公有方法(实例方法)编写实现类根据类图,Surface类实现如下:classSurface{

privateStringname;privatedoublelength;privatedoublewidth;publicSurface(StringinitName,doubleinitLength,doubleinitWidth){name=initName;length=initLength;width=initWidth;}publicStringgetName(){returnname;}publicdoublegetLength(){returnlength;}publicdoublegetWidth(){returnwidth;}publicdoublegetArea(){returnwidth*length;}}编写实现类使用Surface类classFloorCalculations{publicstaticvoidmain(String[]args){

/*步骤1:创建Surface类的一个对象*/SurfaceaFloor=newSurface("Mary'sfloor",4.8,2.3);

/*步骤2:提取对象的数据,并计算对象的面积*/Stringname=aFloor.getName();doublewidth=aFloor.getWidth();doublelength=aFloor.getLength();doublearea=aFloor.getArea();

/*步骤3:将获得的结果显示在屏幕上*/System.out.println("Informationaboutthefloorwiththename:"+name);System.out.println("Width:"+width);System.out.println("Length:"+length);System.out.println("Area:"+area);}}访问修饰符private和publicpublic表示对象外的程序能够访问该方法或属性private关键字表示对象外的程序不能访问该方法或属性实例变量使用private修饰符,而在方法上使用public修饰符,让类外的程序只有通过方法才能访问实例变量,这样可以提高数据的安全性。构造方法构造方法主要用来初始化类中的成员变量方法名必须与类名相同构造方法没有返回值类型publicSurface(StringinitName,doubleinitLength,doubleinitWidth){name=initName;length=initLength;width=initWidth;}构造方法在创建一个类对象时,new运算符调用该类的构造方法以执行初始化工作SurfaceaFloor=newSurface("Mary'sfloor",4.8,2.3);aFloorname:Mary’floorlength:4.8width:2.3……对象:aFloor构造方法在Java中要求每个类至少有一个构造方法如果没有为类声明构造方法,则编译器会创建一个没有参数的默认构造方法//默认构造方法publicSurface(){}

注意:

当我们为类声明了任何一个构造方法,则Java将不会为该类创建默认的构造方法

垃圾回收在一些传统的编程语言(如C语言)中,回收内存的任务是由程序本身负责的程序员可能因为粗心大意,忘记及时释放无用变量的内存,从而影响程序的健壮性程序员有可能错误地释放核心类库所占用的内存,导致系统崩溃垃圾回收在Java语言中,内存回收的任务由Java虚拟机来担当在程序的运行时环

温馨提示

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

评论

0/150

提交评论