Java02(JAVA语言基础).ppt_第1页
Java02(JAVA语言基础).ppt_第2页
Java02(JAVA语言基础).ppt_第3页
Java02(JAVA语言基础).ppt_第4页
Java02(JAVA语言基础).ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言基础 本章内容 oJava程序的构成 oJava的关键字、标识符、各种数据类型 oJava的常量与变量 oJava的各种运算符 o结构化程序设计的三种基本流程 o数组的使用 o字符串的使用 Java语言基本语法风格 o一切都是类 o严格区分大小写 o以分号结束语句 o 表示代码块 注释 三种注释格式: o/ 实现单行注释 o/* 这是 * 一段注释, * 它跨越了多个行 */ o/* JDK的javadoc工具用这种注释信息能自动从程序中抽出类 的公共接口形成文档。 */ java中的标识符 o在Java编程语言中,标识符是赋予变量、类或方法的名称 。变量、函数、类和对象的名称都是标识符,程序员需要 标识和使用的东西都需要标识符。标识符可从一个字母、 下划线_或美元符号$开始,随后也可跟数字、字母、下划 线或美元符号。标识符是区分大小写,没有长度限制,可 以为标识符取任意长度的名字。 非法的标识符: 3dmax class 98.3 Hello World o合法的标识符: nindentifier nusername nuser_name n_userName n$username Java中的关键字 abstractdoimplementprivatethis booleandoubleimportprotectedthrow breakelseinstanceof publicthrows byteextendintreturntransient casefalseinterfaceshorttrue catchfinallongstatictry charfianllynativestrictfpvoid classfloatnewsupervolatile continuefornullswitchwhile defaultif package synchronized 数据类型 oJava语言的数据类型有简单类型和复合类型。 o数据类型指明变量或表达式的状态和行为,数据 类型决定了数的取值范围和运算符号。在Java语 言数据类型可以分为两大类:基本类型和引用类 型。 o基本类型是指不能再分解的数据类型,其数据在 函数的调用中是以传值方式工作的;引用类型有 时也称复合类型,它是可以分解为基本类型的数 据类型,其数据在函数调用中是以传址方式来工 作的。 数据类型 数据类型 基本数据类型 引用数据类型 数值型 字符型(char) 布尔型( boolean) 整数类型(byte, short, int, long) 浮点类型(float, double) 类(class) 接口(interface) 数组 八个基本数据类型 数据的表示 o整型 十进制(12) ,十六进制 (0x12),八进制(012) o长整型 13L o单精度浮点数 5.1f,.4f ,2e3f ,0f o双精度浮点数 5.1,.4,2e-3,0d o布尔 true和false 数据的表示 o字符类型 char o使用char类型可表示单个字符,字符是用单引号括起来的一个 字符, a , 8 等 oJava中的字符型数据是16位无符号型数据,它表示Unicode集 ,而不仅仅是ASCII集。其范围为065535 o与C语言类似,Java也提供转义字符,以反斜杠()开头,将 其后的字符转变为另外的含义。 r表示回车,相当于按下了回车键; n是换行; t是制表符,相当于table键; b是退格键,相当于BackSpace; 是单引号,而“是双引号; 是一个斜杠“”。 数据的表示 o字符串 “Hello World“,”123”, “Welcome nXXX“ onull null常量只有一个值,用null表示,表示对象的引 用为空 常量与变量 o在Java中,不同类型的数据既可以以常量的形式 出现,也可以以变量的形式出现。 o常量就是指在程序执行期间其值不能发生变化的 数据,常量是固定的。如整型常量123,实型常量 3.1415926,字符常量A,布尔常量true等。 o常量:用保留字final来实现 final typeSpecifier varName =value; 如:final double PI=3.1415926; o常量名习惯为大写 变量 o变量的值是可以变化的,它的定义包括变量名、 变量类型和作用域几个部分。 o注意以下几点: o1、变量名必须是一个合法的标识符。变量名应具 有一定的含义,以增加程序的可读性。 o2、变量类型可以为前面所说的任意一种数据类型 。 o3、声明一个变量的同时也就指明了变量的作用域 。 变量 o变量可以有下面几种:局部变量、类变量、方法 参数、例外处理参数 o局部变量是在一个方法内定义的变量, 也被称作 临时(temporary)变量。 o当执行进入一个方法时,局部变量被创建,当执 行离开该方法时,局部变量被清除,它的作用域 为它所在的代码块(整个方法或方法中的某块代 码)。 o在一个确定的域中,变量名应该是唯一的。通常 ,一个域用大括号“”和“”来划定。 变量的声明 o下面是几个变量的声明: o int a,b,c; /定义a,b,c为int型变量 o double d,e; /定义d,e为double型变 量 o float f=2.5f,g=5.8f; /定义f,g为float 型变量,并赋初值 o其中,多个变量间用逗号隔开。在Java程 序中在变量使用之前必须有初始值。 变量使用举例 public class TestScope public static void main(String args) int x = 12; int z; int q = 96; / x和q都可用 int x = 3;/错误的定义,Java中不允许有这种嵌套定义 System.out.println(“x is “+x); System.out.println(“q is “+q); System.out.println(“z is ”+z); /错误,z没有被初始化 q = x; /* 错误的行,只有x可用, q 超出了作用域范围 */ System.out.println(“x is “+x); 类型转换 oJava程序里,将一种数据类型的常数或变量转换到另外的一种 数据类型,称为类型转换。类型转换有两种:自动类型转换( 或称隐含类型转换)和强制类型转换。 o在实际中常会将一种类型的值赋给另外一种变量类型。如果这 两种类型是兼容的,Java将执行自动类型转换。 o下面的语句把int型数据赋值给long型数据,在编译时不会发 生任何错误: int i=10; long j=i; 类型转换 o低-高 byte,short,char- int - long - float - double o假若对主数据类型执行任何算术运算或按 位运算,“比int小”的数据(char、byte 、short)在正式执行运算之前,那些值会 自动转换成int,这样一来,最终生成的值 就是int类型。 类型转换 o整型、实型、字符型数据可以混合运算。运算中,不同类 型的数据先转化为同一类型,然后进行运算,转换从低级 到高级。通常,表达式中最大的数据类型是决定了表达式 最终结果大小的那个类型。例如:若将一个float值与一个 double值相乘,结果就是double;如将一个int值和一个 long值相加,则结果为long。 类型转换 o不是所有的数据类型都允许隐含自动转换。 long i=10; int j=i; o这是因为当把占用位数较长的数据转化成占用位 数较短的数据时,会出生信息丢失的情况,因而 不能够自动转换。这时就需要利用强制类型转换 ,执行非兼容类型之间的类型转换。上面的语句 写成下面的形式就不会发生错误: long i=10; int j=(int)i; 强制类型转换 o(数据类型)变量名 o将占用位数较长的数据转化成占用位数较短的数 据时,可能会造成数据超出较短数据类型的取值 范围,造成“溢出”。如:long i=10000000000L; int j=(int)i; o因为转换的结果已经超出了int型数据所能表示的 最大整数(4294967295),造成溢出,产生了错 误 java中的运算符 运算符是一种特殊符号,用以表示数据的 运算、赋值和比较,一般由一至三个字符 组成 。运算符共分以下几种: n算术运算符 n赋值运算符 n比较运算符 n逻辑运算符 n移位运算符 算术运算符 算术运算符的注意问题 o“+”除字符串相加功能外,还能把非字符串转换成 字符串 ,如: “x”+123的结果是“x123” 。 o如果对负数取模,可以把模数负号忽略不记,如 :5%-2=1。但被模数是负数就另当别论了。 o对于除号“/”,它的整数除和小数除是有区别的: 整数之间做除法时,只保留整数部分而舍弃小数 部分。 int x=3510;x=x/1000*1000;实际运 行结果是3000 ,想想为什么? 算术运算符的应用技巧 o思考题1:某个培训中心要为新到的学员安排房间,假设共有 x个学员,每个房间可以住6人,让你用一个公式来计算他们 要住的房间数? 答案:(x+5)/6。这种算法还可用在查看留言板的分页显 示上: 其中x是总共的留言数,6是每页显示的留言数,结果 就是总共有多少页。 o思考题2:假设你要让x的值在0至9之间循环变化,请写出相 应的程序代码。 答案: int x=0; while(true) x = (x+1)%10; 赋值运算符 o注1:在JAVA里可以把赋值语句连在一起,如: x = y = z = 5 ; 在这个语句中,所有三个变量都得到同样的值5。 o注2 :x += 3等效于x = x + 3,等于*= ,-=,/=依此类推。 比较运算符 o注1:比较运算符的结果都是boolean型,也就是 要么是true,要么是false。 o注2:比较运算符“=”不能误写成“=” ,切记! 切记! 逻辑运算符 注1:逻辑运算符用于对boolean型结果的表达 式进行运算,运算的结果都是boolean型 。 “ int y=3; if(x!=0 “ int y=0x80000000; x=x1; y=y1; System.out.println(“0x800000001 = ” + Integer.toHexString(x); System.out.println(“0x800000001 = ” + Integer.toHexString(y); 运行结果如下: 0x800000001 = c0000000 0x800000001 = 40000000 十六进制与二进的对比 0x8000000016 =1000,0000, 0000, 0000, 0000, 0000, 0000, 00002 0xc000000016 =1100,0000, 0000, 0000, 0000, 0000, 0000, 00002 0x4000000016 =0100,0000, 0000, 0000, 0000, 0000, 0000, 00002 移位运算的注意事项及小技巧 o移位运算符适用类型有byte、short、char、int、long o对低于int型的操作数将先自动转换为int型再移位。 o对于int型整数移位ab,系统先将b对32取模,得到的结果才是 真正移位的位数。例如:a33和a1结果是一样的,a32 的结果还是a原来的数字。 o对于long型整数移位时ab ,则是先将移位位数b对64取模。 o移位不会改变变量本身的值。如a1;在一行语句中单独存在,毫 无意义 。 ox1的结果和x/2的结果是一样的,x= 10) break; System.out.println(“x=“+x); x+; break语句 break语句可以中止循环中的子语句和switch语句。一个无标号 的break语句会把控制传给当前(最内)循环(while,dofor 或Switch)的下一条语句。如果有标号,控制会被传递给当前 方法中的带有这一标号的语句。如: st:while(true) while(true) break st; continue语句 continue语句只能出现在循环语句(while,do,for) 的子语句块中,无标号的continue语句的作用是 跳过当前循环的剩余语句块,接着执行下一次循环 。 用continue语句的打印出 0到10之间的所有奇 数的程序例子。 for(int i=0;i10;i+) if(i%2=0) continue; System.out.println(i); 数 组 o相同类型的成组数据对象 o原始类型或类类型数组声明 o为一个引用创建空间 o数组是一个对象 数 组 o典型的数组是用来集合相同类型的对象并 通过一个名称来引用这个集合。 o你可以声明任何类型的数组原始类型或 类类型: ochar s; char s; oPoint p; / where point is a class 数 组 o在Java编程语言中,即使数组是由原始类型 构成,数组也是一个对象。声明不能创建对 象本身,而创建的是一个引用,该引用可被 用来引用数组。数组元素使用的实际存储器 可由new语句或数组初始化软件动态分配。 创建数组 o使用关键字new 创建一个数组对象 o s = new char 20; o p = new Point 100; o p0 = new Point(); o用来指示单个数组元素的下标必须总是从0开始, 并保持在合法范围之内大于0或等于0并小于 数组长度。任何访问在上述界限之外的数组元素 的企图都会引起运行时出错。下面还要谈到一些 更好的数组初始化方法。 初始化数组 o String names ; names = new String 3; names 0 = “Georgianna”; names 1 = “Jen”; names 2 = “Simon”; o用初始化值创建一个数组 String names = “Georgianna”, “Jen”, “Simon” ; o当创建一个数组时,每个元素都被初始化。 数组界限 o所有数组的下标都从0开始 int list = new int 10; for (int i= 0; i list.length; i+) System.out.println(listi); o在Java编程语言中,所有数组的下标都从0 开始。 一个数组中元素的数量被作为length 属性而存储; 这个值被用来检查所有运行时 访问的界限。如果发生了一个越出界限的访 问,那么运行时的报错也就出现了。 多维数组 o如何理解多维数组,类 似我们的棋盘。 ojava 中并没有真正的多 维数组,只有数组的数 组, Java中多维数组不 一定是规则矩阵形式。 o定义一个多维数组 oint xx; oxx=new int3; oxx0=new int3; oxx1=new int2; 多维数组 o多维数组中元素的引用方式,如:x12。 o规则矩阵数组可以在一条语句中产生,如: int xx=new int23; o多维数组的静态初始化 ,如: o int xx=3,2,7,1,5,6; 字符串的概念 o字符串是内存中连续排列的一个或多个字符,不是 字符数组。 o字符串在Java语言中提供了String和 StringBuffer和StringBuilder(jdk1.5)三个类来 实现。 oString类用于处理那些值不会发生改变的字符串 oStringBuffer与StringBuilder类用于那些可能发 生变化的字符串处理 对象的创建 1、创建String对象: String str=“ABC”; String str=new String( ); str=“ABC”; char helloArray=h,e,l,l,o ; String helloString=new String(helloArray); 2、创建StringBuffer对象: StringBuffer( ) StringBuffer(int length) StringBuffer(String str) String的常用方法(一) public int length( ) public char charAt( int index ) public void getChars( int srcBegin,int srcEnd, char dst,int dstBegin) public boolean equals(Object other) public int compareTo(String anotherString) public boolean startsWith(String prefix) public boolean endsWith(String suffix) public indexOf(String str) public indexOf(String str,int start) public last

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论