李佳坡JAVA2 讲义.docx
- 文档编号:3576187
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:50
- 大小:78.44KB
李佳坡JAVA2 讲义.docx
《李佳坡JAVA2 讲义.docx》由会员分享,可在线阅读,更多相关《李佳坡JAVA2 讲义.docx(50页珍藏版)》请在冰豆网上搜索。
李佳坡JAVA2讲义
第一讲 Java语言入门
打印本页
1 Java的特点
1.1 面向对象:
n与C++相比,JAVA是纯的面向对象的语言
C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使C++成为一个“混血儿”。
而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。
1.2 可移植(平台无关性):
n生成中间字节码指令
与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。
任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。
这正是Java实现可移植的机制。
n原始数据类型存储方法固定,避开移植时的问题
Java的原始数据类型的大小是固定的。
比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像SunSPARC这样的32位处理器中,整数用4个字节表示。
在IntelPentium处理器上,整数类型由具体的操作系统决定:
对于DOS和Win32来说,整数是2个字节;对于Windows9x、NT和2000,整数是4个字节。
当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。
Java的字符串,则采用标准的Unicode格式保存。
可以说,没有这个特性,Java的可移植性也不可能实现。
1.3 简单
nJAVA在语法上与C++类似
JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法;
n取消了C++的一些复杂而低效的特性
比如:
用接口技术代替了C++的多重继承。
C++中,一个类允许有多个超类,这个特性叫做“多重继承”,多重继承使得编译器非常复杂且效率不高;JAVA的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能
其它被取消的特性包括:
虚拟基础类、运算符过载等
nJAVA的基本解释器和类支持模块大概仅40K
即使加入基本的标准库和支持线程的模块,也才220K左右。
与GUI(图形用户界面)相比,明显小很多
1.4 健壮
n取消了指针算法
C的最关键的一个特性是它的强大指针算法,比如可以用指针访问字符串、数组甚至文件,很容易产生指针溢出,意外地改写内存和损毁数据。
JAVA里有一个指针模型,对于普通的任务,如访问字符串、数组,根本不用指针,而一旦需要,比如访问对象、文件时,也可以获得指针的强大能力,但JAVA同时有高度的指针安全保障,用户永远不可能访问一个坏掉的指针、不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。
1.5 多线程
n强大的多线程能力
多线程可以使程序有更好的交互性和实时性,并可以最大限度地利用多处理器系统。
JAVA有着强大的多线程处理能力,因为各主流操作系统平台在线程的实施方面有重大的差异,所以JAVA为不同的操作系统实现了专门的多线程机制。
在这点上来说,JAVA没有做到平台无关。
2 Java简史
首次亮相——1995年5月
Java技术起先是作为小型的计算机语言,用于消费类设备,比如有线电视交换盒等。
因为这些设备的功能和内存均不足以运行大程序,所以程序要尽可能小;另外,由于不同的厂商可能选用不同的CPU,所以要求这种语言不能受限于任何一种独立的体系结构。
1995年5月23日召开的SunWorld’95大会上,一种全新的浏览器(今天的HotJava的前身)亮相,标志着Java的诞生。
开始流行——1996年1月
那时网景公司决定在Netscape2.0加入对Java的支持,Netscape2.0在1996年1月发布,从这一版本开始,所有Netscape浏览器均支持Java。
注册了Java使用许可证的还有IBM、Symantec、Inprise和其他许多公司。
就连微软,也加入了这一行列(尽管他们支持的Java和标准的Java稍有不同)。
SUN的第一个JAVA版本——1996年初
Sun公司于1996年初发布了Java1.02,遗憾的是,Java1.02还未摆脱其小型语言的影子,只适合用来做诸如网页上一个随机移动的文字之类的工作,并不适合用来做正规的程序开发。
Java1.02作为一种正规的编程语言,可以说,准备得很不充分。
成熟——1998年
1998年12月,Java1.2问世了。
它是一个功能全面的、具有高度扩展能力的新版本。
3天后,Java1.2被改进成Java2,向“一次编写,到处运行”的目标前进了一大步。
现状
现在最新的Java版本是JDK1.4,它是一个测试版,稳定的正式版是JDK1.3。
用户可以到
3 JDK的安装与编程环境的设定
3.1 Java程序的开发过程
经典的Java工具包是JDK。
尽管可以用任何文本编辑器,如记事本,都可以直接编写Java程序然后用JDK的命令编译和运行,为了调试方便,也为了初学者容易上手,本教程课件将使用一个叫JPadPro的Java编写工具来调用JDK的工具。
用户可以到下载这个工具。
3.2 JDK的安装(演示)
3.3 编程环境的设定
安装运行之后,应该首先设置JDK工具包所在的路径。
(演示)
菜单栏的JDK->selectJDKDirectory->选择刚才安装的JDK路径—>OK。
新建一个project
菜单栏的File->newprojects->选择路径,输入project的名字。
4 两个简单的程序示例(演示)
4.1 Java应用程序:
Hello.java
编写
新建一个.java文件。
File—>new—>javafile—>输入一个名字:
Hello—>点creatfile.出现了一个空的java文件。
编译
JDK—>compileHello.java或者点击如演示所示的按钮。
实际上是执行JDK工具包里的javac.exe命令,与javacG:
\java2jiaocheng\example\teach1\Hello.java是等价的。
(演示)便已完成之后在同一个文件夹就会有一个同名的.class文件。
看编译结果,改错
错误举例:
少写一个分号;录入错误。
运行
JDK—>Runclasses—>选择要运行的class,输入参数(这里,没有参数)或者点击如演示所示的按钮。
一个有参数的例子
看运行结果
4.2 JavaApplet:
StarterApplet.java
新建一个JavaApplet文件。
File—>new—>javaApplet—>输入一个名字:
StarterApplet—>出现了一个空的java文件和一个Html文件。
编译
JDK—>compileStarterApplet.java或者点击如演示所示的按钮。
实际上是执行JDK工具包里的javac.exe命令,与javacG:
\java2jiaocheng\example\teach1\StarterApplet.java是等价的。
看编译结果,改错
运行
JDK—>TestApplet—>选择要运行的class,输入参数(这里,没有参数)
或者点击如演示所示的按钮
或者直接双击Html文件。
看运行结果
5 如果获得帮助(演示)
5.1 下载帮助
JDK并不包含帮助文件,需要到网站上下载,里面有示例和说明。
http:
//www.confluent.fr/javadoc/jdk13e.html,下载下来时候,双击安装。
5.2 使用帮助
敲入想查找的关键字,按回车。
6编程的一些约定
6.1 命名规则
类名与文件名应该一致,否则编译出错。
比如,classHello的文件名应该是Hello.java
类名首字母大写,每个单词开头大写,其他用小写。
比如:
Hello.java,StarterApplet.java。
变量名用第一个单词用小写字母,第二个以后的单词首字母大写。
比如:
intmyAge;
方法的名字第一个单词用小写字母,第二个以后的单词首字母大写,比如:
getMyAge();
6.2 注释
/*
*Hereisablockcomment.
*/
表示完整的一段注释;
if(condition){
/*Handlethecondition.*/
...
}
表示注释该行以下部分
if(a==2){
returnTRUE;/*specialcase*/
}else{
returnisPrime(a);//worksonlyforodda
}
注释一行
6.3 分行
如果一行太长需要换行。
比如:
someMethod(longExpression1,longExpression2,longExpression3,
longExpression4,longExpression5);
var=someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));
var=someMethod1(longExpression1,someMethod2
(longExpression2,
longExpression3));
小结
1.Java特点
2.Java简史
3.JDK的安装与编程环境的设定
4.一个简单的程序示例
5.如何获得帮助
6.编程的一些约定
7.内容安排
习题
1.下载并安装JDK,设置编程环境
2.开发Java程序主要由哪几个重要步骤?
3.编一个输出自己名字的程序,并编译运行。
4.说出Java相比其他编程语言,如C++,有哪些优点。
第二讲 Java基本语法
打印本页
我们先看看一个具体例子。
以下是一个example程序,它的作用是从1加到10,并显示结果:
(演示)
这个程序的输出为:
Sum=55
这一讲,我们将学习Java基本语法,包括变量、操作符和流程控制语句。
以上的代码可能看起来有点复杂,但是当你学习完本讲,你就会发觉它实际上很简单。
1 Java的标识符和关键字
1.1 标志符
用来标志类名、变量名、类型名、数组名、文件名有效字符序列成为标志符。
简单地说,标识符就是一个名字。
Java语言规定:
标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。
下列都是合法的标志符:
getMyAge,girl_$,www_12$,$123;
标识符的命名习惯在第一讲已经讲过,在这里不再重复。
1.2关键字
关键字就是Java语言中已经被赋予特定意义的一些单词,比如:
int,代表整数类型,不能再用来做普通标志符。
在JPadpro以及很多程序编辑器中,关键字的字体是蓝色的(演示),以示区别。
以下就是一些主要的关键字。
abstractcontinuefornewswitchbooleandefaultgotonullsynchronizedbreakdoifpackagethisbytedoubleimplementsprivatethreadsafebyvalueelseimportprotectedthrowcaseextendsinstanceofpublictransientcatchfalseintreturntruecharfinalinterfaceshorttryclassfinallylongstaticvoidconstfloatnativesuperwhile
1.3变量名
程序是用变量名来引用变量数值的。
比如,sum,count,begin,end等这些就是变量名。
在JAVA编程语言中,对于变量名有下面的必须满足:
它必须是一个合法的标识符。
一个标识符是以字母开头的一串Unicode字符。
它必须不是一个关键字、布尔型字符(true或者false)或者保留字NULL。
它必须在作用域中是唯一的。
在不同的作用域才允许存在相同名字的变量。
关于作用域我们稍候将会讲到。
2 Java基本数据类型(整型,浮点型,字符型,布尔型)
2.1 Java是一种严格的类型化语言。
这就是说,每个变量都必须有一个声明好的类型,可以是基本数据类型,也可以是JDK包提供的类,或者是自己编写的类。
我们先来学习Java的基本数据类型。
2.2 Java提供了8种基本类型。
其中6种是数字类型(四个整数类型,两个浮点型);一种是字符类型,由采用Unicode编码方法的字符使用;第六种是布尔类型,用于真/假值的运算。
2.2.1整数类型
整数类型是指那些没有小数部分的数字,Java提供了4种整数类型:
int,long,short,byte。
类型
存储空间大小
取值范围
int
4字节
—2,147,483,648到2,147,483,648
short
2字节
—32,768到32,767
long
8字节
—9,223,372,036,854,775,808L到—9,223,372,036,854,775,807L
byte
1字节
—128到127
大多数情况下,int类型是最实用的。
如果要表示很大的整数,就需要使用长整型long(后缀L表示长整型)。
字节(byte)和短整数(short)主要应用于特殊的应用程序,比如低级文件控制,或者用于对存储空间要求极大的大型数组。
需要强调的是,在Java语言中,整数类型的取值范围并不由最终运行Java代码的机器来决定。
因为Java的设计初衷,Java程序必须在所有机器上都取得的相同的结果,所以各种类型的取值范围是固定的。
这样,就可以把一个软件从一个平台移植到另一个平台,甚至能在相同平台的不同操作系统之间移植。
2.2.2浮点类型
浮点类型是那些含有小数部分的数字,共有两种浮点类型:
float和double。
类型
存储空间大小
取值范围
float
4字节
约正负3.40282347E+38F
double
8字节
约正负1.79769313486231570E+308
double型(双精度)比float型精确度要高,而且取值范围要大。
当进行高精度计算时,一般选用double型。
float类型的后缀为F,如果一个浮点数没有后缀F,则默认为double型。
2.2.3字符类型
Java使用Unicode格式表示字符。
Unicode格式,使用双字节编码,能够表示65536个字符,几乎可以表示世界上所有的语言文字的字符,极大地方便了编写国际语言版本的程序。
相比之下,采用单字节编码的ASCII/ANSI字符集,只能表示255个字符。
Java还可以用\表示特殊字符。
比如:
(演示)
\n换行\”双引号\\反斜杠.
注意:
在C和C++中,char代表的是一个整数类型,可以直接把char当整数看待,在Java里不能这样。
2.2.4布尔类型
布尔类型(boolean)只有两个取值:
true和false。
注意:
在C中,根本不存在什么布尔类型,而是任何非零值都表示真,零值表示假。
在Java中,不能在数字与布尔值之间转换。
2.3声明、赋值和初始化(演示)
前面已经说过,任何变量在使用之前都需要声明。
那么,怎么声明一个变量呢?
变量声明的格式是:
类型变量名。
其中,类型可以是基本数据类型,也可以是JDK包提供的类,或者是自己编写的类。
变量名是一个合法的标志符。
赋值就是使变量具有某一个值,值的类型必须要与变量的类型一致,否则会出错。
初始化就是第一次给变量赋值。
常数:
常数用final修饰,常数只能被赋值一次。
比如(演示):
演示:
intn;
n=100;
doubed;
d=12.3;
chartestchar;
testchar=’T’
booleantest;
test=true;
也可以声明和初始化一起做:
intn=100;
2.4类型转换
有时,我们会经常遇到把double数当作整数处理的情况。
这个时候,要进行类型转换。
有些时候,Java会自动进行类型转换,比如:
doubleresult,d=123.4;
floatf=12.3F;
result=f*d;
f会被自动转换成double类型。
有些时候,我们需要强制类型转换。
方法是:
doublex=9.998;
intnx=(int)x;
3 运算符
3.1算数运算符:
Java语言中,常用的运算符包括+、—、*、/,%。
比如:
intn=5;
inta=2*a;
a*=2;
3.2递增和递减运算符:
++--
intm=2;
m++;
intm=2;n=2;
inta=2*++m
a=2*n++;
建议不要使用这种容易混淆的表达式,可以分开写,比如:
m++;
a=2*m;
或者用括号修饰:
a=2*(m++);
3.3关系运算符和逻辑运算符:
关系运算符:
>,<,>=,<=,==,!
=,
逻辑运算符:
&&(与),||(或),!
(非)
返回一个布尔类型,比如:
inta=5;
if(a>8)
System.out.println(“a>8”);
elseSystem.out.println(“a<8”);
if(a>3&&a<8)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 李佳坡JAVA2 讲义 李佳坡 JAVA2
![提示](https://static.bdocx.com/images/bang_tan.gif)