




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章,Java基础语法,2,本章目标,1 注释、分隔符、标识符和关键字 2 数据类型 3 方法、变量 4 值传递和关键字this 5 标准输入输出 6 编码惯例,3,注释,注释(Comment)是对源程序起解释说明作用的文本信息,适当使用注释能够增强代码的可读性。 Java语言中定义了三种注释形式: / 单行注释-注释到行尾 /* 单行或多行注释*/ /* 可用于文档化处理的单行或多行注释*/ JDK中提供了一个文档自动生成工具javadoc,在自定义类中public的成员前以/*/形式加入的注释内容均可被自动提取到生成的说明文档中。,4,分隔符,Java分隔符组成: 分号-“;“ 逗号-“,“ 空格-“ “ 圆点-“.“ 花括号-“及“ Java分隔符作用: Java语句必须以分号作为结束标记,for循环语句中使 用分号来分隔不同的成份。 逗号可以在方法声明或调用时的参数列表中用于分隔 多个参数,也可在一条声明语句中同时声明多个属性 或局部变量时起分隔作用。 Java程序源代码中各组成部分之间可以插入任意数量 的空格,包括换行。 圆点用于访问对象成员(属性或方法)时标明调用或隶属 关系,其格式为“对象名.对象成员“。 花括号用于构造语句块,5,语句块,Java允许用花括号“将一组语句括起来, 形成一个语句块(block) 用法: 定义类时类体必须采用语句块形式。 定义方法时方法体必须采用语句块的形式。 定义循环语句时,循环体可以采用语句块的形 式,采用将0多条语句集合到一起,作为一个 整体进行处理。 语句块可以嵌套,嵌套层数无限制。,6,标识符,Java语言中,为各种变量、方法和类等起 的名字称为标识符(identifier)。 Java标识符的命名规则: 应以字母、下划线(_)、美元符($)开头 后跟字母、下划线、美元符或数字 Java标识符大小写敏感,长度无限制 举例:,7,关键字,Java语言中一些被赋以特定的含义、并用 做专门用途的单词称为关键字(keyword)。 所有Java 关键字都是小写的, TURE、 FALSE、NULL等都不是Java关键字。 goto和const 虽然从未使用,但也作被为 Java关键字保留。 true,false虽被用做专门用途,但不是Java 关键字。,8,Java关键字表,9,练习,1. 练习在一个已有.java源代码文件中使用三种不同类型的注释,并用javadoc命令创建自己的类文档,体会其用法。 2. 练习在已有应用程序的一个语句中插入多处空格、中间换行、将多个语句组成一个语句块儿(置于“”中),并编译运行程序,体会其自由程度。 3. 测试并体会Java标识符、关键字的使用规则:在程序中试将不合法的标识符(如:3ar, *bily,d9#8等)、或关键字作为变量名、方法名或类名,编译然后改正错误。,10,数据类型,数据类型就是一组性质相同的值的集合以 及定义于这个值集合上的一组操作的总称。 常用数据类型: 整型、浮点型、字符型、字符串型、布尔型 按照对数据类型的使用约束程度来划分, 高级编程语言可分为: 强类型语言(Strong Typed Languages) 弱类型语言(Weakly Typed Languages),11,Java数据类型,12,基本数据类型,基本类型(Primitive Type)的数据只能保存单一的值,因此也被称为原始类型、或简单类型。 Java中定义了四类/八种基本数据类型 逻辑型- boolean 文本型- char 整数型- byte, short, int, long 浮点型- float, double,13,整型,整型数据用于保存整数信息,Java提供了四种不同的整数类型,各有固定的表数范围和字段长度,而不受具体操作系统的影 响,以保证Java程序的可移植性,14,整型常量表示,Java语言整型常量的三种表示形式: 十进制整数,如12,-314, 0 八进制整数,要求以0开头,如012 十六进制数,要求0x或0X开头,如0x12 Java语言的整型常量默认为int型,声明long型常量可以后加“l“或“L“。 举例:,int a = 39; int b = 0x4b; int c = 021; int d = a + 0x12 + 012; /等价于d=39 + 18 + 10; long m = 3L; long n = m + 40;,15,浮点型,Java浮点型包括float和double两种,分别用于保存单精度和双精度的浮点数。 浮点型有固定的表数范围和字段长度:,16,浮点型常量表示,Java浮点类型常量有两种表示形式 十进制必须含有小数点,也可采用科学计数法表 示,例如3.65 0.12 .12 4.236e2 1.24e2 4.5E-3 十六进制从JDK5.0开始引入,十六进制浮点数只 能采用科学记数法表示,其格式为: 例如0x1.2p3,转换为十进制的计算方法为: 0x1.2p3 = (1*160 + 2*16-1) * 23 = 9.0 Java浮点型常量默认为double型,如要声明float型 常量为,则需在数字后面加f或F,如: double d = 3.14; float f = 3.14f;,17,字符型,基本概念:字节、字符、字符集、字符编码。 char型数据用来表示通常意义上“字符”,Java 语言采用16位Unicode编码保存。 字符常量的三种表示方法: 使用单引号括起来的单个字符,例如: char c = A; 十六进制编码形式表示,例如: char c1 = u0061; 使用转义字符来将其后的字符转变为其它的含义,例如: char c2 = n; /代表换行符,18,布尔型,boolean类型数据用来表示只有两种状态的 逻辑值,分别代表现实生活中的特定条件 成立与否,通常用于逻辑运算和程序流程 控制。 boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false。 用法举例:,boolean b = true; if(b = false) System.out.println(“haha“); else System.out.println(“hehe“); ,19,练习,1. 编写Java应用程序,测试并体会各种原始类型数据的定义,赋值和输出。 输出可采用下述形式的语句: System.out.println(“x=“ + x); /其中x是变量名,如a,b,c等。 2. 使用char型的三种常量声明方式为char型变量赋值并输出。,20,引用数据类型,Java语言中除8种基本数据类型以外,其它的数据类型统称为引用类型( ReferenceType),具体包括:类、接口、数组、枚举和注解类型。 引用类型数据以对象的形式存在。 引用类型变量的值是某个对象的句柄,而 不是对象本身。 声明引用类型变量时,系统只为该变量分 配引用空间,并未创建一个具体的对象。,21,引用类型应用举例(1),public class QQFarm private int account = 3715500; private int level = 28; private int experience = 5000; public QQFarm() public QQFarm(int a,int l,int e) account = a; level = l; experience = e; public void setAccount(int a) account = a; public int getAccount() return account; public void setLevel(int l) level = l; public int getLevel() return level; public void setExperience(int e) experience = e; public int getExperience() return experience; public void display() System.out.println(account + “-“ + level + “-“ + experience); ,22,引用类型应用举例(2),public class TestReferenceType public static void main(String args) QQFarm qqf; qqf = new QQFarm (3715500,20,5000); qqf.display(); ,23,对象构造和初始化(1),一. 为引用类型变量分配引用空间 语句:QQFarm qqf; 内存状态:见书3-15 二. 创建新对象为新对象分配内存空 间,并进行属性(实例变量)的默认初始化。 语句:qqf = new QQFarm (3715500,20,5000); 内存状态:,24,对象构造和初始化(2),Java对象默认初始化规则,25,对象构造和初始化(3),三. 进行属性的显式初始化,显式初始化取 值来自于类的定义中属性声明部分。 语句: private int account = 3715500; private int level = 28; private int experience = 5000; 内存状态:见书3-15 说明:如果属性在声明时未指定缺省值,则在 这个环节就不对其进行赋值操作。,26,对象构造和初始化(4),四. 执行构造方法体中的语句。 语句:public QQFarm(int a,int l,int e) account = a; level = l; experiecne = e; 内存状态:见书3-16 说明:此时新建对象和先前声明的变量qqf间还是没有建立任何关联。,27,对象构造和初始化(5),五.为引用类型变量赋值。 语句:qqf = new QQFarm (3715500,20,5000); 内存状态:见书3-17 说明:此时变量qqf保存的并不是新建对 象封装的具体信息、如属性值等,而是 该对象的句柄(Handle)。,28,练习,基本数据类型和引用数据类型的区别? 引用类型变量和对象的区别? 类和对象的关系?,29,方法,方法(Method)是类的动态性能,描述了该类 事物所共有的功能或行为。 Java语言的方法相当于其它编程语言中的 函数(Function)或子程序(Subroutine),是用来完 成相对独立功能的一段代码的集合。 语法规则: Java语言的方法必须定义在类中,而不允许直 接出现在源文件内。 只有其所在类的对象才有资格调用方法。 方法的定义不允许出现嵌套。,30,方法举例,public class TestMethod public int m1(int a,int b,int c) int result = a + b + c; return result; public void m2(int c) System.out.println(c); public static void main(String args) TestMethod tm = new TestMethod(); int j = tm.m1(3,4,5); System.out.println(j); System.out.println(tm.m1(100,10,9); tm.m1(1,2,3); /合法,丢弃了返回结果 tm.m2(6); /int k = tm.m2(8); /非法,方法m2()无返回值 ,31,相关语法,方法形参列表格式: (数据类型1 参数名1, 数据类型2 参数名2, ) Java语言中使用下述形式调用方法: 对象名.方法名(实参列表) 实参列表格式如下: (参数1, 参数2, ) 实参可以是变量、常量或表达式,但其数目、类 型和出现的顺序必须和相应的形参保持一致,此 称为参数匹配。 return语句用于终止方法的运行并指定要返回的数 据。如果方法的最后一行没有return语句,则编译 时系统会添加“return;“。,32,变量,变量(Variable)用于记录数值可以改变的数据。 计算机技术中变量包括变量名和变量值两部分: 变量名用于标记一段特定的存储空间 变量值以二进制形式保存在该空间中,且可以被 访问和修改。 变量分类 按所属数据类型划分: 基本类型变量 引用类型变量 按声明的位置划分: 局部变量方法或语句块内部定义的变量 成员变量方法外部、类的内部定义的变量,33,变量声明和初始化,Java语言中变量必须先声明和初始化(赋初值), 然后才可以使用。 成员变量在类的定义中声明,在创建对象的同时 创建有关的成员变量,然后由系统自动对其进行 默认初始化和显式初始化。 局部变量声明语法格式: =,= ; 举例: 说明:形参属局部变量,方法调用时会被隐含的初始化。,public void m1(int a,int b) int i; int j = i + 4; /编译出错,变量i尚未初始化 int k = a + b; ,34,变量作用域与生存期,变量的作用域也称变量的作用范围,即一个变量在多大的范围内可以使用: 成员变量的作用域与其所属对象的作用域相同 局部变量的作用域就是它所在的方法或语句块。 变量的生存期即变量的生存时间: 局部变量的生存期就是其所在方法或语句块单 次执行的期间在程序每一次调用方法或运 行进入到一个语句块中时,其中的局部变量才 被创建并可用,随方法/语句块的退出,局部变 量将被销毁。 成员变量的生存期与其所属的对象相同,随着 对象的创建而创建、随对象的销毁而销毁。,35,数据存储细节,计算机的物理内存在操作系统和JVM中使 用时分为堆内存和栈内存两种方式: 堆内存(Heap Memory)由所有的应用程序公用, 存储空间分配不连续,存储容量大。在堆内存 中分配存储空间和进行存取操作速度较慢。 栈内存(Stack Memory)由特定应用程序专用, 存储空间是连续的,以栈的方式(后进先出) 进行管理,存储容量小,但访问速度快。 Java程序运行时,局部变量保存在栈内存 中,而对象及其成员变量保存在堆内存中。,36,变量作用域举例,class C private int a = 1; private int b = 5; public void m1() int i=4, j=5; a = i + j; public void m2(int i) int j = 8; a = i + j; System.out.println(a); public class TestVariable public static void main(String args) C c = new C(); c.m1(); int k = 4; c.m2(k); ,37,值传递,Java语言中进行赋值操作或函数调用中传递参数时,遵循值传递(Pass By Value)的原则,即传递的永远是参数的值。 Java值传递分为两种不同情形: 基本类型数据传递的是该数据的值本身。 引用类型数据传递的是对对象的引用( 句柄),而非对象本身。,38,值传递举例(1),39,值传递举例(2),40,值传递演示(1),41,值传递演示(2),42,值传递演示(3),43,值传递演示(4),44,值传递演示(5),45,值传递演示(6),46,值传递演示(7),47,值传递演示(8),48,值传递演示(9),49,值传递演示(10),50,值传递演示(11),51,练习,1. 练习值传递演示中的例程, Example.java,体会和巩固Java中值传递的思想。,52,关键字this (1),Java中为解决变量的命名冲突和不确定性问题,引入关键字this代表其所在方法的当前对象,具体可分为两种情况: 在普通方法中,关键字this代表方法的调用者、 即本次调用了该方法的对象; 在构造方法中,关键字this代表了该方法本次运 行所创建的那个新对象。 在Java方法中既可以直接使用本方法的局部变量,还可以使用方法当前对象的成员变量。,53,关键字this (2),public class QQFarm private int account; private int level; private int experience; public QQFarm() public QQFarm(int a,int l,int e) this.account = a; this.level = l; this.experience = e; public void setAccount(int a) this.account = a; public void setLevel(int l) this.level = l; public void setExperience(int e) this.experience = e; public void setting() this. setAccount(3715500); this. setLevel(28); setExperience
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力发展:从芯片突破
- 建筑业新质生产力培育路径
- 民族服饰介绍课件
- 2025年康复医学评估及康复方案设计考核试卷答案及解析
- 新质生产力离不开通讯
- 2025年康复医学运动范围评定与功能锻炼设计模拟考试试卷答案及解析
- 2025年学年外科学护理人员技能操作考试答案及解析
- 2025年心血管病学患者的用药安全模拟考试卷答案及解析
- 2025年药学药物治疗用药安全评估试卷答案及解析
- 2025年放射诊断影像解读评估答案及解析
- 热能动力工程专业英语课件
- 船舶概论课件
- 篮球训练营规章制度范本
- 园林给排水工程
- Rexroth (博世力士乐)VFC 3610系列变频器使用说明书
- ×××学校“学校学生资助管理机构成立文件”
- 动词过去式和过去分词的变化规则练习及答案
- 第四章 土壤污染调查与风险评价
- GB/T 9877-2008液压传动旋转轴唇形密封圈设计规范
- 共享服务中心(HRSSC)课件
- 工程结构检测鉴定与加固第1章工程结构检测鉴定与加固概论课件
评论
0/150
提交评论