1、1Java 程序基本结构程序基本结构import语句语句class public static void main(String args)主类名称主类名称方法体方法体nJava程序中如果用到了系统所提供的额外的类,就必须放置一个import语句。2编写Java程序需要注意的几点Java 区分大小写区分大小写类定义不能嵌套类定义不能嵌套一个程序中可以有一个或多个类,但其一个程序中可以有一个或多个类,但其中只能有一个主类中只能有一个主类(public)源程序编写完毕,应该用主类名作为文源程序编写完毕,应该用主类名作为文件名,再加后缀件名,再加后缀.java 存储成磁盘文件存储成磁盘文件3易犯错误
2、文件名和类名不一致 Java区分大小写,不一致时以类名为准。main函数声明错误 public static void:公开、静态、无返回值 String args:参数为字符串数组Java关键字拼写错误 Java关键字全部小写。引用类库中类的名称、属性和方法拼写错误,命名规则如下:类名称:以大写字母开头的名词 属性:以小写字母开头的名词(可带定语)方法:以小写字母开头的动词或动宾词组4第二章 Java语言基础主要内容:主要内容:标识符与保留字标识符与保留字变量和常量变量和常量基本数据类型基本数据类型运算符与表达式运算符与表达式基本数据类型数组基本数据类型数组5第一节 标识符与保留字一、标识符
3、一、标识符 二、保留字二、保留字三、分隔符三、分隔符6一、标识符(Identifier)n 定义:所谓标识符就是指用来标识 Java 中的包、类、方法、变量、常量等的名称。就像我们要为每个新出生的婴儿取一个名字,我们同样要为Java的每个元素指定一个名称,以便编译器可以唯一识别它们。n 规则:规则:(1)标识符由字母(az,AZ)、数字、下划线 _ 和 美元符号$组成;(2)首字母不能使用数字;(3)标识符不能是保留字,例如 class;(4)大小写字母表示不同的意义,即代表不同的标识符。n 思考:判定下面标识符的有效性?判定下面标识符的有效性?myMethod;_demo;yu$12;8va
4、lue;lee#;ONE-HUNDRED;class 7二、保留字(Reserved Word)定义:保留字也称关键字定义:保留字也称关键字(Keyword),就是已经被,就是已经被Java语言本身使用,不能作其他用途使用的符号串。语言本身使用,不能作其他用途使用的符号串。保留字具有固定的语法含义,全部由小写英文字母小写英文字母组成。Java 语言的保留字包括:语言的保留字包括:1、原始数据类型:、原始数据类型:byte、short、int、long、float、double、char、boolean2、循环保留字:、循环保留字:do、while、for、break、continue3、分支保
5、留字:、分支保留字:if、else、switch、case、default、break8二、保留字4、方法、变量和类修饰符:、方法、变量和类修饰符:private、public、protected、final、static、abstract、synchronized、volatile5、异常处理:、异常处理:try、catch、finally、throw、throws6、对象相关保留字:、对象相关保留字:new、extends、implements、class、instanceof、this、super7、字面字面值值常量:常量:false、true、null8、方法相关保留字:、方法相关保留
6、字:return、void9、包相关保留字:、包相关保留字:package、import10、备用:、备用:const、goto 留作将来供语言设计者扩充语言功能时使用。9三、分隔符三、分隔符n 定义:分隔符是用来分隔定义:分隔符是用来分隔 Java 程序中的基本元素程序中的基本元素的符号,有空白符和普通分隔符两种。的符号,有空白符和普通分隔符两种。1、空白符:、空白符:空格、回车、换行符、制表符。Java 编译器忽略空白符,所以空白符主要用来格式化源代码。10三、分隔符三、分隔符2、普通分隔符、普通分隔符(4 种);,:n 用来定义类体、方法体等。一对花括号括起来的代码段就是一个语句块。n分
7、号;用来表示语句的结束n逗号,用来区分方法中的各个参数以及区分变量声明中的各个变量。例如:Sum(a,b)int x,yn冒号:用于语句标号中11第二节 变量和常量n Java程序运行过程中,其值可以改变的量称为变变量量。变量名 Vs 变量值n 变量对应着内存中的一个或几个单元,变量的值就存放在所对应的内存单元中。变量名就是给对应的内存单元取一个名称,这样在程序中,可以按变量名称来区分和使用这些内存单元。123xyz212第二节 变量和常量nJava程序运行时值不可修改的量称为常量。13一、变量的特性n变量名变量名:变量名是一个合法的标识符,其命名必须遵循前面的标识符命名规则。变量名一般应该具
8、有的一定的含义,以增加程序的可读性,例如:student,teacher。14一、变量的特性n变量的数据类型变量的数据类型:可以是Java语言的任意一种数据类型;(基本类型与引用类型)n变量的作用域变量的作用域:指明可以访问该变量的一段代码。声明一个变量的同时也就指明了该变量的作用域。15二、变量的声明n 变量在使用之前必须声明。声明一个变量就是在内存中开辟一块区域,并与该变量名建立起联系。n 变量声明的语法:类型 变量名1=变量值1 ,变量名2=变量值2;n 例如:int a=1024,b=123;char c=A;a102416三、变量的作用域局部变量与成员变量n 前面讲到,在声明变量的同
9、时也就确定了该变量的作用域。实际上,是由变量声明在程序中的位置来决定变量的作用域。n按照变量作用域的不同,可以把变量分成下面四种类型:(1)局部变量局部变量:在方法中声明,其作用域为该方法;(2)类变量类变量(全局变量全局变量):在类中,而不是在类的某个方法中声明,其作用域为整个类;(3)方法参数:方法参数:方法参数传递给方法,它的作用域是这个方法;17三、变量的作用域(4)异常处理参数异常处理参数:异常处理参数传递给异常处理器,其作用域为该异常处理器。public class AClass类变量声明.局部变量声明 try .catch(异常处理参数).类变量作类变量作用域用域 方法参方法参数
10、作用域数作用域局部变量局部变量作用域作用域异常处理异常处理参数作用域参数作用域 public void Method1(参数行)18四、常量四、常量 常量:在程序运行期间不会改变的量,如数字、字符、常量:在程序运行期间不会改变的量,如数字、字符、字符串等。字符串等。Java 语言中的常量有下面两大类:(1)自定义常量:用final关键字修饰的变量,该变量的值一旦初始化,就不允许再发生改变。例如,final int NUM=100;NUM 是一个整型的自定义常量;(2)普通常量:又称字面值,是源程序中表示的常数值,如12.6、246、false 等,表示一个个具体的值。19四、常量四、常量普通常
11、量按照数据类型的不同又分成下面五种:整型常量:123、-456、0。布尔型常量:true 和 false,分别代表真和假。字符常量:用单引号引起来的单个字符,如 1、a、A、$等。20四、常量四、常量 实型常量:0.123、1.23。字符串常量:用双引号引起来的零个或者多个字符,如 “”、“hello,Java”等。21五、程序执行时内存结构22第三节 基本数据类型23一、一、整型整型数据类型数据类型类型类型缺省值缺省值长度长度取值范围取值范围byte08位位-27 27-1short016位位-215 215-1int032位位-231 231-1long064位位-263 263-1注:J
12、ava数据类型的长度不受操作系统影响Java语言整形默认为int类型,声明long类型后加l或L24二二、浮点型浮点型数据类型数据类型类型类型缺省值缺省值长度长度取值范围取值范围float0.032位位-3.4*10383.4*1038 double0.064位位-1.7*103081.7*10308十进制数形式:由数字和小数点组成,且必须有小数点,如0.123,1.23,123.0科学计数法形式:如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数注:Java浮点类型默认为double类型,如声明为float型的值,必须在数字后加f或F。25三三、字符型字符型数
13、据类型数据类型类型类型缺省值缺省值长度长度取值范围取值范围charu0000 16位位u0000 uFFFF n注:Java 语言的字符使用16位的 Unicode 编码表示,例如“u0041”表示字母A。而一般计算机语言则使用 ASCII码,用8位表示一个字符。ASCII 码是 Unicode 码的一个子集。Unicode 码通常用十六进制表示,例如“u00FE”等。其中“u0000”“u00FF”表示表示ASCII码,“u0100”“uFFFF”表示其他的 Unicode 码。n“u”是一个转义字符转义字符,用来表示其后的4个数字代表一个 Unicode 码。其他转义字符如“n”:换行、“
14、r”:回车。26Unicode编码与ASCII编码nJava的字符数据类型与其他语言相比有较大的改进。nC语言的字符类型是采用ASCII编码,每个数据占用8个比特位,总共可以表示256个不同的字符。nASCII编码具有一定的局限性,最典型的体现在处理以汉字为代表的东方文字方面。n汉字的字符集大,仅用8位编码是不够的,所以传统的处理方法是用两个两个8位的字符位的字符来表示一个汉字。27Unicode编码与ASCII编码n为了简化问题,Java的字符类型采用了一种新的国际标准编码方案Unicode编码。n每个Unicode码占用16个比特位,包含的信息量比ASCII码多了很多倍,总共可以表示655
15、36个不同的字符。无论东方字符还是西方字符,都可以统一用一个字符用一个字符表达。n由于采用Unicode编码方案,为Java程序在基于不同语言的平台间实现平滑移植铺平了道路。28四四、布尔型布尔型数据类型数据类型类型类型缺省值缺省值长度长度取值范围取值范围booleanfalse 1位位 false,true 29数据类型的转换BooleanBoolean类型不可以与其他类型相互转换类型不可以与其他类型相互转换整性,字符型,浮点性在混合运算相互转换,遵循原整性,字符型,浮点性在混合运算相互转换,遵循原则:则:自动自动(隐式隐式)数据类型转换数据类型转换:当不同数据类型的数据之间进行混合运算时,
16、系统自动将数据从当不同数据类型的数据之间进行混合运算时,系统自动将数据从取值范围小取值范围小的类型转换到的类型转换到取值范围大取值范围大的类型。的类型。例如例如:byte a=20;short b=30;int c=a+b;小大30数据类型的转换-强制强制(显显式式)数据数据类型转换类型转换:取值范围大取值范围大的数据类型转换到的数据类型转换到取值范围小取值范围小的的类型时,必须强制进行数据类型的转换。类型时,必须强制进行数据类型的转换。大小强制转换31数据类型的转换强制转换的格式为:强制转换的格式为:(目标数据类型)变量或表达式例如例如:int a=20;byte b=(byte)a;!在进
17、行强制类型转换时要注意使目标类型能够容纳在进行强制类型转换时要注意使目标类型能够容纳原类型的所有信息原类型的所有信息。!布尔型数据不能转换成数值型数据。布尔型数据不能转换成数值型数据。TestConvert.java32类型转换的问题修正结果:TestConvert2.java33类型转换自动转换自动转换需要满足两个条件:需要满足两个条件:1 1、类型相容;类型相容;2 2、目标数据类型比原数、目标数据类型比原数据类型分配的内存空间大据类型分配的内存空间大(即由低到高即由低到高)。注意注意局部变量使用时必须先赋局部变量使用时必须先赋初始值初始值;成员变量定义时成员变量定义时存在初始值存在初始值
18、.基本数据类型按精度从基本数据类型按精度从“低低”到到“高高”的顺序为:的顺序为:(byte char short)-int-long-float-double34第四、五节 运算符与表达式 运算符运算符:对操作数(变量、常量和子表达式等)进行运算的符号。Java 运算符包括:算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符等。表达式表达式:用运算符把操作数连接起来,用来表达某种运算或含义的式子。35与与C语言的不同语言的不同与与C不同之处:不同之处:Java是强类型语言,类型限制比是强类型语言,类型限制比C严格,严格,运算符的操作运算符的操作数数的类型会受到更多限制。的类型会受到更多
19、限制。Java不提供指针运算符,增加了对象操不提供指针运算符,增加了对象操作符作符 instanceof,字符串运算符字符串运算符+和零填和零填充的右移充的右移 等等361、算术、算术运算符运算符与算术表达式与算术表达式运算符运算符含义含义表达式表达式+加加a+b-减减a-b*乘乘a*b/除除a/b%取模取模a%b+递增递增a+或或+a-递减递减b-或或-b-取负数取负数c=-a372、关系运算符与关系表达式、关系运算符与关系表达式v关系运算符用于测试两关系运算符用于测试两个操作数之间的关系。个操作数之间的关系。v关系表达式将返回一个关系表达式将返回一个布尔结果。布尔结果。运算符运算符含义含义
20、表达式表达式=等于等于a=b!=不等于不等于a!=b大于大于ab小于小于a=大于或等于大于或等于a=b=小于或等于小于或等于a 右移右移(右移右移1 1位相当于除位相当于除2 2)a 2 右移,左边空出的位以右移,左边空出的位以0填充填充 a 2 左移左移(左移左移1 1位相当于乘位相当于乘2 2)a 1 注:&与&,|与|区别41移位运算示例移位运算示例1)00000000 00000000 00000000 00111111 3的值为的值为 00000000 00000000 00000000 00000111=7 /(最左边为最左边为0时,左边加时,左边加0)3)11111000 000
21、00000 00000000 01111010 3的值为的值为 11111111 00000000 00000000 00001111 /(最左边为最左边为1时,左边加时,左边加1)4)11111000 00000000 00000000 01111010 3的值为的值为 00011111 00000000 00000000 00001111 /(左边永远加左边永远加0)425、赋值运算符与赋值表达式、赋值运算符与赋值表达式赋值表达式的形式:赋值表达式的形式:变量名变量名=子表达式子表达式或采用复合形式:或采用复合形式:变量名变量名 操作符操作符=子表达式子表达式如:如:x+=y;/等价于等价
22、于x=x+y;一次可以为多个变量赋值,如一次可以为多个变量赋值,如:int a=20000;int p,q,r,s;p=q=r=s=a;赋值运算符赋值运算符(=)用于为变量赋值用于为变量赋值436、条件运算符、条件运算符(?:)与条件表达式与条件表达式条件运算符条件运算符(?:)可以替代可以替代 if-else 语句语句truefalse子子表达式表达式1?子子表达式表达式 2 :子子表达式表达式 3 class TernaryOp public static void main(String args)int salary,daysPresent=30;salary=daysPresent=
23、20?2000:3000;System.out.println(您本月薪资为您本月薪资为$+salary);447、Instanceof 运算符与表达式运算符与表达式class Student public static void main(String args)Student d=new Student();if(d instanceof Student)System.out.println(d是学生类的实例是学生类的实例);else System.out.println(d不是学生类的实例不是学生类的实例);可以判断对象是否可以判断对象是否属于一个特定的类属于一个特定的类45运算符的优先
24、次序表达式的运算通常按照运算符的优先顺序从高到低进行,同级运算符从左到右进行。首先单运算符,接着乘除加减,然后位运算符,之后比较运算,最后是赋值运算。单运算符单运算符乘除加减乘除加减位运算符位运算符比较运算比较运算赋值运算赋值运算46第六节 基本数据类型数组数组是一种比较特殊的数据类型,分为基本数据类型的数组和复合数据类型的数组。本章我们主要介绍基本数据类型的数组。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名数组名和下标下标来唯一地确定数组中的元素。数组分为一维数组和多维数组。47第六节 基本数据类型数组 声明数组声明数组数组的创建与初始化数组的创建与初始化
25、多维数组多维数组48一、声明数组一、声明数组声明包含两部分:数组的类型与数组的名称。声明包含两部分:数组的类型与数组的名称。格式:格式:采用采用 C,C+标准形式:标准形式:基本数据基本数据类型类型 数组名数组名 ;基本数据基本数据类型类型 数组名数组名;例如:例如:char s;int p;char s;int p;其中,方括号其中,方括号 是数组的标志,不可或缺。是数组的标志,不可或缺。49与与C的不同之处的不同之处 Java 在声明数组时,并不为数组元素分配内存空间。在声明数组时,并不为数组元素分配内存空间。因此在声明数组时,因此在声明数组时,中可以不用指出数组的大小。中可以不用指出数组
26、的大小。Java 是是在创建数组时来指明数组的长度,在创建数组时来指明数组的长度,并为数组并为数组元素分配内存空间元素分配内存空间。Java 对数组元素进行越界检查,可以很好的保证数对数组元素进行越界检查,可以很好的保证数组操作的安全性。组操作的安全性。50二、数组的创建与初始化二、数组的创建与初始化声明数组仅仅指定声明数组仅仅指定数组的名字数组的名字和和数组元素的类型数组元素的类型,要想,要想真正使用数组还需要为它开辟内存空间,即真正使用数组还需要为它开辟内存空间,即创建数组创建数组。l 在创建数组时必须指明数组的长度在创建数组时必须指明数组的长度,以精确地确定该数,以精确地确定该数组所占据
27、的内存空间的大小。组所占据的内存空间的大小。l 创建数组的语法格式为:创建数组的语法格式为:数组名数组名 new 基本数据基本数据类型类型 数组元素个数数组元素个数;char s;51二、数组的创建与初始化二、数组的创建与初始化例如:例如:s new char10;l 创建数组也可以与声明数组结合在一起,用一条语句来创建数组也可以与声明数组结合在一起,用一条语句来完成,例如:完成,例如:char s=new char10;l 也可以通过给数组赋初始值的方式来创建数组,例如:也可以通过给数组赋初始值的方式来创建数组,例如:char m=a,b,c,d,e,f,g,h,i 数组名数组名 new 基
28、本数据基本数据类型类型 数组元素个数数组元素个数;char s;52一维数组元素的引用n 数组元素的引用方式为:数组元素的引用方式为:数组名 indexindex为数组下标,它可以为整型常数或表达式整型常数或表达式,下标从下标从0 开始计算开始计算。n 例如:n s5 表示数组表示数组s中的第中的第6个元素个元素char s=new char10;53数组元素的个数与赋值数组元素的个数与赋值float tax=new float 5;l 数组被创建后,该数组的大小值会被放在所分配内存区的第一个地址,并以length作此地址的参考。所以我们可用 tax.length 来获得此数组的大小值。l 数
29、组被赋值的方法如下:tax06786.5;tax18763.79;tax l engt h(=5)t ax0 t ax1 t ax2 t ax3 t ax4 54三、多维数组三、多维数组声明方法声明方法 int a ;或或 int a;构建方法构建方法 a=new int24;/直接为每一维分配内存,生成直接为每一维分配内存,生成规则数组规则数组 a=new int2;/只有最后维可以不给值,其它维都要给只有最后维可以不给值,其它维都要给 a0=new int4;a1=new int2;/可以生成可以生成不规则数组不规则数组 数组成员变量数组成员变量 length-数组元素的个数数组元素的个数
30、:a=new int 1012;a.length=10;a0.length=12;a1.length=?55多维数组元素的引用多维数组元素的引用对于多维数组中的每个元素,其引用方式为:数组名 index1 index2例如:int num new int24;num10;56多维数组示例多维数组示例public class Array public static void main(String args)int a=new int 4 ;for(int i=0;i a.length;i+)a i =new int 4;/create sub-array for(int j=0;j a i.l
31、ength;j+)a i j =i+j;for(int i=0;i a.length;i+)for(int j=0;j a i.length;j+)System.out.print(a i j +);System.out.println();57课堂小结介绍了介绍了 Java 语言的基本语法:标识符的定义规语言的基本语法:标识符的定义规则、保留字以及分隔符;则、保留字以及分隔符;常量和变量的声明与使用;常量和变量的声明与使用;四大种(八小种)基本数据类型以及它们之间四大种(八小种)基本数据类型以及它们之间的转换;的转换;运算符与表达式的使用;运算符与表达式的使用;数组的创建与声明。数组的创建与声明。58谢谢 谢!谢!