ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:24.47KB ,
资源ID:781121      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/781121.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(04类和对象基本语法和语义.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

04类和对象基本语法和语义.docx

1、04类和对象基本语法和语义第4章 类和对象-基本语法和语义 本部分主要讨论JAVA语言有关类的声明、属性、方法的语法和语义。1 类的定义(1)语法 JAVA语言定义类最简单的语法是这样的:class 类名 /属性的定义. /方法的定义. class是JAVA 的关键字,“类名”是用户自定义的标识符,作为编程风格的约定,“类名”首字母应大写。例1: class Car int speed; /属性float weight, height; void changeSpeed(int newSpeed) /方法声明 /. / 方法体 float getWeight() return weight;

2、float getHeight() return height;(2)语义 类是对“一类事物”的抽象描述,“类名”(比如Car)是这类事物的名字 “类名”是用户自定义的抽象类型名(而不是一个变量名),“类名”的级别与int,float,char等是同级的,它们都代表“一类事物”。 类是引用类型的,在赋值和方法(函数)传参上体现的是“地址”特性。 属性描述这类事物的静态特性(是什么),一般是名词性的。 方法描述这类事物的动态特性(做什么),一般是动词性的。 “一类事物”的属性集,和围绕该属性集进行的操作(方法集),聚合成了一个类,类描述了“一类事物”。例2: 一个“人员管理类”,该类有3个属性2

3、个方法。 class Person String id; /属性,身份证号String name; /属性,姓名String address; /属性,住址/方法,增加一个人员记录void addPerson(String id, String name, String address) /方法体. /方法,修改一个人员记录void modifyPerson(String id, String name, String address) /方法体. 2 类的属性和方法 类由属性和方法聚合而成,属性又叫类的成员变量,方法又叫类的成员方法。(1)属性(成员变量): 语法:成员变量可以是基本类型的,

4、也可以是引用类型的,还可以使用关键字final修饰为常量(作为编程风格的约定,常量名字应该大写)。 例3: class Engine/. /声明另一个类 class Car int speed; /属性,基本类型float weight, height; /属性,基本类型final int MAX=100; /属性,常量,定义时要直接赋值 int a; /属性,数组,引用类型 Engine e; /属性,e是引用类型 /类的其它部分语义:属性描述这类事物的静态特性(是什么),一般是名词性的。注意: 类的成员变量是在类的成员方法之外定义的,参见本课件【例1例3,】,成员变量的作用域(有效范围)是

5、类,JAVA语言没有“全局变量”的概念。 方法体内定义的变量不是类的成员变量,其作用域仅限于定义它的方法内。 JAVA语言任何的变量和常量,只能在类、方法、语句块内定义,不能在类以外定义。例4: class Car int speed=80; /属性,作用域在Car内float weight, height; void changeSpeed(int newSpeed) /方法声明 newSpeed+; / newSpeed只在方法内有效speed + ; / speed在Car内有效 float getWeight() weight=1008; / weight在Car内有效 return

6、weight; float getHeight() return height;(2)方法定义方法最基本的语法是: 返回类型 方法名(形参类型 形参名。) /方法体的代码。 return 返回类型;/返回方法的运行结果,/如“返回类型”是void,则不必写return JAVA方法的语法与C/+“函数”语法的基本一样。JAVA方法的形参不仅可以是基本类型的,还可以是引用类型的(数组,对象等)-这一点在JAVA实际编程中很常用。比如:在方法内查询数据库的表,返回若干条记录,这就需要方法返回引用类型,在课件PART3中将讲解引用类型作为方法参数的若干问题。语义: 方法描述这类事物的动态特性(做什么

7、),一般是动词性的。 方法代表类的一个操作,有时是简单操作(比如赋值),有时实现一个算法(比如排序),但无论如何,从软件设计的角度(不是语法角度),一个方法应该实现一个“单一功能”,而不是多个功能。注意: JAVA语言的方法只能在类的内部定义,换句话说,方法必需从属于某个类。 JAVA语言的方法不需要像C语言函数那样“先声明后实现”。重要问题:重视写函数的能力: 编程初学者最重要的是要学会两件事: 一是要学会使用循环语句,适应计算机解题的“思路”。 二是要学会写方法(函数),实现对功能单一的算法的“封装”,并正确使用形参和实参。 另外,当遇到一个编程问题时,不要先想语法如何如何(解数学题时是想

8、想解题办法还是先想怎样使用数学符号?),而是要脱离具体编程语言,先去做一个“设计”,要先想程序应完成什么功能,如果是复杂程序,将其分解为多个函数,分而治之,上机一点点调试出来。 (3) main()方法 一个JAVA程序可能有一个或多个类,多个类可能放在同一个或不同的源程序文件中,程序从main()方法开始启动。如果一个项目中含有多个源程序文件和多个main()方法,程序将从(用户指定的)当前源程序文件的main()方法开始启动。 main()方法也是类的一个成员方法,只是该方法有几点特殊性而已,以后将陆续介绍。3 对象的实例化 类是抽象的概念,是对“一类问题”的解决方案。对象是具体的概念,是

9、对“一类问题”下的某个具体问题的解决方案。可以用代数作类比,数学公式表示对“一类问题”的解决方案,当给公式具体的值时,解决一个具体的值,由此可见,公式表示抽象的问题,具体的值解决具体问题。类是用户自定义的类型(表示抽象的问题),将类的属性集赋不同的初值,可以得到不同的对象,解决一个个不同的具体问题。也可以认为,类是对象的模板,从类中可以“复制”出对象,这个复制过程叫对象的实例化。(1)对象实例化的语法 类名 对象名;/首先定义一个对象,类名是类型,/对象名是“类的变量” 对象名=new 构造方法名();/实例化对象,new是关键字 上面两步可以合并成一步:类名 对象名=new 构造方法名();

10、例5:class MyClass /该类有一个属性两个方法 int z;int m1(int x, int y) return x+y; int m2(int x) return x*x; /其它代码。MyClass c1=new MyClass(); /用默认构造方法,实例化对象c1MyClass c2=new MyClass(); /用默认构造方法,实例化对象c2(2)对象实例化的语义 对象是实体,new表示给对象在堆中分配内存,构造方法用于给对象初始化(比如,为属性赋初值)。 虽然c1,c2 的z值都为0,但c1和c2不相等(不是同一个对象),因为对象是引用类型,对象名代表其引用(对象在

11、内存中的首地址),由于c1和c2分别用new实例化,因此占用不同的内存空间。(3)类是用户自定义的类型,而对象是类的变量。 这对理解类和对象的概念特别重要。下面的代码:int a; a=10; 语义是什么? 答:int是JAVA预定义的基本数据类型,同时也是抽象类型,表示“整数”这一类事物,而a是表示“整数”这一类事物下面一个具体整数,应该有值。换句话说,int可以看作是一个“类”,而a是int类的一个对象。 下面的代码:MyClass c1;c1=new MyClass();语义是什么? 答:MyClass是用户自定义的抽象类型,表示“MyClass”这一类事物,c1是表示这一类事物下面一个

12、具体事物。4 使用对象的属性和方法对象的属性和方法就是它所属的类的属性和方法,但由于类不是实体,所以不能直接使用类的属性和方法(static属性和方法例外,以后会讲到),而要通过对象去调用它们。 使用对象的属性和方法要用到“.”操作符。语法是: 对象名.属性名; 对象名.方法名;例6:class MyClass int z;int m1(int x, int y) return x+y; int m2(int x) return x*x; public static void main() MyClass c1=new MyClass(); /用默认构造方法,实例化对象 MyClass c2=

13、new MyClass();int a,b; c1.z=20; /调用c1对象的属性z c2.z=20; /调用c2对象的属性z a=c1.m1(100,200); /调用c1对象的方法,a=300 b=c2.m1(100,200); /调用c2对象的方法,b=300如上例所示,实例化对象的语法常写在main()方法体内,因为程序从这个方法内启动, 但实例化对象的语法不是必须要写在main()方法体内,写到其它需要的位置也可以。 5 对象的引用特性 类是引用类型,对象自然也是引用类型的“类的变量”。 对象的引用特性是指:对象的名字代表对象在内存中的首地址。 关于引用类型的特点,在第2章介绍数组

14、的引用特性已讲过一些。下面对照前面的“例6”回答几个问题:问题1:例6中,c1.z=20和 c2.z=20中的z是一回事吗?c1.m1()和c2.m1()呢?答:c1和c2都用了new实例化,是同一个类的不同对象,各自占用不同的内存空间,对c1属性和方法的调用不影响c2,反之依然。问题2:下面的代码执行后是什么效果? MyClass c1=new MyClass(); MyClass c2=new MyClass(); c1=c2;答:前2句代码c1和c2是不同对象,当c1=c2后,c1和c2是不同名字的同一个对象,原有的c1被JAVA垃圾自动回收机制销毁了。 对象的引用特性是JAVA语言的重点和难点,要抓住“对象的引用就是对象在内存中的首地址”这个要点学习。 6 构造方法和析构方法 每一个JAVA类都含有两种特殊的方法:构造方法和析构方法。(1)构造方法语法: 构造方法没有返回类型,方法名与类名相同。 构造方法可以重载,重载规则同普通方法(下一章再作讲解)。 构造方法只能在实例化对象时调用,与new配套使用,见【例6】,【例7】。(2)构造方法语义: 类是个抽象类型,类的属性不能有具体的初值(常量属性除外,)而对象是具体的“类变量”,必需要有初值。构造方法用于给对象初始化(属性初值),从而产生某个具体的对象。例7:下面是构造方法的样例

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1