1、面向对象的 语言程序设计Java主讲主讲 :上机实验点评上机实验点评1:一定要养成良好的程序书写规范。突出表:一定要养成良好的程序书写规范。突出表 现在缩进现在缩进.2:变量初始化的问题:变量初始化的问题 007TestInit.java第第 2 2 章章 2.1 Java2.1 Java语言的基本组成语言的基本组成 2.1.1 分隔符分隔符 1空白符空白符2注释语句注释语句3普通分隔符普通分隔符2.1.1 2.1.1 分隔符分隔符1空白符空白符 换行换行 回车回车 空格空格 制表制表 目的:增加程序可读性目的:增加程序可读性2.1.1 2.1.1 分隔符分隔符2注释语句注释语句 注释是程序中
2、不可缺少的部分。一个好的注释是程序中不可缺少的部分。一个好的程序员,无论使用何种语言编程,给程序写注程序员,无论使用何种语言编程,给程序写注释都是一个好习惯,并且要有意识地培养这种释都是一个好习惯,并且要有意识地培养这种习惯。习惯。注释不仅有助于对程序的修改与维护,而注释不仅有助于对程序的修改与维护,而且有助于别人阅读你的程序。且有助于别人阅读你的程序。2.1.1 2.1.1 分隔符分隔符三种注释方式1./用于单行注释,从用于单行注释,从/开始,到行尾自动结开始,到行尾自动结束束2./*.*/用于多行注释,从用于多行注释,从/*开始,到开始,到*/结束。结束。注意,注意,/*.*/不能嵌套不能
3、嵌套2.1.1 2.1.1 分隔符分隔符3./*.*/这是这是Java语言很有特色的注释方式。主要用语言很有特色的注释方式。主要用于于Javadoc。在这种注释中可加入一些。在这种注释中可加入一些Javadoc能能识别的特殊符号如用标识的一些信息识别的特殊符号如用标识的一些信息,Javadoc 能能提取这些信息,形成软件的文档。提取这些信息,形成软件的文档。一个软件工程的交付,不光有软件产品本一个软件工程的交付,不光有软件产品本身,文档也是很重要的一部分,有了它才能对软身,文档也是很重要的一部分,有了它才能对软件进行有效的维护、更新、升级。件进行有效的维护、更新、升级。Java的这种注释能够有
4、效的达到软件与文的这种注释能够有效的达到软件与文档的档的同步同步。Java语言的基本组成语言的基本组成 3普通分隔符普通分隔符 ;,:2.1.3 2.1.3 标识符标识符定义:定义:程序员对程序中的各个元素加以命名时使用程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(的命名记号称为标识符(identifier)。元素包括:)。元素包括:类名、变量名、常量名、方法名、类名、变量名、常量名、方法名、作用:作用:为了使程序中的变量、类、方法能被编译器为了使程序中的变量、类、方法能被编译器识别而提供的具有唯一性的名字。识别而提供的具有唯一性的名字。2.1.3 2.1.3 标识符标识符命名规
5、则命名规则 以字母、下划线或以字母、下划线或$符开头的字母、数符开头的字母、数 字、下划线、字、下划线、$符号的有限序列。符号的有限序列。区区 分分 大大 小小 写写,不不 能能 以以 数数字字 开开 头头,不能包含空白(不能包含空白(TabTab、空格、回车、换行)而、空格、回车、换行)而且且 不不 能能 为为 保保 留留 字字。合法标识符:合法标识符:name_id,studentid,_thread_type,$sum,number1非法标识符:非法标识符:name-id,stuid*,6year,class ,student name 2.1.2 2.1.2 关键字关键字 abstra
6、ct break byte boolean catch case class char continue default double do else extends false final float for finallyif import implements int interface instanceof long length native new null package private protected public final return switch synchronized short static super try true this throw throws t
7、hreadsafe transient void while2.1.3 2.1.3 标识符标识符请注意:请注意:Java Java 对标识符中字母大小写敏感!(区分大对标识符中字母大小写敏感!(区分大小写)小写)如:如:aa aa 和和Aa Aa 是两个不同的标识符是两个不同的标识符 Page26 表 2-22.1.4 Java 2.1.4 Java 的编码规范的编码规范标识符的命名技巧:标识符的命名技巧:1:标识符的长度合适:标识符的长度合适2:能够代表它所要表达的意思,不要取如:能够代表它所要表达的意思,不要取如a、ab等不具任何实际含义的标识符(等不具任何实际含义的标识符(ej:Stud
8、ent)3:尽量少用英文尽量少用英文字母、下划线、字母、下划线、$符号符号以外以外的字的字符符4 4:尽量少用尽量少用$符号符号 2.1.4 Java 2.1.4 Java 的编码规范的编码规范标识符的命名规范:标识符的命名规范:1:类类规范规范 每个单词的首字母都大写每个单词的首字母都大写示例示例 HelloWorldApp、HelloWorldApplet Student Student、MyStudentMyStudent2.1.4 Java 2.1.4 Java 的编码规范的编码规范标识符的命名规范:标识符的命名规范:2:函数函数(方法)方法)规范规范 第一个字母小写,其它单词的首字母
9、大写第一个字母小写,其它单词的首字母大写 示例示例 getAge、getName、setScore2.1.4 Java 2.1.4 Java 的编码规范的编码规范标识符的命名规范:标识符的命名规范:3:常量常量(值不会随着程序的运行而改变)值不会随着程序的运行而改变)规范规范 所有字母都大写所有字母都大写示例示例 MAX_HEIGHT、MIN_HEIFHT MAX_AGE、MIN_AGE2.1.4 Java 2.1.4 Java 的编码规范的编码规范标识符的命名规范:标识符的命名规范:4:变量变量(值会随着程序的运行而改变)值会随着程序的运行而改变)规范规范 第一个字母小写,其它单词的首字母大
10、写第一个字母小写,其它单词的首字母大写示例示例 nameOfStudent,numOfStudent,gradeOfStudent,2.2 2.2 基本数据类型基本数据类型2.2 2.2 基本数据类型基本数据类型基本类型基本类型:所有基本类型所占的位数都是确定的,并不所有基本类型所占的位数都是确定的,并不因操作系统的不同而不同。因操作系统的不同而不同。2.2 2.2 基本数据类型基本数据类型数据类型数据类型所占位数所占位数数的范围数的范围 char 160 65535 byte 8-2727-1 short 16-215215-1 int 32-231231-1 long 64-263263-
11、1 f loat 32 3.4e038 3.4e038 double 64 1.7e308 1.7e308 boolean true/false2.2.1 2.2.1 基本数据类型基本数据类型1.Boolean:布尔型数据只有两个值布尔型数据只有两个值true和和false,且它,且它们不对应于任何整数值。们不对应于任何整数值。在在C/C+中,中,false为为0,true为非为非0的整数的整数。Page 28 Page 28 例例 2-22-22.2.1 2.2.1 基本数据类型基本数据类型2字符型字符型char char型是用来表示字母的,它仅能表示一个单一的Unicode字母,其值用16
12、位无符号整数表示,范围是065535 char letter1=a;char letter1=a;char letter2=t;char letter2=t;char letter3=?;char letter3=?;2.2.1 2.2.1 基本数据类型基本数据类型3.整型整型 在Java语言中,提供了4种整型数据类型:byte、short、int、long,它们都是定义了一个整数,但它们能够表示数据的范围不同 Page 29 Page 29 例例 2-3 Test203.java2-3 Test203.java 例例 2-4 Test204.java2-4 Test204.java2.2.1
13、 2.2.1 基本数据类型基本数据类型3.整型整型 234 和 234L 的区别Integer.MAX_VALUEInteger.MIN_VALUELong.MAX_VALUELong.MIN_VALUE2.2.1 2.2.1 基本数据类型基本数据类型3.浮点型浮点型 在Java语言中有两种浮点数类型:float、double float f1=56.2F;/f1=56.2f float f2=562E-1F;double d1=123.4;double d2=123.4D;double d3=1234 E-1;double d4=1234E-1D;2.2.2 2.2.2 类型转化类型转化1:
14、自动类型转换:自动类型转换低低-高高byte,short,char int long float double 操作数操作数1类型类型操作数操作数2类型类型转换后的类型转换后的类型byte、short、charintintbyte、short、char、intlonglongbyte、short、char、int、longfloatfloatbyte、short、char、int、long、floatdoubledouble2.2.2 2.2.2 类型转化类型转化2:强制类型转换:强制类型转换 如果从高级转换成低级,则需要强制类型转如果从高级转换成低级,则需要强制类型转换。换。例如例如:int
15、 i=52;int i=52;byte b=(byte)i;byte b=(byte)i;2.2.2 2.2.2 类型转化类型转化2:强制类型转换:强制类型转换 如果从高级转换成低级,有可能导致如果从高级转换成低级,有可能导致溢出溢出(超超出低级数据类型的表示范围)或出低级数据类型的表示范围)或精度下降精度下降。例如:例如:int k;int k;float y=5.5 float y=5.5f f;k=(int)y;k=(int)y;2.2.2 2.2.2 类型转化类型转化2:强制类型转换:强制类型转换 如果从高级转换成低级,有可能导致如果从高级转换成低级,有可能导致溢出溢出(超超出低级数据
16、类型的表示范围)或出低级数据类型的表示范围)或精度下降精度下降。例如:例如:int k;int k;float y=5.5 float y=5.5f f;k=(int)y;k=(int)y;2.3 2.3 运算符与表达式运算符与表达式运算符和优先级运算符和优先级算术运算符算术运算符关系运算符关系运算符布尔逻辑运算符布尔逻辑运算符位运算符位运算符赋值运算符赋值运算符条件运算符条件运算符2.3 2.3 运算符与表达式运算符与表达式运算符的分类运算符的分类n算术运算符:算术运算符:+,*,/,%,+,n关系运算符:关系运算符:,=,&,|,n赋值运算符:赋值运算符:=,及其扩展赋值运算符如,及其扩展
17、赋值运算符如+=,=,*=,/=等。等。n条件运算符:条件运算符:?:n其它:包括分量运算符其它:包括分量运算符 ,下标运算符,下标运算符 ,实例运算符,实例运算符instanceof,内存分配运算符,内存分配运算符new,强制类型转换运算符,强制类型转换运算符(类型类型),方法调用运算符,方法调用运算符()等。等。2.3.1 2.3.1 算术运算符算术运算符双目算术运算符双目算术运算符 +op1+op2 加加 -op1-op2 减减 *op1*op2 乘乘 /op1/op2 除除 (求商)(求商)%op1%op2 取模(求余)取模(求余)2.3.1 2.3.1 算术运算符算术运算符双目算术运
18、算符双目算术运算符 /op1/op2 除除 (求商)(求商)%op1%op2 取模(求余)取模(求余)(op2不能为不能为0)例如:例如:int a=10/3;/a=3;int b=10%3;/b=1;2.3.1 2.3.1 算术运算符算术运算符单目算术运算符单目算术运算符 +op 正值正值 -op 负值负值 +op 加加 1 -op 减减 12.3.1 2.3.1 算术运算符算术运算符单目算术运算符单目算术运算符 +op 正值正值 -op 负值负值 +op 加加 1 -op 减减 12.3.1 2.3.1 算术运算符算术运算符单目算术运算符单目算术运算符 i+与与+i 的区别的区别:i+在使
19、用在使用i 之后,之后,i的值变为的值变为 i+1 例如:例如:i=3;j=i+;/j=3,i=4 +i在使用在使用i 之前,先把之前,先把i的值变为的值变为 i+1 例如:例如:i=3;j=+i;/j=4,i=42.3.1 2.3.1 算术运算符算术运算符单目算术运算符单目算术运算符 i-与与-i 的区别的区别:与与+运算符同样的道理运算符同样的道理2.3.2 2.3.2 关系运算符关系运算符 关系运算符用来比较两个值,返回的值是关系运算符用来比较两个值,返回的值是布尔类型布尔类型true或或false。关系运算符都是二员运算。关系运算符都是二员运算符。符。关系运算符:关系运算符:=op2 2 1 12op1=op2 3=3,5=4 3=8op1op2 37 62op1=op2 3=3,6=7 9y)?x:y;/max=x作业作业Page 53Page 53简答题目简答题目 1 1,2 2,3 3