已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,Part 1 注释、标识符、关键字、数据类型,第3章 JAVA语言基础,2,本章内容,注释及分隔符、Java文档化工具 标识符 关键字 Java基本数据类型 Java引用类型 值传递 关键字this,3,Example:,/* *Description: This class is * counts to a number dictated by * the input to the program. * Copyright: Copyright (c) 2007 * Company: Dalian University of Technology * author Vivian Zhao * version 1.1 */,4,Cont,public class CountingProgram /* * This method counts from zero to X, printing * the “count” to the screen. *param countNumber The int number to count to. */ public static void count(String countNumber) int countTo = new Integer(countNumber); /for loop for (int i = 0; i countTo; i+) System.out.println(“Count = “+(i+1); public static void main (String args) if (args0 = null) System.out.println(“should input a number“); else count(args0); ,5,Java 注释,Java语言中定义了三种注释形式: / 单行注释-注释到行尾 /* 单行或多行注释 */ /* 可以用于文档化处理的单行或多行注释 */ JDK中提供了一个文档自动生成工具javadoc,在自定义类中public的成员前以/*/形式加入的注释内容均可被自动提取到生成的说明文档中。 用法:somepathjavadoc source.java 还可指定目录 javadoc d somepath source.java,6,常用的标记- javadoc标记,Javadoc能识别标记的一些特殊变量,并把注释加入它所生成的HTML文件: version:版本信息 auther:作者 param:参数 return:返回说明 exception:异常说明 举例:HelloDate.java,7,Java 分隔符,Java分隔符组成: 分号-“;”、花括号-“”、空格-“ ” Java分隔符作用: Java语句必须以分号作为结束标记 Java允许用花括号“”将一组语句括起来,形成一个语句块(block) Java程序源代码中各组成部分之间可以插入任意数量的空格,包括换行。,8,Java 分隔符,Java语句块(block)用法: 定义类时类体必须采用语句块形式 定义方法时方法体必须采用语句块的形式 定义循环语句时,循环体可以语句块的形式,采用将0多条语句集合到一起,作为一个整体进行处理 语句块可以嵌套,嵌套层数无限制,9,标识符(1),Java语言中,为各种变量、方法和类等起的名字称为标识符 Java标识符的命名规则: 应以字母、下划线、美元符开头 后跟字母、下划线、美元符或数字 Java标识符大小写敏感,长度无限制,10,标识符(2),Java标识符举例,11,关键字(1),Java中一些赋以特定的含义、并用做专门用途的单词称为关键字(keyword) 所有Java关键字都是小写的,TURE、FALSE、NULL等都不是Java关键字 goto和const 虽然从未使用,但也作被为Java关键字保留,12,关键字(2),13,Java数据类型划分,数据类型,基本数据类型,引用数据类型,数值型,字符型(char),布尔型(boolean),整数类型(byte, short, int, long),浮点类型(float, double),类(class),接口(interface),数组,Java不支持C、C+中的指针类型、结构体类型和共用类型,14,Java基本数据类型,Java中定义了四类/八种基本数据类型 逻辑型- boolean 文本型- char 整数型- byte, short, int, long 浮点数型- float, double,15,逻辑型,boolean类型适于逻辑运算,一般用于程序流程控制 boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false。 用法举例: boolean b = false; if(b=true) /do something 默认值:false,16,文本型(字符型),char型数据用来表示通常意义上“字符” 字符常量是用单引号括起来的单个字符 char c = A; Java字符采用Unicode编码,每个字符占两个字节 char j = 97; /j=a unicode 中的编码值 Java语言中还允许使用转义字符来将其后的字符转变为其它的含义 char c2 = n; /代表换行符 默认值:u0000,17,整数类型(1),Java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证Java程序的可移植性 :,18,整数类型(2),Java语言整型常量的三种表示形式: 十进制整数,如12, -314, 0。 八进制整数,要求以0开头,如012 十六进制数,要求0x或0X开头,如0x12 Java语言的整型常量默认为int型,如: int i =3; 声明long型常量可以后加 l 或 L ,如: long l = 3L;,19,浮点型(1),Java浮点类型有固定的表数范围和字段长度,20,浮点型(2),Java浮点类型常量有两种表示形式 十进制数形式,必须含有小数点,例如: 3.14 314.0 .314 科学记数法形式,如 3.14e2 3.14E2 314E2 Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如: double d = 3.14; float f = 3.14f;,21,基本数据类型变量声明和赋值,public class Test public static void main (String args ) boolean b = true; /声明boolean型变量并赋值 int x, y=8; / 声明int型变量 float f = 4.5f; / 声明float型变量并赋值 double d = 3.1415; /声明double型变量并赋值 char c; /声明char型变量 c = u0041; /为char型变量赋值(A) x = 12; /为int型变量赋值 ,22,EX 1(课后练习),练习在一个已有.java源代码文件中使用三种不同类型的注释,并用javadoc命令创建自己的类文档,体会其用法。 练习在已有应用程序的一个语句中插入多处空格、中间换行、将多个语句组成一个语句块儿(置于“ ”中),并编译运行程序,体会其自由程度。 在程序中试将不合法的标识符(如:3ar, *bily, d9#8等)、或关键字作为变量名,编译然后改正错误。,23,Java引用类型,Java语言中除8种基本数据类型以外的数据类型称为引用类型 引用类型数据以对象的形式存在 引用类型变量的值是某个对象的句柄,而不是对象本身 声明引用类型变量时,系统只为该变量分配引用空间,并未创建一个具体的对象,24,对象的构造和初始化(2),Java引用类型成员变量默认初始化原则,25,Java引用类型应用举例,public class MyDate private int day = 12; private int month = 6; private int year = 1900; public MyDate(int y, int m, int d) year = y; month = m; day = d; public void display() System.out.println(year + “ / “ + month + “ / “ +day); public static void main(String args) MyDate m; m = new MyDate(2001, 9, 22); m.display(); ,26,对象的构造和初始化(1),为引用类型变量分配引用空间 MyDate m;,创建新对象-首先为新对象分配内存空间,并进行属性(实例变量)的默认初始化 new MyDate(22, 9, 2001);,null,null,m,0,0,0,day,month,year,m,27,对象的构造和初始化(3),进行属性(成员变量)的显式初始化,显式初始化取值来自于类的定义中属性声明部分 private int day = 12; private int month = 6; private int year = 1900;,null,m,12,6,1900,day,month,year,28,对象的构造和初始化(4),执行构造方法 public Mydate(int y, int m, int d) year = y; month = m; day = d; ,null,m,22,9,2001,day,month,year,29,对象的构造和初始化(5),为引用类型变量m赋值 m = new MyDate(22, 9, 2001);,0x3a478b,m,22,9,2001,day,month,year,0x3a478b,30,值传递,Java中进行赋值操作或方法调用中传递参数时,遵循值传递的原则: 基本类型数据传递的是该数据的值本身 当向一个方法传递一个对象时,Java没有把对象放入堆栈,它只是拷贝对象的引用然后将这个引用的拷贝放入堆栈。也就是说,根据定义,Java使用的是传值方式。,31,值传递举例(1),class BirthDate private int day; private int month; private int year; public BirthDate ( int d, int m, int y ) day = d; month = m; year = y; public void setDay(int d) day = d; public void setMonth(int m) month = m; public void setYear(int y) year = y; public int getDay() return day; public int getMonth() return month; public int getYear() return year; public void display() System.out.println(day + “ - “ + month + “ - “ + year); ,32,值传递举例(2),public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,33,值传递演示(1),main,程序开始执行时内存状态,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,34,值传递演示(2),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,1,1,35,值传递演示(3),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i) i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,1,1,9,i,change1,36,值传递演示(4),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,1,1,1234,i,change1,37,值传递演示(5),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,1,1,38,值传递演示(6),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,1,1,587934,b,change2,39,值传递演示(7),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b) b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,1,1,666888,b,change2,22,2,2004,40,值传递演示(8),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,1,1,41,值传递演示(9),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b) b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,1,1,354752,b,change3,42,值传递演示(10),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,22,1,354752,b,change3,43,值传递演示(11),main,栈内存,堆内存,public class Example public static void main(String args) Example ex = new Example(); int date = 9; BirthDate d1= new BirthDate(7,7,1970); BirthDate d2= new BirthDate(1,1,2000); ex.change1(date); ex.change2(d1); ex.change3(d2); System.out.println(“date=“ + date); d1.display(); d2.display(); public void change1(int i)i = 1234; public void change2(BirthDate b)b = new BirthDate(22,2,2004); public void change3(BirthDate b)b.setDay(22); ,处内存状态,110925,9,587934,ex,date,d1,354752,d2,1970,7,7,2000,22,1,44,关键字this(1),Java中为解决变量的命名冲突和不确定性问题,引入关键字“this”代表其所在方法的当前对象。 构造方法中指该方法所创建的新对象 普通方法中指调用该
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论