欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

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

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

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

    1、面向对象程序设计第一部分第四章 面向对象程序设计1、类2、对象3、接口4.1 编程语言的几个发展阶段机器语言 如:汇编语言 过程语言 如:c 语言,Fortran 语言等 使用面向过程语言,人们只需按着自己的意图来编写各个函数,语言的语法更接近人们的自然语言,所以,习惯上也称过程语言是高级语言.但是,无论那种高级语言编写的源文件,计算机都不能直接执行,因为计算机只能直接识别,执行机器 指令.因此,必须把源文件转换成机器指令,然后计算机去执行相应的机器指令.将高级语言编写的源程序转化成机器指令,经常使用下列两种方式:(1)编译方式 Compilation:针对当前的机器处理器芯片,将源程序全部翻

    2、译成机器指令,称做目标程序,再将目标程序交给计算机执行.(2)解释方式 Interpretation:这种方式不产生整个的目标程序,而是根据当前的机器处理器芯片,边翻译边执行,翻译一句执行一句.Java语言的处理方式既不是第1种也不是第二种,Java 语言的创造发明之处在于,它不针对特定的CPU芯片进行编译。Java提供的编译器把源程序编译成称做字节码的 一个中间代码.字节码是很接近机器码的文件,可以在提供了Java虚拟机JVM的任何系统上被解释执行.因此,Java本质上是解释执行的程序,当字节码加载到内存之后,再由Java的解释器对字节码按上述2的解释方式执行,即翻译一句,执行一句,不产生整

    3、个的机器代码程序,翻译过程如果不出现错误,就一直进行到全部执行完毕,否则将在错误处停止执行.同一个程序,如果是解释执行的,那么它的运行速度通常会比被编译成可执行的机器代码的运行速度慢些.但是,对Java 来说,二者的差别不太大,Java的字节码经过仔细设计,很容易便能使用 . JIT 即时编译方式编译技术将字节码直接转化成高性能的本地机器码,Sun 公司在Java2 发行版中提供了这样一个字节码编译器:-JIT(Just In Time) ,它是 Java 虚拟机的一 部分.Java 运行系统在提供 JIT 的同时仍具有平台独立性,因而”高效且跨平台”对 java 来说不再矛盾. 如果把 Ja

    4、va 的源文件比做”汉语”的话,字节码就相当于”世界语”,世界语不和具体的”国家”有关,只要这个”国家”提供了”翻译”,就可以再快速地把世界语翻译成本地语言.面向对象编程 随着计算机硬件设备功能的进一步提高,使得基于对象的编程成为可能.基于对象的编程更加符合人的思维模式,编写的程序更加健壮和强大,更重要的是,面向对象编程鼓励创造性的程序设计.Java 是面向对象语言,它的源程序是由若干个类组成,源文件是扩展名为.java的文本文件. 因此,要学习Java 编程就必须学会怎样去写类,即怎样用Java 的语法去描述一类事物共有的属性和功能.属性通过变量来刻画,功能通过方法来体现,即方法操作属性形成

    5、一定的算法来实现一个具体的功能.类把数据和对数据的操作封装成一个整体.4.2 类类是组成Java程序的基本要素.类封装了一类对象的状态和方法.类是用来定义对象的模板.类的实现包括两部分:类声明和类体.基本格式为:class 类名 类体的内容class 是关键字,用来定义类.”class 类名”是类的声明部分,类名必须是合法的Java标识符.两个大括号以及之间的内容是类体.4.2.1. 类声明以下是两个类声明的例子.class People class 植物 “class People”和”class 植物”叫做类声明 ”People”和”植物”分别是类名。类命名最好遵守下列习惯:(1)如果类名

    6、使用拉丁字母,那么名字的首写字母使用大写字母,如Hello,Time,People等.(2)类名最好见名得意,当类名由几个”单词”复合而成时,每个单词的首写字母使用大写。如 BeijingTime,AmericanGame,HelloChina等.4.2.2. 类体写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现.类声明之后的一对大括号“”,“”以及它们之间的内容称做类体,大括号之间的内容称做类体的内容.类体的内容由两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能.下面是一个类名为”梯形”的类,类体内容的变量定义部分定义了4 个float 类型

    7、的变量 ”上底”,”下底”,”高”和”面积”,方法定义部分定义了两个方法 ”计算面积”和”修改高”.class 梯形 float 上底,下底,高,面积。 /变量定义部分. float 计算面积() /方法定义 面积=(上底+下底)*高/2.0f。 return 面积。 void 修改高(float h) /方法定义 高=h。 4.2.3. 成员变量和局部变量我们已经知道类体分为两部分:. 变量定义部分所定义的变量被称为类的成员变量. 在方法体中定义的变量和方法的参数被称为局部变量.(1) 成员变量和局部变量的类型可以是Java中的任何一种数据类型,包括基本类型:整型、浮点型、字符型,布尔型。引

    8、用类型:数组类型和对象。对象也称作类类型变量。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

    9、 distance。 void g() int y。 y=a。 /非法,因为a以失效,而方法g内又没有定义变量a (2)成员变量在整个类内都有效,局部变量只在定义它的方法内有效.成员变量与它在类体中书写的先后位置无关,例如,前述的梯形类也可以写成:class 梯形 float 上底,面积。 /成员变量的定义. float 计算面积() 面积=(上底+下底)*高/2.0f。 return 面积。 float 下底。 /成员变量的定义. void 修改高(float h) /方法定义. 高=h。 float 高。 /成员变量的定义.注意:但不提倡把成员变量的定义分散地写在方法之间或类体的最后,人们

    10、习惯先介绍属性再介绍功能.(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。

    11、” 语句,y 的值将是98. (5)我们已经知道,如果局部变量的名字与成员变量的名字相同,,则成员变量被屏蔽. 这时如果想在该方法内使用成员变量,必须使用关键字this. class 三角形 float sideA,sideB,sideC,lengthSum。 void setSide(float sideA,float sideB,float sideC) this.sideA=sideA。 this.sideB=sideB。 this.sideC=sideC。 this.sideA,this.sideB,this.sideC就分别表示成员变量sideA , sideB , sideC.4.

    12、2.4. 方法我们已经知道一个类的类体由两部分组成:变量的定义和方法的定义.方法的定义包括两部分 :方法声明和方法体一般格式为:方法声明部分 方法体的内容 (1)方法声明.最基本的方法声明包括方法名和方法的返回类型,如:float area() 方法返回的数据的类型可以是任意的Java 数据类型,当一个方法不需要返回数据时,返回类型必须是void.很多的方法声明中都给出方法的参数,参数是用逗号隔开的一些变量声明.方法的参数可以是任意的Java数据类型.方法的名字必须符合标识符规定.在给方法起名字时应遵守良好的习惯:名字如果使用拉丁字母,首写字母使用小写.如果由多个单词组成,从第2 个单词开始的

    13、其它单词的首写字母使用大写。 例如 float getTrangleArea() void setCircleRadius(double radius)等.(2)方法体 方法声明之后的一对大括号”“ ,”以及之间的内容称做方法的方法体.方法体的内容包括局部变量的定义和合法的Java语句。 int getSum(int n) int sum=0。 for(int i=1。i=n。i+) sum=sum+i。 return sum。 方法参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效.写一个方法和C 语言中写一个函数完全类似,只不过在这里称做方法罢了.局部变量的名字必须符合标

    14、识符规定,遵守习惯 名字如果使用拉丁字母,首写字母使用小写.如果由多个单词组成,从第2个单词开始的其它单词的首写字母使用大写.4.2.5.方法重载方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同.下面的Area 类中getArea 方法是一个重载方法.(1).如何创建对象Object obj=new Object()Object表示的要创建的对象的类型 obj表示的是创建的对象的名称new是创建对象的关键字Object()是创建对象所使用的构造方法(2).如果是用Object obj表示声明一个对象 但是并没有为该对象分配

    15、内存空间。什么是构造方法:构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返回任何数据类型(3).构造方法是创建对象的时候调用的。(4).每一个类都有一个默认的构造方法(使用javap命令来检查一个.class文件的结构)格式为:public packagename.ClassName() 即 共有的 无参的 例如:public Student() (5).如果我们在一个类中定义了一个有参数的构造方法那么默认的构造方法就不存在了。(6)如果创建了一个对象,并且类中声明的属性没有初始值 那么java会为其分配默认值:对于引用类型为null(空的)对于基本数据类型int为0

    16、、float为0.0、 boolean为false、char为空字符。(7).在一个类中可以有多个构造方法,那么这些方法的参数必须不同(个数不同,类型不同,与参数名字无任何关系)方法重载:方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同.方法重载示例:class Area float getArea(float r) return 3.14f*r*r。 double getArea(float x,int y) return x*y float getArea(int x,float y) return x*y。 doub

    17、le getArea(float 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. 类方法和实例方法我们已经知道,成员变量可分为实例变量和类变

    18、量.同样,类中的方法也可分为实例方法和类方法,如class A int a。 float max(float x,float y) static float jerry() 类A中的方法jerry和speak是类方法,max 是实例方法,即方法声明时,方法类型前面不加关键字static的是实例方法,加static的是类方法.注意static需放在方法的类型的前面.4.2.8. 两个值得注意的问题(1)对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自己定义的局部变量进行操作.在定义类的成员变量时可以同时赋予初值,如:class A int a=12。 float b=12.56f。

    19、但是不可以这样做class A int a。 float b。/a=12。 非法,只能放在方法中/b=12.56f。 非法但需要注意的是,实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作.如:class A int a。 static int b。 void f(int x,int y) /a=x。 合法./b=y。 合法. static void g(int z) /b=23。 合法./a=z。 非法. (2)一个类中的方法可以互相调用,实例方法可以调用该类中的其它方法;类中的类方法只能调用该类的类方法,不能调用实例方法.4.3 对象我们已经说过类是创建对象的模板.当

    20、使用一个类创建了一个对象时,我们也说我们给出了这个类的一个实例。4.3.1. 创建对象创建一个对象包括对象的声明和为对象分配内存两个步骤.(1)、对象的声明. 一般格式为:类的名字 对象名字; 如:People zhangPing 这里 People 是一个类的名字,zhangPing是我们声明的对象的名字.(2)、为声明的对象分配内存.使用new 运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的)如:zhangPing=new People()。以下是两个详细的例子。class XiyoujiRenwu float heigh

    21、t,weight。 String head, ear,hand,foot, mouth。 void speak(String s) System.out.println(s)。 class A public static void main(String args) XiyoujiRenwu zhubajie。 /声明对象。 zhubajie=new XiyoujiRenwu()。 /为对象分配内存,使用new 运算符和默认的构造方法。 -class Point int x,y。 Point(int a,int b) x=a。 y=b。 public class A public static void main(String args) Point p1,p2。 /声明对象p1和p2。 p1=new Point(10,10)。 /为对象分配内存,使用new 和类中的构造方法。 p2=new Point(23,35)。 /为对象分配内存,使用 new 和类中的构造方法。 -


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开