版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2章章 标识符和数据类型标识符和数据类型本章主要内容本章主要内容 Java的基本语法单位的基本语法单位 1Java编码体例编码体例2Java的基本数据类型的基本数据类型3复合数据类型复合数据类型 4类和对象的初步介绍类和对象的初步介绍 5Java程序的结构程序的结构 package语句语句:可以没有,或可以有多个,但必:可以没有,或可以有多个,但必须放在文件开始的地方须放在文件开始的地方 import语句语句:可以没有,或可以有多个,如果有:可以没有,或可以有多个,如果有import语句的话,必须放在所有类定义之前语句的话,必须放在所有类定义之前 public型的类定义型的类定义:每个文件
2、中最多有一个:每个文件中最多有一个 类定义类定义:每个文件中包含的类定义的个数没有限:每个文件中包含的类定义的个数没有限制制 接口定义接口定义:每个文件中包含的接口定义个数没有:每个文件中包含的接口定义个数没有限制限制Java的基本语法单位的基本语法单位空白、注释及语句空白、注释及语句空白空白 换行符及回车键、空格键、水平定位键(换行符及回车键、空格键、水平定位键(tab)都是空白。都是空白。Java程序的元素之间可插入任意数程序的元素之间可插入任意数量的空白,编译器将忽略掉多余的空白量的空白,编译器将忽略掉多余的空白 程序中除了加入适当的空白外,还应使用缩进程序中除了加入适当的空白外,还应使
3、用缩进格式,使得同一层语句的起始列位置相同格式,使得同一层语句的起始列位置相同不提倡的程序风格不提倡的程序风格一种不好的风格一种不好的风格class Point int x,y;Point(int x1,int y1) x=x1;y=y1;Point()this(0,0);void moveto(int x1,int y1)x=x1;y=y1;提倡的程序风格提倡的程序风格class Point int x, y;/ 点的点的x轴、轴、y轴坐标轴坐标Point(int x1, int y1) / 构造方法构造方法 x = x1;y = y1;Point() / 构造方法构造方法 this( 0,
4、 0);void moveto(int x1, int y1) / 点移动到(点移动到(x1, y1) x = x1;y = y1;注释注释程序中适当地加入注释,会增加程序的程序中适当地加入注释,会增加程序的可读可读性性 程序中允许加空白的地方就可以写注释。注程序中允许加空白的地方就可以写注释。注释不影响程序的执行结果,编译器将忽略注释不影响程序的执行结果,编译器将忽略注释释Java中的三种注释形式:中的三种注释形式:/ 在一行的注释在一行的注释/* 一行或多行的注释一行或多行的注释 */* 文档注释文档注释 */语句、分号和块语句、分号和块 Java中的语句是中的语句是最小的执行单位最小的执
5、行单位Java各语句间以分号各语句间以分号“;”分隔。一个语句可写在分隔。一个语句可写在连续的若干行内连续的若干行内花括号花括号“”和和“”包含的一系列语句称为包含的一系列语句称为语句块语句块,简称为简称为块块语句块可以语句块可以嵌套嵌套 即语句块中可以含有子语句块。在词法上,块被当作即语句块中可以含有子语句块。在词法上,块被当作一个语句看待一个语句看待 Java关键字关键字abstractbooleanbreakbytecasecatchcharclassconstcontinuedodoubleelseextendsfalsefinallycastdefaultfinalfinallyfl
6、oatforfuturegenericgotoifimplementsimportinnerinstanceofintinterfacelongnativenewnulloperatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile标识符标识符标识符是以字母、下划线(标识符是以字母、下划线(_)或美元符)或美元符($)开头,由字母、数字、下划线()开头,由字母、数字、下划线(_)或美元
7、符(或美元符($)组成的字符串)组成的字符串标识符区分大小写,长度没有限制标识符区分大小写,长度没有限制 标识符例合法的标识符合法的标识符非法标识符非法标识符2Sun / 以数字以数字2开头开头class/ 是是Java的关键字,有特殊含义的关键字,有特殊含义#myname / 含有其他符号含有其他符号#Identifier username User_name _sys_var1 $changesizeofJava编码体制编码体制Java中的一些命名约定中的一些命名约定 : 类类 类名应为名词,含有大小写,每个字的首字母大写类名应为名词,含有大小写,每个字的首字母大写 接口接口 接口是一种特
8、殊的类,接口名的命名约定与类名相接口是一种特殊的类,接口名的命名约定与类名相同同 方法方法 方法名应是动词,含有大小写,首字母小写,方法名应是动词,含有大小写,首字母小写,其余各字的首字母大写,尽量不要在方法名中使用下划其余各字的首字母大写,尽量不要在方法名中使用下划线线 常量常量 简单类型常量的名字应该全部为大写字母,字简单类型常量的名字应该全部为大写字母,字与字之间用下划线分隔,对象常量可使用混合大小写与字之间用下划线分隔,对象常量可使用混合大小写 变量变量 所有的实例变量、类变量和全局变量都使用混合所有的实例变量、类变量和全局变量都使用混合大小写,首字符为小写,后面的字首用大写,作为字间
9、大小写,首字符为小写,后面的字首用大写,作为字间的分隔符。变量名中不要使用下划线的分隔符。变量名中不要使用下划线Java的基本数据类型的基本数据类型基本数据类型基本数据类型数据类型数据类型基本数据类型基本数据类型复合数据类型复合数据类型类类型类类型布尔类型:布尔类型:boolean数组数组接口类型:接口类型:interface字符类型:字符类型:char数值类型数值类型浮点数类型:浮点数类型:float,double整数类型:整数类型:byte,short,int,long类型转换类型转换各类型所占用的位数从短到长依次为:各类型所占用的位数从短到长依次为:byte short char int
10、 long float double不同类型数据的转换规则不同类型数据的转换规则操作数操作数1类型类型操作数操作数2类型类型转换后的类型转换后的类型byte或或shortintintbyte或或short或或intlonglongbyte或或short或或int或或longfloatfloatbyte或或short或或int或或long或或 floatdoubledoublecharintint类型转换类型转换当位数多的类型向位数少的类型进行转换时,需当位数多的类型向位数少的类型进行转换时,需要用户明确指明,即进行强制类型转换要用户明确指明,即进行强制类型转换一般地,高级类型(即位数较多的数据
11、类型)转一般地,高级类型(即位数较多的数据类型)转为低级类型(即位数较少的数据类型)时,截断为低级类型(即位数较少的数据类型)时,截断高位内容,因此会导致精度下降或数据溢出高位内容,因此会导致精度下降或数据溢出 int i = 3; byte b = (byte) i;变量、说明和赋值变量、说明和赋值程序程序2-2 变量的说明和赋值变量的说明和赋值 程序程序2-3为每种基本类型定义了一个变为每种基本类型定义了一个变量,并为其赋值量,并为其赋值复合数据类型复合数据类型早期的程序设计语言把变量看作是孤立的东西 如果我们在一个程序中需处理日期,则往往说明三个独立的整数分别代表日、月、年。如下所示:
12、int day, month, year; 复合数据类型复合数据类型这种方法的不足:这种方法的不足: 如果程序需要处理多个日期,则需要更多的说明。如果程序需要处理多个日期,则需要更多的说明。例如要保存两个生日,需如下说明:例如要保存两个生日,需如下说明: 因使用了多个变量而变得混乱,容易出错。同时,因使用了多个变量而变得混乱,容易出错。同时,又占用了过多的命名空间。更重要的是每个值都又占用了过多的命名空间。更重要的是每个值都是独立的变量是独立的变量 int myBirthDay,myBirthMonth,myBirthYear;int yourBirthday,yourBirthMonth,y
13、ourBirthYear;复合数据类型复合数据类型有两种办法来解决这个问题:有两种办法来解决这个问题: 提供日期类型提供日期类型。并为这个类型定义了相应的函。并为这个类型定义了相应的函数,通过调用这些函数就可以得到所需要的结数,通过调用这些函数就可以得到所需要的结果果 定义复合数据类型。定义复合数据类型。复合数据类型为我们提供复合数据类型为我们提供了更强大的类型定义工具,设计程序时也更加了更强大的类型定义工具,设计程序时也更加灵活灵活复合数据类型复合数据类型定义:用户定义的新类型为复合数据类型定义:用户定义的新类型为复合数据类型在有些语言中,复合数据类型又称作结构在有些语言中,复合数据类型又称
14、作结构类型或记录类型。复合数据类型由程序员类型或记录类型。复合数据类型由程序员在源程序中定义,一旦有了定义,该类型在源程序中定义,一旦有了定义,该类型就象其他类型一样使用就象其他类型一样使用复合数据类型复合数据类型 对于新定义的复合数据类型,因系统不知对于新定义的复合数据类型,因系统不知道它的具体内容,要由程序员指定其详细道它的具体内容,要由程序员指定其详细的存储结构,这里存储空间的大小不是以的存储结构,这里存储空间的大小不是以字节来衡量,也不是位,而是按已知的其字节来衡量,也不是位,而是按已知的其他类型来考虑他类型来考虑 Java是面向对象的程序设计语言,它为用是面向对象的程序设计语言,它为
15、用户提供的复合数据类型就是我们在前面提户提供的复合数据类型就是我们在前面提到的复合数据类型,即到的复合数据类型,即类类、接口接口和和数组数组类和对象的初步介绍类和对象的初步介绍为什么使用面向对象技术为什么使用面向对象技术 面向过程的设计方式使用的众多变量名、函数面向过程的设计方式使用的众多变量名、函数名互不约束,令程序员不堪重负名互不约束,令程序员不堪重负 面向过程方法设计的程序把处理的主体与处理面向过程方法设计的程序把处理的主体与处理的方法分开,因此各种成分错综复杂地放在一的方法分开,因此各种成分错综复杂地放在一起,难以理解,易出错,并且难于调试起,难以理解,易出错,并且难于调试 为什么使用
16、面向对象随着开发系统的不断扩大,面向过程的方法越来随着开发系统的不断扩大,面向过程的方法越来越不能满足使用者的要求越不能满足使用者的要求OOP技术使得程序结构简单,相互协作容易,更技术使得程序结构简单,相互协作容易,更重要的是程序的重用性大大提高了重要的是程序的重用性大大提高了面向对象的方法学,就是使分析、设计和实现一面向对象的方法学,就是使分析、设计和实现一个系统的方法尽可能地接近我们认识一个系统的个系统的方法尽可能地接近我们认识一个系统的方法方法面向对象技术主要包含这样几个概念:对象、抽面向对象技术主要包含这样几个概念:对象、抽象数据类型、类、类型层次(子类)、继承性、象数据类型、类、类型
17、层次(子类)、继承性、多态性多态性为什么使用面向对象面向对象的方法学包括以下三方面:面向对象的方法学包括以下三方面: 面向对象的分析(面向对象的分析(OOA, Object-Oriented Analysis) 面向对象的设计(面向对象的设计(OOD, Object-Oriented Design) 面向对象的程序设计面向对象的程序设计(OOP, Object-Oriented Program) 什么是OOPOOP技术把问题看成是相互作用的事物的集合,技术把问题看成是相互作用的事物的集合,用属性来描述事物,而把对它的操作定义为方法。用属性来描述事物,而把对它的操作定义为方法。在在OOP中,把事
18、物称为对象,把属性称为数据,中,把事物称为对象,把属性称为数据,这样对象就是数据加方法。可以将现实生活中的这样对象就是数据加方法。可以将现实生活中的对象经过抽象,映射为程序中的对象。对象在程对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(象数据类型称为类(Class)OOP中采用了三大技术:中采用了三大技术: 封装、继承和多态封装、继承和多态 JavaOOP能力 Java与与C+ 的的OOP能力比较能力比较C+C+多重继承多重继承JavaJava接口、包、接口、包、finalfinal、supers
19、uper类、公有、私有、类、公有、私有、保护成员、静态保护成员、静态成员、构造函数、成员、构造函数、析构函数、虚函析构函数、虚函数、虚基类、数、虚基类、thisthis共有的部分C+独特的Java独特的Java中的类定义中的类定义Java中类定义的一般格式为:中类定义的一般格式为:修饰符修饰符 class 类名类名 extends 父类名父类名类型类型 成员变量成员变量1;类型类型 成员变量成员变量2; .修饰符修饰符 类型类型 成员方法成员方法1(参数列表)(参数列表)类型类型 局部变量局部变量;方法体方法体修饰符修饰符 类型类型 成员方法成员方法2(参数列表)(参数列表)类型类型 局部变量
20、局部变量;方法体方法体 .一辆轿车的类定义一辆轿车的类定义 Class Carint color_number;int door_number;int speed;void brake() void speedUp() void slowDown() 类定义的几点说明类定义的几点说明Java中的类定义与实现是放在一起保存的,整个中的类定义与实现是放在一起保存的,整个 类必须在一个文件中,因此有时源文件会很大类必须在一个文件中,因此有时源文件会很大Java源文件名必须根据文件中的公有类名来定义,源文件名必须根据文件中的公有类名来定义,并且要区分大小写并且要区分大小写类定义中可以指明父类,也可以不指明。若没有类定义中可以指明父类,也可以不指明。若没有指明从哪个类派生而来,则表明是从缺省的父类指明从哪个类派生而来,则表明是从缺省的父类Object派生而来。派生而来。Object是是Java中所有类的父类。中所有类的父类。Java中除中除Object之外的所有类均有一个且只有一之外的所有类均有一个且只有一个父类。个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度洗车场场地租赁与维护服务合同2篇
- 2024年度房地产项目水电安装工程合同2篇
- 2024年城市空间规划与设计合同3篇
- 2024年仓储租赁合同电子商务专用范本3篇
- 2024年房产项目设计委托合同3篇
- 2024年度食品冷链物流设施整体采购安装项目合同2篇
- 2024年度石子购销及供应链金融服务合同2篇
- 2024年某环保公司与某城市关于垃圾分类处理项目转让合同
- 2024年度金融科技产品研发与运营合作协议3篇
- 2024年教育机构研学旅行合作合同3篇
- 单招考试物理基础知识梳理
- 降低坠床跌倒品管圈课件
- 压疮QCC汇报 降低压疮事件的发生率品管圈护理课件
- 初中九年级数学课件-反比例函数k的几何意义
- 2024年PC行业分析报告及未来发展趋势
- 广东省佛山市顺德区2023-2024学年九年级上学期期末考试语文试题(含答案)
- 死亡医学证明(推断)书的规范填写与常见错误
- 11项国家标准针灸技术操作规范2024
- 幼儿足球培训课件
- 医疗卫生资源配置与公平性分析
- 2024年中国出版集团公司招聘笔试参考题库含答案解析
评论
0/150
提交评论