1.Java程序设计语言1.1.Java程序设计语言简介Java是由Sun公司开发,是一种“面向对象程序设计语言”。Java的几个重要特点:1、Java是一种解释型语言;解释型语言是相对编译型程序设计语言而言的。C语言就是编译型;BASIC是解释型。所谓的编译型是将源代码程序编译生成二进制可执行文件,例如C源程序编译形成*.exe文件。解释型是这样工作的:编写源代码后,需要先执行“解释系统”软件,而这类软件往往非常占用内存空间,然后由这个解释软件对于源代码程序,逐行翻译成机器代码,再执行。(无论该源程序被执行多少次!)用VC所编写的hello.c源程序文件,通过编译得到hello.exe文件,而这个文件才是最终被执行的文件!这个可执行文件的最大特点是:它只能在IBMPC兼容机上执行,不能在苹果计算机上运行。上述结论实质上说明一个问题:C语言所形成的最终的可执行代码是不能在万维网上任意执行的!而Java是解释型语言,这里涉及一个重要软件,JVM(Java虚拟机)。只要安装了JVM的计算机或类计算机系统,都可以执行Java程序。Java源代码文件的扩展名:*.java,进过Java编译程序,编译成*.class的文件,而这个文件实质上是“中间代码”文件,JVM能够解释这个中间代码。这意味着:只要安装了JVM环境的计算机系统,都可以执行*.class文件。在编辑Java源代码时,要特别注意扩展名的问题。将编写好的Java源程序Hello.java编译成Hello.class:hello.exe与Hello.class的执行情况:2.Java虚拟机的安装在安装Java运行环境时要注意:1)需要安装JRE和JDK两套系统;2)可以在网上直接下载;)要注意别下载非window系统的JVM,同时要注意32位和64位的区别;4)应该安装到C盘,按默认方式安装即可。安装完成后,可见:在Java目录下应存在如下两个目录:其中Jre是JavaRuntimeEnvironment,Java运行环境;JDK是JavaDevelopmentKit,Java开发工具。Java运行环境设置:Path环境变量的设置:1)找到Java安装目录(Java系统目录);2)得到这个目录的Jdk目录下的bin目录的绝对路径,如下图:如:C:\ProgramFiles\Java\jdk1.7.0_67\bin3)复制上述路径;4)对“计算机”单击右键,选择“属性”,得到:5)选择“高级”、“环境变量”:6)编辑系统变量中的Path值:7)将刚才复制的路径,添加到Path值的末尾,并在最后增加英文”;”分号;特别注意:在完成路径设置后,应重新打开一个命令行窗口!如果不开一个新的命令行窗口,则,上述设置无效!8)在命令行中执行如下命令:3.Java分类Java本身分成三类:1)JavaSE标准Java环境,也是本课程的重点;2)JavaEE主要用于网站开发;分成前端、后台两大部分技术;3)JavaME主要用于手机等APP开发。上一节所下载并安装及设置的环境,就是JavaSE环境。4.关于目录和路径目录俗称“文件夹”;一台计算机(包括笔记本计算机)通常有一块(或多块)物理硬盘;在计算机销售商那里,通过运维人员已经将其分成若干个“逻辑分区”(对应逻辑硬盘,即,盘符),例如:C盘、D盘等等。每个逻辑盘都有且仅有一个“根目录”,用“\”表示:C:\或者d:\表示C盘根目录和D盘根目录;目录是用来存放、管理众多文件和其它目录的;一个目录下(里面)可以存放多个文件和其它目录(任何一个目录可以拥有多个孩子目录,即,子目录);任何一个目录,有且仅有一个“父目录”;有上述可知,目录构成“树形结构”;DOS命令:tree可以形象的显示这个树形结构:4.1.绝对路径:从根目录出发,将中间所经过的所有目录用“\”加以分隔,直到目标目录,所形成的目录链;下图中的DOS提示符所表示的就是绝对路径;若打算将当前目录转换到“zho的练习”目录下,则:1)应该使用cd命令;2)路径有两种表达形式:绝对路径和相对路径;cde:\zho\15秋各科目\各科目课件\J2EE\前端\课堂练习\zho的练习上述使用的就是绝对路径。4.2.相对路径相对路径是从“当前目录出发”的!之后有两种方向:向根目录方向(出)和向子目录方向(入);“出”时,每出一层目录,需要一个“..”,多出几层,就多给几个“..”,中间用”\”分隔;“入”时,每“进”一层子目录,就将该目录名称写出,并与其它目录名称或”..”用“\”分隔。示例:cd..\..\..\..\Java\课堂例题5.编译和执行Java程序的过程:1)先用“记事本”完成Java源代码的编写,形成如Hello.java的文件;2)启动DOS命令行,并将盘符和路径转换到Java源程序文件所在目录下;3)编译Hello.java:课后作业:1)安装并配置Java环境;2)在F盘建立Java目录,在Java目录下建立自己名字的目录,在自己的目录下建立Exer目录,在Exer目录下抄写Hello.java文件;3)编译该文件并执行,将文件内容及执行结果的截屏图,在一起打印,并在10月11日上课前上交。不上交者,停课!MEC15秋Java-真实姓名2.Java程序基本特点2.1.Java的基础类型(基本数据类型)1、byte1B2、char3、short4、int4B补码5、long8B补码6、float7、double8、boolean逻辑型,取值:true、false2.2.关系运算的结果只能是boolean类型if(x3)=if(true)或者if(false)在C语言中正确的书写方式:if(14x3)但是,上述表达式在Java中,是非法的!因为,逻辑型数据不能与非逻辑型数据进行比较!true3为非法!错误例子:publicclassDemoComp{publicstaticvoidmain(String[]arg){System.out.println(143);if(1431);}}对于Java源程序,在编译时,应特别关注编译所给出的错误信息和警告信息!2.3.Java在某种程度上符合C99原则在C语言中,变量必须事先定义方可使用!在Java中,可以随时定义,随时使用。例如:for(intk=0;k5;k++){//变量k的生命域仅限于for()的{}之内!System.out.print(k);System.out.print();}//这里释放了{}的局部变量kSystem.out.println();k++;//变量k已经被释放!Java是低错误容忍度的程序设计语言,因此,对于下面的问题,将按照错误处理!intindex;//对于C语言,这顶多是个警告,但对于Java,这是一个不可容忍的错误!System.out.println(index);2.4.精彩的类型转换输出九九乘法表:publicstaticvoidshowNineNineTable(){for(intj=1;j10;j++){for(inti=1;i=j;i++){//输出i*j=resSystem.out.print(i+*+j+=+(i*j)+);//当int与字符串相+时,Java会自动的将int转换为“字面值”相等的字符串。}System.out.println();}}需要特别说明的是:i+“*”+j+“=”…这一段代码的工作过程:i是int类型变量,”*”是字符串常量,两者相加,先由Java将int类型数值转换成字符串类型;Java中的字符串与字符串相加,实际上是:两个字符串相连接。3.关于eclipse集成环境eclipse是开源软件,也是绿色软件(加载、解压即可用,无需安装)从官方网站下载eclipse软件或者包括其汉化包(建议不要安装汉化包);在下载时,应注意版本:windows与MAC和Linux是不一样的。请特别注意32位与64位版本的识别。下面讲述eclipse的简单使用:关于Workspace,就是工作空间;其实,eclipse不仅仅是一个编程环境,它更是一个“工程管理”工具。为了方便大型软件开发工程的管理,eclipse给出了很多有关工程管理的方法和概念,其中Workspace就是其一。直白地说,Workspace就是一个目录!在这个目录下,存放和管理所有的有关这个工程所涉及的所有文件和目录(包)!eclipse能够进行程序的编辑、编译、运行、跟踪调试、工程管理等等功能,因此,称之为:集成环境。建立一个Java程序的过程:1、建立一个工程;2、选择建立Java工程:3、填写工程名称、选择JDK环境4、eclipse将建立该工程文件夹(目录);由eclipse在工程目录下创建若干个文件和目录,其中:5、创建类文件:6、确定类名称,并选择其它选项:7、大功告成:4Java的“包”概念Java工程的根目录:是名称为“工程名称的目录”下的src子目录;包其实就是目录,是为了方便管理工程中众多Java源程序文件,为方便类、变量等命名,防止命名冲突而引入的概念。包的建立:包的根从“工程”目录下的src目录开始算起!2015年10月11日,Java第二次作业:1)下载及安装eclipse;2)将课堂例题完成一遍;将在eclipse所编写的源代码及运行结果截屏;3)建立自己的包,并尝试编写一个由*组成的等腰三角形的输出,且行数固定为7行,如下是5行的等腰三角形:*************************第二次作业必须交,否则,停课!交作业时间:2015年10月15日5.面向对象面向对象思想的特点:1、降低软件开发成本;减少开发量(代码量);公司的(代码)积累;关键问题是:代码复用!2、使开发者能跟贴切所开发的事务本身,而不仅仅是处理一堆逻辑;3、经过长时间的软件开发工作,计算机软件学家们发现,应该将数据及数据上的操作看成一体,而不应该分别处理,从而提出“对象”和“类”的概念;4、……(更多其它特性)从C语言结构体出发,理解对象和类的概念。structABC{introw;intcol;};上述结构体是由“纯粹”的数据构成,即,只有数据成员。“类”是由包括数据和操作在内的两部分成员构成,数据成员称为:成员(属性);操作成员称为:方法(动作、行为、对属性的更改、函数)。“类”实际上是“数据类型”!对象和类的关系:具有相同属性和操作的实体,称为同类对象,简称对象。下面看一个类的简单例子:关于键盘中常用的几个编辑键:Home、End、Delete、Tab如图:对于MyFirstClass类不正确的使用方法:MyFirstClass.java文件内容如下:publicclassMyFirstClass{introw;intcol;}DemoMyFirstClass.java文件内容如下:publicclassDemoMyFirstClass{publicstaticvoidmain(String[]args){MyFirstClassone=null;System.out.println(one:+one);}}上述操作结果为null,而不是任何有意义的结果的原因可以从C语言中的结构体中得到提示:structABC{introw;intcol;};structABCa;printf(“%d\n”,a);//a是不能直接使用的!因此,上述Java例题中的one也不能直接使用,必须“实例化”!one=newMyFirstClass();这里的new关键字的意思:起到了C语言中的malloc()函数的作用。new的作用是“申请”这种类型的数据空间,并将申请得到的空间的首地址赋值给one,这个one叫做对象(其本质是首地址,是指针!)。上述程序段的输出结果是:one:com.mec.lesson03