2022年《JAVA基础教程》Java程序设计基础 .pdf
《2022年《JAVA基础教程》Java程序设计基础 .pdf》由会员分享,可在线阅读,更多相关《2022年《JAVA基础教程》Java程序设计基础 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章Java 程序设计基础3.1 Java编程概况现在你可以复习一下Java 语言的背景材料,它的基本结构象C/C+,但任何用面向过程语言编写过程序的人都可以了解Java 语言的大部分结构.3.1.1 程序结构Java 语言的源程序代码由一个或多个编译单元(compilation unit)组成,每个编译单元只能包含下列内容(空格和注释除外):*一个程序包语句(package statement)*入口语句(import statements)*类的声明(class declarations)*界面声明(interface declarations)每个 Java 的编译单元可包含多个类或界
2、面,但是每个编译单元最多只能有一个类或者界面是公共的。Java 的源程序代码被编译?reg;后,便产生了 Java 字节代码。Java 的字节代码由一?copy;不依赖于机器的指令组成,这?copy;指令能被 Java 的运行系统(runtimesystem)有效地解释。Java 的运行系统工作起来如同一台虚拟机。在当前的Java 实现中,每个编译单元就是一个以.java为后缀的文件。每个编译单元有若干个类,编译后,每个类生成一个.class文件。.class文件是 Java 虚拟机能够识别的代码。3.1.2 注释三种类型如下:/注释一行/*一行或多行注释*/*文档注释*/文档注释一般放在一个
3、变量或函数定义?reg;前,指示在任何自动生成文档系统中调入。这?copy;注释都是声明条目的描述.。3.1.3 标识符变量,函数,类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。在 Java 语言里,标识符以字符或 _,$开头,后面可以包含数字,标识符是大小写有区别的,没有长度限制。有效的标识符 myname ict_network Hello _sys_path$bill 例子:int a_number;char _onechar;float$bill;关键词 abstract continue for new switch boolean default goto nu
4、ll synchronized break do if package this byte double implements private threadsafe byvalue else import protected throw case extends instanceof public transient catch false int return true char final interface shorttry class finally long static void const float native super while 其它保留词以下单词被保留使用:cast
5、future generic inner operator outer rest var 3.1.4 数据类型Java 使用五种基本类型:integer(整数),floating(浮点数),point(指名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页 -针),Boolean(布尔变量),Character or String(字符或字符串)。integer整数下边给出的数据表示都是整数的例子:4,15,089,0 xAD00整数长度数据类型表示 8 bits byte 16 bits short 32 bits int 64 bits long floating 浮点数
6、下边给出的数据表示都是浮点数的例子:6.37,3.7E15,3e8 浮点数长度数据类型表示 32 bits float 64 bits double Boolean 布尔变量下边是布尔变量的两种可能取值:true false Character 字符下边给出的都是字符的例子:a t(tab)u?(unicode)String字 符 串下 边给 出 的 都 是 字 符 串的 例子:This is a string literal 中国科学院计算所 数组你可以定义任意类型的数组.char s;这是字符型数组;int array;这是整型数组;你还可以定义数组的数组.int block=new in
7、t 23;数组边界在运行时被检测,避免堆栈溢出和内存崩溃.在 Java 里,数组实际上是一个对象,数组有一个成员变量:length。你可以用这个成员函数来查看任意数组的长度.int a=new int 103;a.length;/*10*/a0.length;/*3*/创建数组在 Java 里创建数组,你可使用两种基本方法:一。创建一个空数组:int list=new int50;或你可以用初始数值填充数组.String names=Chenji,Yuan,Chun,Yang;相 当 于 下 面 功 能:String names;names=new String4;names0=new Str
8、ing(Chenji);names1=new String(Yuan);names2=new String(Chun);names3=new String(Yang);在编译时你不能象下例那样创建静态数组。int name50;/将产生一个编译错误你也不能用new操作去填充一个没定义大小的数组。int name;for(int i=0;i9;i+)namei=i;3.1.5 表达式Java 语言的表达式和C 语言非常类似。运算符运算符(operator)优先级从高到底排列如下:.()+-!instanceof*/%+-=!=&|?:=op=,整数运算符在整数运算时,如果操作数是long 类型,
9、则运算结果是名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页 -long 类型,否则为 int类型,绝不会是 byte,short 或 char 型。这样,如果变量 i 被声明为 short 或 byte,i+1 的结果会是 int。如果结果超过该类型的取值范围,则按该类型的最大值取模。单目整数运算符是:运算符操作-单目非位补码+加 1-减 1+运算符用于表示直接加1 操作。增量操作也可以用加运算符和赋值操作间接完成。+lvalue(左值?copy;表示 lvalue+=1,+lvalue也表示lvalue=lvalue+1(只要 lvalue没有副作用)。-运算符用于表
10、示减1 操作。+和-运算符既可以作为前缀运算符,也可以做为后缀运算符。双目整数运算符是:运算符操作*+加-减*乘/除%取模&位与位或 位异或 右移(带符号)添 零 右 移 整 数 除 法 按 零 舍 入。除 法 和 取 模 遵 守 以 下 等 式:(a/b)*b+(a%b)=a整数算术运算的异常是由于除零或按零取模造成的。它将引发一个算术异常。下溢产生零,上溢导致越界。例如:加1 超过整数最大值,取模后,变成最小值。一个op=赋值运算符,和上表中的各双目整数运算符联用,构成一个表达式。整数关系运算符,=,=和!=产生 boolean 类型的数据。布尔运算符布尔(boolean)变量或表达式的组
11、合运算可以产生新的boolean值。单目运算符!是布尔非。双目运算符,和是逻辑 AND,OR和 XOR 运算符,它们强制两个操作数求布尔值。为避免右侧操作数冗余求值,用户可以使用短路求值运算符和。用户可以使用=和!=,赋值运算符也可以用&=、|=、=。三元条件操作符?:和 C语言中的一样。浮点运算符浮点运算符可以使用常规运算符的组合:如单目运算符+、-,双目运算符+、-、*和/,以及赋值运算符+=,-=,*=,和/=。此外,还有取模运算:%和%=也可以作用于浮点数,例如:a%b和 a-(int)(a/b)*b)的语义相同。这表示 a%b的结果是除完后剩下的浮点数部分。只有单精度操作数的浮点表达
12、式按照单精度运算求值,产生单精度结果。如果浮点表达式中含有一个或一个以上的双精度操作数,则按双精度运算,结果是双精度浮点数。数组运算符数组运算符形式如下:可给出数组中某个元素的值。合法的取值范围是从0 到数组的长度减1。取值范围的检查只在运行时刻实。运算符以String对象实现。运算符+完成并操作,如果必要则自动把操作数转换为String型。如果操作数是一个对象,它可定义一个方法toString()返回该对象的 String方式,例如 float a=1.0 print(The value of a is+a+n);+运算符用到?reg;上的例子 String s=a=+a;+=运算符也可以用
13、于 String。注意,左边(下例中的s1)仅求值一次。s1+=a;/s1=s1+a/若 a非 String型,自动转换为String型。对象运算符双目运算符instanceof测试某个对象是否是指定类或其子类的实例。例如:if(myObject instanceof MyClass)MyClass anothermyObject=(MyClass)myObject;是判定 myObject 是否是 MyClass 的实例或是其子类的实例。强制和转换Java 语言和解释器限制使用强制和转换,以防止出错导致系统崩溃。整数和浮点数之间可以来回强制转换,但整数不能强制转换成数组或对象。对象不能被强制
14、为基本类型。3.1.6 Java 流控制下面几个控制结构是从C语言借鉴的。分支结构if/else分支结构 if(Boolean)statemanets;else statements;switch 分支结构 switch(expr1)case expr2:statements;break;case 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -expr3:statements;break;default:statements;break;循环结构for循环结构 for(init expr1;test expr2;increment expr3)statements;
15、While 循环结构 While(Boolean)statements;Do循环结构 do statements;while(Boolean);一 般 顺 序 控 制break label continue label reutrn expr;label:statement;for 循环例子下面是一个程序例子,画几条线,分别用红,绿,蓝颜色,这段程序可能是 Java 函数的一部分:int count;for(count=1;count=12;count+)switch(count%3)case 0:setColor(Color.red);break;case 1:setColor(Color.
16、blue);break;case 2:setColor(Color.green);break;g.drawLine(10,count*10,80,count*10);3.2 Java变量和函数的实例Java 的类包含变量和函数。数据变量可以是一些原始的类型,如 int,char等。成员函数是一些可执行的过程。例如,下面程序里:public class ClassOne int i;public ClassOne()i=10;public void Add_i(int j)i=i+j;ClassOne 包含一个变量i 和两个成员函数,ClassOne(int first)和 Add_i(int
17、j)。成 员 函 数 成 员 函 数 是 一 些 可 被 其 它 类 或 自 己 类 调 用的 处 理 子 程 序。一 个 特 殊 的 成 员 函 数 叫 构 造 函 数,这 个函 数 名 称 一 般 与 本 类 名 程 相 同。它 没 有 返 回 值。构 造 函数 和 成 员 函 数 当 你 在 Java 里 定 义 一 个 类 时,你 可 定 义 一 个或 多 个 可 选 的 构 造 函 数,当 创 建 本 类 的 一 个 对 象 时 用 某一 个 构 造 函 数 来 初 始 化 本 对 象。用 前 面 的 程 序 例 子 来 说明,当 ClassOne 类 创 建 一 个 新 实 例 时
18、,所 有 成 员 函 数 和 变 量被 创 建(创 建 实 例)。构 造 函 数 被 调 用。ClassOne mc:mc=new ClassOne();关 键 词 new用 来 创 建 一 个 类 的 实 例,一 个 类 用 new初 始 化前 并 不 占 用 内 存,它 只 是 一 个 类 型 定 义,当 mc 对 象 初 始 化后,mc 对 象 里 的 i 变 量 等 于 10。你 可 以 通 过 对 象 名 来 引 用 变量 i。(有 时 称 为 实 例 变 量)mc.i+;/mc实 例 变 量 加 1 因 为 mc有ClassOne类 的 所 有 变 量 和 成 员 函 数,我 们
19、可 以 使 用 同 样 的语 法 来 调 用 成 员 函 数 Add_i:Add_i(10);现 在 mc.i 变 量 等 于 21.结 束 函 数 Java并 不 支 持 析 构 函 数(C+里 的 定 义),因 为java本 身 提供 对 象 无 用 时 自 动 清 除 的 功 能,同 时 它 也 提 供了 一 个 自 动 拉 圾 箱 的 成 员 函 数,在 清 除 对 象 时 被 调 用:Protected void finalize()close();3.3 对 象 有 效 范 围 和 废 物 自 动 回 收对 象 有 一 定 的 生 命 期 并 在 它 的 生 命 期 间 使 用 资
20、 源,当名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 12 页 -一 个 对 象 不 再 被 使 用 时,它 应 释 放 内 存,避 免 内 存 溢 出。在 Java 里,收 集 和 释 放 内 存 是 一 个 叫 自 动 废 品 回 收 站 的 线程 的 责 任。这 个 线 程 监 视 对 象 有 效 范 围 并 给 一 个 走 出 有效 范 围 的 对 象 作 上 标 识。例如:String s;/没有分配内存s=new String(oldstring);/分 配 内 存 s=newstring;/重 新 分 配 内存(创 建 新 对 象)我 们 将 在 以 后 访 问
21、String类 时 将 更 加 明 白它 的 工 作 过 程,但 它 的 快 速 工 作 过 程 是 这 样 的:1.创 建 一个 新 的 String类 对 象 并 填 充 以oldstring 2.创 建 另 一 个String对 象 并 填 充 以newstring 注 意 我 们 创 建 了 两 个 对象。Stirng 对 象 oldstring Stirng 对 象 newstring 在 第 三 条语 句 里,第 一 个 包 括oldstring的 叫 做 s 的 对 象 已 走 出 了 有效 范 围,没 有 任 何 方 法 可 以 再 访 问 他,我 们 现 在 有 一 个 新的
22、 对 象 也 叫 s,包 含newstring。在 下 一 个 废 品 回 收 线 程,前一 个 对 象 将 被 标 识 并 清 除。3.4 子 类子 类 是 利 用 存 在 的 对 象 创 建 一 个 新 对 象 的 机 制,比 如,如 果 你 有 一 个 Horse 类,你 可 以 创 建 一 个 Zebra子 类,Zebra是Horse 的 一 种。class Zebra extends Horse int number_OF_stripes:关 键 词 extends来 定 义 对 象 有 的 子 类.Zebra 是 Horse 的 子 类。Horse 类 里 的 所 有特 征 都 将
23、 拷 贝 到 Zebra 类 里,而 Zebra 类 里 可 以 定 义 自 己 的 成员 函 数 和 实 例 变 量。Zebra 称 为 Horse 的 派 生 类 或 继 承。另 外,你 也 许 还 想 覆 盖 基 类 的 成 员 函 数。用 ClassOne说 明,下 面 是一 个 派 生 类 覆 盖 Add_i 功 能 的 例 子.import ClassOne;public class NewClass extends ClassOne public void Add_i(int j)i=i+(j/2);当 NewClass类 的 实 例 创 建 时,变 量 i 初 始 化 值 为
24、10,但 调 用Add_i产生不同的结果。NewClass mnc;mnc=new NewClass();mnc.Add_i(10);访 问 控 制 Java里 当 你 创 建 一 个 新 类 时,你 可以 标 明 变 量 和 成 员 函 数 的 访 问 层 次。public public void AnyOneCanAccess()public实 例 变 量 和 成 员函 数 可 以 任 意 其 它 类 调 用。protected protected void OnlySubClasses()protected实 例 变 量和 成 员 函 数 只 能 被 其 子 类 调 用.private
25、private String CreditCardNumber;private实 例 变 量 和 成员 函 数 只 能 在 本 类 里 调 用.friendly void MyPackageMethod()缺 省 的,如 果 没 有 定 义 任 何防 火 控 制,实 例 变 量 或 函 数 缺 省 定 义 成 friendly,意 味 着 可以 被 本 包 里 的 任 意 对 象 防 问,但 其 它 包 里 的 对 象 不 可 防问。静 态 成 员 函 数 和 变 量 有?copy;时 候,你 创 建 一 个 类,希望 这 个 类 的 所 有 实 例 都 公 用 一 个 变 量。也 就 是 说
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA基础教程 2022年JAVA基础教程Java程序设计基础 2022 JAVA 基础教程 程序设计 基础
限制150内