欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年面向对象程序设计第一部分.docx

    • 资源ID:27981010       资源大小:184.54KB        全文页数:19页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年面向对象程序设计第一部分.docx

    精选学习资料 - - - - - - - - - 第四章 面对对象程序设计1、类2、对象3、接口4.1 编程语言的几个进展阶段机器语言 如:汇编语言过程语言 如: c 语言 ,Fortran 语言等使用面对过程语言 ,人们只需按着自己的意图来编写各个函数 ,语言的语法更接近人们的自然语言 ,所以 ,习惯上也称过程语言是高级语言 .但是 ,无论那种高级语言编写的源文件 ,运算机都不能直接执行 ,由于运算机只能直接识别 ,执行机器 指令 .因此 ,必需把源文件转换成机器指令,然后运算机去执行相应的机器指令 . 将高级语言编写的源程序转化成机器指令,常常使用以下两种方式:(1)编译方式 Compilation: 针对当前的机器处理器芯片,将源程序全部翻译成机器指令,称做目标程序 ,再将目标程序交给运算机执行. (2)说明方式 Interpretation: 这种方式不产生整个的目标程序 芯片 ,边翻译边执行 ,翻译一句执行一句 . ,而是依据当前的机器处理器Java语言的处理方式既不是第1 种也不是其次种,Java 语言的制造创造之处在于,它不针对特定的 CPU 芯片进行编译 ;Java供应的编译器把源程序编译成称做字节码的一个中间代码 .字节码是很接近机器码的文件 ,可以在供应了 Java 虚拟机 JVM 的任何系统上被说明执行 .因此 ,Java本质上是说明执行的程序 ,当字节码加载到内存之后 ,再由 Java 的说明器对字节码按上述 2 的说明方式执行 ,即翻译一句 ,执行一句 ,不产生整个的机器代码程序 ,翻译过程假如不显现错误 ,就始终进行到全部执行完毕 ,否就将在错误处停止执行 .同一个程序 ,假如是说明执行的 ,那么它的运行速度通常会比被编译成可执行的机器代码的运行速度慢些 . 但是 ,对 Java 来说 ,二者的差别不太大 ,Java的字节码经过认真设计 ,很简单便能使用 . JIT 即时编译方式编译技术将字节码直接转化成高性能的本地机器码 中供应了这样一个字节码编译器:,Sun 公司在 Java2 发行版-JITJust In Time , 它是 Java 虚拟机的一 部分 .Java 运行系统在供应 JIT 的同时仍具有平台独立性 ,因而” 高效且跨平台” 对 java 来说不再冲突 . 假如把 Java 的源文件比做” 汉语” 的话 ,字节码就相当于” 世界语”,世界语不和具体的” 国家” 有关 ,只要这个” 国家” 供应了” 翻译”,就可以再快速地把世界语翻译成本地语言 . 面对对象编程随着运算机硬件设备功能的进一步提高 ,使得基于对象的编程成为可能 .基于对象的编程更加符合人的思维模式 ,编写的程序更加健壮和强大 ,更重要的是 ,面对对象编程勉励制造性的程序设计 . Java 是面对对象语言,它的源程序是由如干个类组成,源文件是扩展名为.java 的文本文件. 因此 ,要学习 Java 编程就必需学会怎样去写类 ,即怎样用 Java 的语法去描述一类事物共有的属性和功能 .属性通过变量来刻画 ,功能通过方法来表达 ,即方法操作属性形成肯定的算法来实现一个具体的功能 . 类把数据和对数据的操作封装成一个整体 . 1 / 10 名师归纳总结 - - - - - - -第 1 页,共 10 页精选学习资料 - - - - - - - - - 4.2 类类是组成 Java 程序的基本要素.类封装了一类对象的状态和方法.类是用来定义对象的模板. 类的实现包括两部分:类声明和类体 .基本格式为:class 类名 类体的内容 class 是关键字 ,用来定义类 .” class 类名” 是类的声明部分,类名必需是合法的Java 标识符 .两个大括号以及之间的内容是类体. 4.2.1. 类声明以下是两个类声明的例子 . class People class 植物 “ class People” 和”class 植物” 叫做类声明”People” 和” 植物” 分别是类名;类命名最好遵守以下习惯 : (1)假如类名使用拉丁字母 ,那么名字的首写字母使用大写字母 ,如 Hello,Time,People 等. (2)类名最好见名满意 ,当类名由几个” 单词” 复合而成时 ,每个单词的首写字母使用大写;如 BeijingTime,AmericanGame,HelloChina 等. 4.2.2. 类体写类的目的是为了描述一类事物共有的属性和功能 ,描述过程由类体来实现 .类声明之后的一对大括号“ ” ,“ ” 以及它们之间的内容称做类体 ,大括号之间的内容称做类体的内容 . 类体的内容由两部分构成:一部分是变量的定义 ,用来刻画属性;另一部分是方法的定义 ,用来刻画功能 . 下面是一个类名为” 梯形” 的类 ,类体内容的变量定义部分定义了 4 个 float 类型的变量”上底”,” 下底”,” 高” 和” 面积” ,方法定义部分定义了两个方法” 运算面积” 和” 修改高”. class 梯形 float 上底 ,下底 ,高,面积; /变量定义部分 . float 运算面积 / 方法定义 面积 =上底 +下底 * 高/2.0f;return 面积; void 修改高 float h / 方法定义 高=h; 2 / 10 名师归纳总结 - - - - - - -第 2 页,共 10 页精选学习资料 - - - - - - - - - 4.2.3. 成员变量和局部变量 我们已经知道类体分为两部分:. 变量定义部分所定义的变量被称为类的 成员变量 . 在方法体中定义的变量和方法的参数被称为 局部变量 . (1)成员变量和局部变量的类型可以是 Java中的任何一种数据类型 ,包括 基本类型 :整型、浮点型、字符型,布尔型;引用类型 :数组类型和对象;对象也称作类类型变量;class People int boy ; float a ;void f boolean cool;Workman zhangboy; class Workman double x; People zhiwei ; People 类的成员变量a 是浮点数组型变量,cool 是局部量 ,zhangboy 是类类型(对象)局部变量 ,类 Workman 中的 zhiwei 是类类型变量 ,即对象 . class Sun int distance;int find int a=12;distance=a; /合法 ,distance在整个类内有效 . return distance; void g int y ;y=a; /非法 ,由于 a 以失效 ,而方法 g 内又没有定义变量 a (2)成员变量在整个类内都有效,局部变量只在定义它的方法内有效 . 3 / 10 名师归纳总结 - - - - - - -第 3 页,共 10 页精选学习资料 - - - - - - - - - 成员变量与它在类体中书写的先后位置无关 class 梯形 ,例如 ,前述的梯形类也可以写成: float 上底 ,面积; /成员变量的定义 . float 运算面积 面积 =上底 +下底 * 高/2.0f; return 面积; . float 下底; /成员变量的定义 void 修改高 float h / 方法定义 . 高 =h; float 高; /成员变量的定义 . 留意:但不提倡把成员变量的定义分散地写在方法之间或类体的最终 功能 . ,人们习惯先介绍属性再介绍(3)成员变量又分为实例成员变量(简称实例变量 )和类成员变量(简称类变量 )例如:class dog float x ;static int y ; 其中 x 是实例变量 ,而 y 是类变量 .假如成员变量的类型前面加上关键字 static,这样的 成员变量称做是类变量或静态成员变量 .再学习过对象之后 ,就会知道实例变量和类变量的区 别. (4)假如局部变量的名字与成员变量的名字相同,就成员变量被屏蔽,即这个成员变量在这个方法内临时失效. class Tom int x=98,y ;void f int x=3 ;y=x;/ y 得到的值是3,不是 98.假如方法 f 中没有”int x=3;”语句 ,y 的值将是98. (5)我们已经知道,假如局部变量的名字与成员变量的名字相同,就成员变量被屏蔽 . 4 / 10 名师归纳总结 - - - - - - -第 4 页,共 10 页精选学习资料 - - - - - - - - - 这时假如想在该方法内使用成员变量 class 三角形 ,必需使用 关键字 this.float sideA,sideB,sideC,lengthSum ;void setSidefloat sideA,float sideB,float sideC this.sideA=sideA ;this.sideB=sideB ;this.sideC=sideC; this.sideA,this.sideB,this.sideC 就分别表示成员变量 4.2.4. 方法sideA , sideB , sideC. 我们已经知道一个类的类体由两部分组成:变量的定义和方法的定义 .方法的定义包括两部分 :方法声明和方法体一般格式为:方法声明部分 方法体的内容 (1)方法声明 .最基本的方法声明包括方法名和方法的返回类型 ,如:float area 方法返回的数据的类型可以是任意的 Java 数据类型 ,当一个方法不需要返回数据时 ,返回类型必需是 void.许多的方法声明中都给出方法的参数 ,参数是用逗号隔开的一些变量声明 .方法的参数可以是任意的 Java数据类型 . 方法的名字 必需符合标识符规定 .在给方法起名字时应遵守良好的习惯:名字假如使用拉丁字母 ,首写字母使用小写 .假如由多个单词组成 ,从第 2 个单词开头的其它单词的首写字母使用大写;例如float getTrangleArea void setCircleRadiusdouble radius 等. 2方法体方法声明之后的一对大括号” “,” ” 以及之间的内容称做方法的方法体 .方法体的内容包括局部变量的定义和合法的Java语句;int getSumint n int sum=0 ;forint i=1 ;i<=n ;i+ sum=sum+i ;5 / 10 名师归纳总结 - - - - - - -第 5 页,共 10 页精选学习资料 - - - - - - - - - return sum; 方法参数在整个方法内有效 ,方法内定义的局部变量从它定义的位置之后开头有效 .写一个方法和 C 语言中写一个函数完全类似 ,只不过在这里称做方法罢了 .局部变量的名字必需符合标识符规定 ,遵守习惯 名字假如使用拉丁字母 ,首写字母使用小写 .假如由多个单词组成 ,从第 2 个单词开头的其它单词的首写字母使用大写 . 4.2.5.方法重载方法重载是指 一个类中 可以有多个方法具有相同的名字 ,但这些方法的参数必需不同 ,即或者是参数的个数不同 ,或者是参数的类型不同 .下面的 Area 类中 getArea 方法是一个重载方法 . (1).如何创建对象Object obj=new Object Object 表示的要创建的对象的类型obj 表示的是创建的对象的名称new 是创建对象的关键字Object 是创建对象所使用的构造方法(2).假如是用 Object obj 表示声明一个对象但是并没有为该对象安排内存空间;什么是构造方法:构造方法是一种特别方法,它的名字必需与它所在的类的名字完全相同,并且不返回任何数据类型(3).构造方法是创建对象的时候调用的;(4).每一个类都有一个默认的构造方法(使用javap 命令来检查一个.class 文件的结构)格式为:public packagename.ClassName 即 共有的 无参的 例如: public Student() (5).假如我们在一个类中定义了一个有参数的构造方法那么默认的构造方法就不存在了;(6) 假如创建了一个对象,并且类中声明的属性没有初始值那么java 会为其安排默认值:对于引用类型为 null(空的)对于基本数据类型 int 为 0 、float 为 0.0、 boolean 为 false、char 为空字符;(7).在一个类中可以有多个构造方法,那么这些方法的参数必需不同(个数不同,类型不同,与参数名字无任何关系)方法重载 :方法重载是指一个类中可以有多个方法具有相同的名字不同 ,即或者是参数的个数不同,或者是参数的类型不同. 方法重载示例:class Area float getAreafloat r return 3.14f*r*r ; double getAreafloat x,int y 6 / 10 ,但这些方法的参数必需名师归纳总结 - - - - - - -第 6 页,共 10 页精选学习资料 - - - - - - - - - return x*y float getAreaint x,float y return x*y ; double getAreafloat x,float y,float z return x*x+y*y+z*z*2.0; 注:方法的返回类型和参数的名字不参加比较,也就是说假如两个方法的名字相同,即使类型不同 ,也必需保证参数不同. 4.2.6. 构造方法构造方法是一种特别方法,它的名字必需与它所在的类的名字完全相同,并且不返回任何数据类型 . class 梯形 float 上底 ,下底 ,高;梯形 上底 =60;下底 =100;高=20; 梯形 float x,int y,float h 上底 =x ;下底 =y ;高=h; 4.2.7. 类方法和实例方法 我们已经知道 ,成员变量可分为实例变量和类变量 .同样 , 类中的方法也可分为实例方法和类方法 ,如class A int a;float maxfloat x,float y 7 / 10 名师归纳总结 - - - - - - -第 7 页,共 10 页精选学习资料 - - - - - - - - - static float jerry 类 A 中的方法 jerry 和 speak 是类方法 ,max 是实例方法 ,即方法声明时 ,方法类型前面不加关 键字 static 的是实例方法 ,加 static 的是类方法 .留意 static 需放在方法的类型的前面 . 4.2.8. 两个值得留意的问题(1)对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自己定义的局部变量进行操作 .在定义类的成员变量时可以同时给予初值 ,如:class A int a=12;float b=12.56f ; 但是不行以这样做class A int a;float b;/a=12;非法,只能放在方法中 /b=12.56f ;非法 但需要留意的是,实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作 .如:class A int a;static int b ;void fint x,int y /a=x; 合法 . /b=y ; 合法 . static void gint z /b=23; 合法 . /a=z; 非法 . 8 / 10 名师归纳总结 - - - - - - -第 8 页,共 10 页精选学习资料 - - - - - - - - - (2)一个类中的方法可以相互调用,实例方法可以调用该类中的其它方法;类中的类方法只能调用该类的类方法,不能调用实例方法. 4.3 对象我们已经说过类是创建对象的模板.当使用一个类创建了一个对象时,我们也说我们给出了这个类的一个实例;4.3.1. 创建对象创建一个对象包括对象的声明和为对象安排内存两个步骤 . (1)、对象的声明 .一般格式为:类的名字 对象名字;如: People zhangPing 这里 People 是一个类的名字 ,zhangPing 是我们声明的对象的名字 . (2)、为声明的对象安排内存 .使用 new 运算符和类的构造方法为声明的对象安排内存 ,假如类中没有构造方法 ,系统会调用默认的构造方法(默认的构造方法是无参数的)如:以下是两个具体的例子;class XiyoujiRenwu float height,weight ;String head, ear,hand,foot, mouth ;void speakString s System.out.printlns ; class A public static void mainString args zhangPing=new People;XiyoujiRenwu zhubajie ; / 声明对象;zhubajie=new XiyoujiRenwu ; /为对象安排内存,使用 new 运算符和默认的构造方法; - class Point int x,y ;Pointint a,int b 9 / 10 名师归纳总结 - - - - - - -第 9 页,共 10 页精选学习资料 - - - - - - - - - x=a;y=b; public class A public static void mainString args Point p1,p2; /声明对象 p1 和 p2; p1=new Point10,10 ; /为对象安排内存,使用 new 和类中的构造方法;p2=new Point23,35 ; /为对象安排内存,使用 new 和类中的构造方法;- 10 / 10 名师归纳总结 - - - - - - -第 10 页,共 10 页

    注意事项

    本文(2022年面向对象程序设计第一部分.docx)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开