




已阅读5页,还剩86页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 JAVA语言程序设计基础,黄淮学院 计算机科学系 王春华,目录,2.1 Java语言程序结构 2.2 Java语言数据类型 2.3 Java语言运算符与表达式 2.4 Java语言流控制语句,为什么要讲各部分知识?,2.1 java语言程序结构,1. 程序结构概述 2. java语言注释 3. java语言标识符 4. java语言标识符声明及作用域 5. java语言中的关键词,2.1 java语言程序结构,一个Java程序的基本框架结构: Java程序由一个或多个独立的类组成,但其中必须有一个公有类(如:HelloWorld),而且源代码文件必须与这个公有类的名字相同(如:HelloWorld.java)。 Java的类可以由一个或多个方法组成,其中公有类中的main方法可用作程序运行的入口。,/ The First Java Program public class HelloWorld public static void main(String s) System.out.println(“Hello World!“); ,程序头的注释共3种,HelloWorld类,main方法,修饰符,方法头,方法体,方法名,参数,返回类型,程序的主要结构,Java程序的编辑、编译和运行过程,编辑程序代码,HelloWorld.java,javac生成出错信息,Yes,编译程序代码 javac HelloWorld.java,HelloWorld.class,解释执行字节码 java HelloWorld,有编译错误吗?,No,Java程序编译通过,会自动生成一个包含了这个源程序字节码的同名.class文件。该文件可以通过Java虚拟机运行。,/ The First Java Program public class HelloWorld public static void main(String s) System.out.println(“Hello World!“); ,标识符,什么是标识符? 标识符命名规则 Java关键字是为编译器保留的、具有特定含义的标识符,不能把它用做变量、类或方法的名称。(P32),用于表示变量、常量、方法、类或接口的名称。 标识符是大小写敏感的; 没有长度限制。,只能以字母、下划线(_)或美元符($)开头,由字母、数字、下划线(_)或美元符($)组成的字符串。,标识符判断,合法标识符 Identifier userName User_name _sys_var1 change 非法标识符 2Sun / 以数字2开头 Class / 是Java的关键字,有特殊含义 #myname / 含有其他符号# Hello World /含空格,语句、分号和块,Java中的语句是最小的执行单位。 Java各语句间以分号“;”分隔。 花括号“”和“”包含的一系列语句称为语句块,简称为块。 标识符作用域:所在语句块范围,Java编码规范,可读性 增加必要的注释和空格 采用缩进格式,使程序中使用的算法框架简单清楚 标识符惯例 定义的各种标识符也要遵从惯例,注意大小写,Java中的命名约定,类名和接口应为名词,含有大小写,每个字的首字母大写。 如:HelloWorld,Customer,MergeSort等。 方法名应是动词,含有大小写,首字母小写,其余各字的首字母大写。尽量不要在方法名中使用下划线。 如:getName,setAddress,search。 简单类型常量的名字应该全部为大写字母,字与字之间用下划线分隔,对象常量可使用混合大小写。 如:BLUE_COLOR。 所有的实例、类和全局变量都使用混合大小写,首字符为小写。用大写字符作字间的分隔符。变量名中不要使用下划线。还要避免使用美元符号($)。 如:balance,orders。,2. java语言注释,Java语言的注释同C/C+语言的注释一样。在Java语言中有三种类型的注释语句。注释语句语法格式: (1) /注释内容 (2) /*注释内容*/ (3) /*注释内容*/ (演示),目录,2.1 Java语言程序结构 2.2 Java语言数据类型 2.3 Java语言运算符与表达式 2.4 Java语言流控制语句,2.2 Java语言数据类型,1. 数据基本类型 2. 变量与常量 3. String 4. 数组 5. NULL,Java的基本数据类型,基本数据类型 Java的数据类型共分为两大类,一类是基本类型,一类是复合数据类型。 基本类型共有8种,分为4小类,分别是逻辑型、字符型、整型和浮点型。复合数据类型包括数组、类和接口等。,数据类型,基本数据类型,复合数据类型 (对象类型),类类型,布尔类型:boolean,数组,接口类型:interface,字符类型:char,数值类型,浮点数类型:float,double,整数类型:byte,short,int,long,2.2 Java语言数据类型,抽象,基本数据类型与对象类型关系,逻辑值用boolean(布尔)类型表示,有两个常量值:true和false,它们全是小写。 Java是一种严格的类型语言,它不允许数值类型和布尔类型之间进行转换。(have a try),逻辑类型boolean,字符类型,单个字符用char类型表示。一个char表示一个Unicode字符,其值用16位无符号整数表示,范围为065535。char类型的常量值必须用一对单引号( )括起来。 例:字符示例 a/ 表示字符a 转义符 t/ 表示tab键 u?/ 表示一个具体的Unicode字符,?是4位十六进制数字 参见P34 演示转义符输出 问题: 1个汉字能否用char类型表示?为什么 字符与字符间用+运算符时,表示什么? 编程测试16进制数41,51对应的字符,并相隔一个tab位输出。,整型,Java语言中提供4种整型量:byte ,short,int和long。 分别是8 16 32 64位长,表示范围分别是多少? 整型常量可用十进制、八进制或十六进制形式表示 以19开头的数为十进制数 以0开头的数为八进制数 以0x开头的数为十六进制数,例:分析程序运行结果。 public class DataTest public static void main(String args) int x=010; System.out.println(“x=“+x); int y=0x10; System.out.println(“y=“+y); ,示例,整数示例 2表示十进制数2。 077表示八进制数77,等于十进制数63。 0xBABE表示十六进制数BABE,等于十进制数47806。 长整型常量示例 2L 077L 0xBABEL 2 与 2L区别?,4种Java整型量的大小和可表示的范围,byte x=129; 出错!,特殊常量值,浮点型,浮点型量有两种: 单精度浮点数,float 双精度浮点数,double 例: 浮点数示例 5.31 .3 -39.27 5f 0.001327e+6 浮点数后加d/D f/F 的含义,若没有加任何字母,默认是double类型。 两种表示方法:十进制数形式和科学计数法形式 浮点运算很少是精确的,因此比较两个浮点数大小时不能用,Java浮点数,特殊的浮点数常量,基本数据类型 缺省值,类型转换,整型、实型、字符型数据可以混合运算。 自动类型转换:位数少的类型转换为位数多的类型 分析下列程序,找出错误的原因,转换规则表,强制类型转换,强制类型转换:位数多的类型向位数少的类型进行转换 如:int i = 3; byte b = (byte) i; 将int型变量i赋给byte型变量b之前,先将i强制转为byte型。,实例,实例,请问 char x = 2 与 x =u0002”的区别是什么,实例,变量、说明和赋值,/变量使用之前,要先说明 public class Assign public static void main(String args) int x,y; / 说明整型变量 / 说明浮点型变量并赋值 float z = 3.1414f; / 说明双精度型变量并赋值 double w = 3.1415;,/ 说明布尔类型变量并赋值 boolean truth = true; / 说明布尔类型变量 boolean false1; char c; / 说明字符类型变量 c = A;/ 给字符类型变量赋值 x = 6; y = 1000;/ 给整型变量赋值 / 给布尔类型变量赋值 false1 = 6 7; ,2.2 Java语言数据类型,1. 数据基本类型 2. 变量与常量 3. String 4. 数组 5. NULL,2. 常量,Java中的常量在程序中为一个标识符,用来记忆一个固定的数值。在程序执行过程中常量是不可更改的数据,常量用final声明,常量与变量的区别是前者不占用内存。Java约定常量名称用大写字母。 声明常量的格式: final 类型 常量名,常量名=值; 各种类型常量的取值范围,基本数据类型 取值范围,2.2 Java语言数据类型,1. 数据基本类型 2. 变量与常量 3. String 4. 数组 5. NULL,字符串,字符串是指一组字符。在Java中字符串完全被当成对象,字符串类型是标准Java类库中预定义的String类。字符串作为对象数据类型还封装了许多相关的操作,便于我们对字符串进行处理。 字条串常 量用双引号括起来。 常用方法 参见JDK 字符串后加+运算符是作用:当+用于字符串与其它类型变量之间时,产生效果是字符串的拼接。而字符间用+去处符时,效果赞同于数字与之间的算术运算。 演示 equals 与 区别: (备注),int length() 返回字符串的长度。 String substring(int beginIndex, int endIndex) 返回原字符串中从beginIndex位置开始到endIndex位置(不包括该位置)之间的所有字符组成的新字符串。 int indexOf(int ch) 返回从索引0开始的与ch字符相匹配的首个字符的位置(索引值)。未检索到匹配字符的则返回-1。 int indexOf(String str) 返回从索引0开始的与str字符串相匹配的首个子串的开始位置(索引值)。未检索到匹配的字符串则返回-1。 boolean equals(Object anObject) 比较字符串是否相等,相当时返回true,否则返回false。 比较字符串是否相等应该使用equals方法 。,请问如果实现字符串中有/、“等字符,如何现实字符串换行等,字符串(2),字符串是常量;它们的值在创建之后不能更改。字符串创建方式: 其一,使用new关键字创建字符串,比如String s1 = new String(“abc“); 其二,直接指定。比如String s2 = “abc“; 其三,使用串联生成新的字符串。比如String s3 = “ab“ + “c“; 字符串分配空间的原理(补充),1.String str1 = new String(“abc“); 2.Stirng str2 = “abc“; 虽然两个语句都是返回一个String对象的引用,但是jvm对两者的处理方式是不一样的。对于第一种,jvm会马上在heap中创建一个String对象,然后将该对象的引用返回给用户。对于第二种,jvm首先会在内部维护的strings pool中通过String的 equels 方法查找是对象池中是否存放有该String对象,如果有,则返回已有的String对象给用户,而不会在heap中重新创建一个新的String对象;如果对象池中没有该String对象,jvm则在heap中创建新的String对象,将其引用返回给用户,同时将该引用添加至strings pool中。注意:使用第一种方法创建对象时,jvm是不会主动把该对象放到strings pool里面的,除非程序调用 String的intern方法。,2.2 Java语言数据类型,1. 数据基本类型 2. 变量与常量 3. String(和数组一起单独再讲) 4. 数组 5. NULL,5. NULL值,一. null是代表不确定的对象 Java中,null是一个关键字,指出变量不引用任何对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。 比如:int a = null;是错误的。Ojbect o = null是正确的。String Java中,变量的使用都遵循一个原则:先定义,并且初始化后,才可以使用。这条对对于引用类型变量也是适用的。 如:不能int a;后,不给a指定值,就去打印a的值。 有时候,我们定义一个引用类型变量,在刚开始的时候,无法给出一个确定的值,但是不指定值,程序可能会在try语句块中初始化值。这时候,我们下面使用变量的时候就会报错。解决办法:可以先给变量指定一个null值,问题就解决了。,Connection conn = null; try conn = DriverManager.getConnection(“url“, “user“, “password“); catch (SQLException e) e.printStackTrace(); String catalog = conn.getCatalog();,二、null本身不是对象,也不是Objcet的实例 null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是java.lang.Object的实例。 三、Java默认给变量赋值 在定义变量的时候,如果定义后没有给变量赋值,则Java在运行时会自动给变量赋值。赋值原则是整数类型int、byte、short、long的自动赋值为0,带小数点的float、double自动赋值为0.0,boolean的自动赋值为false,其他各供引用类型变量自动赋值为null。 四、null的其他作用 1、判断一个引用类型数据是否null。 用=来判断。 2、释放内存,让一个非null的引用类型变量指向null。这样这个对象就不再被任何对象应用了。等待JVM垃圾回收机制去回收。,Null 练习,String str1 = null; String str2 = “”;两者区别 Null为引用类型,代表空地址,若使用值为null的引用,会抛出java.lang.NullPointerException异常 “”是字符串类型,代表变量是有值的,只不过为空,长度为0。,2.2 Java语言数据类型 练习,课后题1-3 P48,目录,2.1 Java语言程序结构 2.2 Java语言数据类型 2.3 Java语言运算符与表达式 2.4 Java语言流控制语句,2.3 Java语言运算符与表达式,Java的大多数运算符在形式上和功能上都与C和C+的运算符非常类似。,运算符,逻辑,关系,算术,位运算,赋值,条件,对象,其它,+,-,*,/,+,-,,=,=,=,!=,!,&,|,,&,|,,=及其扩展赋值+=,-=,*=,/=,?:,instanceof,包括分量.,下标,内存分配new,强制类型转换(),方法调用(),2.3 Java语言运算符与表达式,运算符注意事项 赋值运算符注意事项 关系运算符注意事项 逻辑运算符注意事项 运算符优先级 条件运算符,运算符注意事项,1. 算术运算符 说明: (1) Java对“+”运算进行了扩展,字符串连接、数字与字符串连接。 如: String s; s = “s=“ + 4*5; (2) Java中的“%”取模运算,可对浮点数进行。符号同第一个操作数。 如52.3%102.3,运算符注意事项,2. 自增自减运算符 说明: (1) +与-运算符只能用于变量。错例:5+,+(a+b) (2) +与-运算时结合方向自右向左。-i+相当于-(i+) , 2 i+ (3) 两个+号(或-号)之间不能有空格。 (4) 应避免使用复杂的表达式。 事例分析,3. 算术表达式 用算术运算符与括号将运算对象连接起来的、符合Java规则的式子。 4. 运算级别 先*、/、%后+、-,“左结合”原则。如:n * -2, -n / -2,2.3 Java语言运算符与表达式,运算符注意事项 赋值运算符注意事项 关系运算符注意事项 逻辑运算符注意事项 运算符优先级 条件运算符,赋值运算符注意事项,赋值运算符注意事项,赋值运算符注意事项,出错:需要强制类型转换,2.3 Java语言运算符与表达式,运算符注意事项 赋值运算符注意事项 关系运算符注意事项 逻辑运算符注意事项 运算符优先级 条件运算符,关系运算符注意事项,关系运算符注意事项,说明: (1) Java中,任何类型的数据(包括简单类型和复合类型),都可以通过“=“或“!=“来比较是否相等; (2) 浮点数的比较小心慎用; (3) 不同类型的数值量以及字符之间可以进行各种大小比较;,关系运算符注意事项,(4) 关系运算的结果是true和false(而不是1或0、T或F!); (5) 关系运算符优先级低于算术运算符,高于赋值运算符。,2.3 Java语言运算符与表达式,运算符注意事项 赋值运算符注意事项 关系运算符注意事项 逻辑运算符注意事项 运算符优先级 条件运算符,逻辑运算符注意事项,运算符优先级,条件运算符,运算符练习,P48 4,目录,2.1 Java语言程序结构 2.2 Java语言数据类型 2.3 Java语言运算符与表达式 2.4 Java语言流控制语句,2.4 Java语言流控制语句,分支语句,分支语句,分支语句,分支语句switch,switch是用基于整型数据的多分支判断,分支语句switch,流程及说明: (1) switch后的表达式,必须是byte, char, short 或者 int型的 整型。 (2) 表达式的值与case后的值1、值2进行比较,匹配的情况下流程转向。 (3) break是可选的,可用来中断switch语句。 例:输入一百分制成绩,输出对应的等级。90100分的等级为A,8089分的等级为B,7079分的等级为C, 6069分的等级为D,60分以下的等级为E。,分支语句 作业,2.4 Java语言流控制语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 柔性制造系统集成策略-洞察及研究
- 环境友好型建筑材料-洞察及研究
- 喉肌炎药物疗效评估-洞察及研究
- TreeNodulesinTypeDiabetes-第1篇-洞察及研究
- 多重净化模块协同工作策略-洞察及研究
- 2026届西藏达孜县九年级化学第一学期期末学业水平测试模拟试题含解析
- 2026届山东南山集团东海外国语学校英语九上期末质量跟踪监视模拟试题含解析
- 2026届山东省莱芜市莱城区腰关中学化学九上期中学业水平测试试题含解析
- 2026届南京栖霞中学九年级化学第一学期期末监测试题含解析
- 江苏省靖江市实验学校2026届化学九年级第一学期期中学业质量监测模拟试题含解析
- 【高考地理】流水侵蚀地貌(公开课课件)
- 第六章泌尿生殖系统的检查教程
- 图说保额分红
- 生物地理学第2章生物群落课件
- 重离子、质子治疗前景与适应症-武汉
- 组织行为学(-)(英文版)课件
- 商务谈判(完整版)课件
- 小学数学教师新课标考试试题
- 小学数学北师大四年级上册五方向与位置四上《用数对确定位置》北师大版李雪梅PPT
- 步进电机控制系统课件
- 2022年混凝土预制U型槽单元工程质量评定表
评论
0/150
提交评论