-1-《电子商务解决方案设计》教案实验一:java基础(一)一、java入门JavaSE:javastandardeditionJavaME:javamicroeditionJavaEE:javaenterpriseeditionJava是由sun公司推出(但2010年被oracle公司收购,收购价格:74亿美元)从j2se、j2me、j2ee的演变,从jdk5.0开始称为se、me、ee。1、jdk的下载与安装Jdk:javadevelopmentkit(java开发包)Jre:javaruntimeenvironment(java执行环境)Jdk包含了jre。下载过程见课堂演示。安装完成后运行:java–version如能显示版本信息,即表明java安装成功。Jdk1.4jdk1.5(5.0)jdk1.6(6.0)设置环境变量:classpathpathJAVA_HOME2、第一个java程序编写程序时可以是记事本、ultraedit(高级文本编辑工具)、IDE(integrateddevelopmentenvironment)。-2-例1-1:Test类publicclassTest{publicstaticvodmain(String[]args){System.out.println(“helloworld!”);}}3、java程序的编译与执行Java程序的执行过程分为两步:(1)编译:javac文件名.java(2)执行:java文件名(这是一个后缀为class的字节码文件)注意:修改过的原文件,要重新执行上述的(1)(2)步骤。JVM(javavirtualmachinejava虚拟机)来执行字节码文件。二、原生数据类型1、Java中的数据类型:1)原生数据类型(PrimitiveDataType)2)引用类型(对象类型)(ReferenceType)-3-2.变量与常量:所谓常量,就是值不会变化的量;所谓变量,就是值可以变化的量。3.变量定义与赋值:(1)变量类型变量名;变量名=变量值;inta;a=2;(2)变量类型变量名=变量值;inta=1;=表示赋值,将等号右边的值赋给了左边的变量。4、变量名命名规则:在Java中,变量名以下划线、字母、$符号开头,并且后跟下划线、字母、$符号以及数字。总之,Java中的变量名不能以数字开头。5、注释:注释是给人看的,不是给计算机看的。Java中共有3种类型的注释:1)单行注释:以//开头,//后面的所有内容均被当作注释处理。2)多行注释:以/*开头,以*/结束,中间的所有内容均被当作注释处理。关于多行注释,需要注意的是,多行注释不能嵌套。3)另一种多行注释。用于产生JavaDoc帮助文档。暂且不介绍。/**注释内容*/6、Java中的原生数据类型共有8种:1)整型:使用int表示。(32位)-4-2)字节型:使用byte表示。(表示-128~127之间的256个整数)。3)短整型:使用short表示。(16位)4)长整型:使用long表示。(64位)5)单精度浮点型:使用float表示。所谓浮点型,指的就是小数,也叫做实数,比如1.2。6)双精度浮点型:使用double表示。双精度浮点型表示的数据范围要比单精度浮点型大。7)字符型:使用char表示(char是character的缩写)。所谓字符,就是单个的字符表示,比如字母a,或者中文张,外面用单引号包围上。比如chara=‘B’;charb=‘张’;8)布尔类型,使用boolean表示。布尔类型只有两种可能值,分别是true与false。7、变量使用过程中应注意的问题:1)Java中的所有浮点类型默认情况下都是double。不能将double类型的值赋给float类型的变量,即便该double类型的值处于float类型的范围内也是不可以的。总之,能否成功赋值取决于等号右边的值类型与等号左边的变量类型是否一致。2)如何将double类型的值赋给float类型的变量?答案就是(1)强制类型转换,将double类型的值强制转换为float类型。(2)使用java语言的支持。强制转换的语法:类型变量名=(类型)变量值;3)变量在使用前必须要赋值;变量必须要声明其类型方可使用;变-5-量在使用前必须要定义,并且只能定义一次。4)如下代码无法通过编译:inta=1;shortb=a;a是int类型,b是short类型,int类型表示的数据范围要比short类型大,不能将表示范围大的值赋给表示范围小的变量。5)如下代码可以通过编译:shorta=1;intb=a;a是short类型,b是int类型,int类型表示的数据范围要比short类型大,可以将表示范围小的值赋给表示范围大的变量。总结:可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实现。上述内容验证见实例:test、variable1、variable2三、运算符1、算术运算符:1)当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。比如,参与运算的变量中,有整型int,有双精度浮点型double,有短整型short,那么最后的结果类型就是double。-6-2)inta=1;intb=2;doublec=(double)a/b;上面的代码中,a与b都是整型,但是通过(double)a这种转换将a转换为一个匿名的变量,该变量的类型是double,但是要注意:a本身依旧是int类型,而不是double类型,这样,(double)a/b就是double类型除以int类型,结果自然是double类型。3)取模运算符:使用%表示。inta=5;intb=3;intc=a%b;上面代码的运行结果是2,因为5除以3结果是1余2。取模的规律:取模的结果符号永远与被除数的符号相同inta=5;intb=-3;intc=a%b;被除数是5,那么取模的结果是2inta=-5;intb=3;intc=a%b;被除数是-5,那么取模的结果是-2。上述内容验证见实例:variable3-7-2、关系运算符:关系运算符:大于()、小于()、等于(==)、不等于(!=)、大于等于(=)、小于等于(=),关系运算的结果是个boolean值。见实例:OperatorTest3、逻辑运算符:重点讲解两个,逻辑运算符本身也返回一个boolean值。1)逻辑与:使用&&表示,逻辑与是个双目运算符(即有两个操作数的运算符),只有当两个操作数都为真的时候,结果才为真;其余情况结果均为假。逻辑与表示的并且的意思。2)逻辑或:使用||表示,逻辑或也是个双目运算符,只有当两个操作数都为假的时候,结果才为假;其余情况结果均为真。逻辑或表示或者的意思。见实例:LogicTest4、关于变量的自增与自减运算。1)关于intb=a++,作用是将a的值先赋给b,然后再让a自增1。2)关于intb=++a,作用是将a的值先自增1,然后将自增后的结果赋给b。见实例:Variable45、条件运算符(三元表达式),其形式为:typed=a?b:c;具体化形式为:intd=21?3:4;注意:轻量级的文本编辑器:UltraEdit、Editplus、vi、vim、gvim见实例:Test2-8-四、流程控制语句1、if语句第一种形式:if(布尔表达式){//待执行的代码}第二种形式:if(布尔表达式){//待执行的代码}else{//待执行的代码}第三种形式:if(布尔表达式){//待执行的代码}elseif(布尔表达式){//待执行的代码}elseif(布尔表达式){//待执行的代码}else{//待执行的代码}见实例:IfTest2、switch语句:-9-switch(变量)//此处的变量类型就目前所学内容来看,只能为4种类型:byte,short,int,char。{case常量1://待执行的代码break;case常量2://待执行的代码break;case常量3://待执行的代码break;default://待执行的代码}虽然case语句中的break是可选的,但在绝大多数情况下,如果没有break,程序的逻辑就会发生错误,因此,通常情况下都需要加上break。见实例:SwitchTest3、循环控制语句Java中的循环控制语句一共有3种,分别是while,do…while以及for循环。1)while循环,形式为:while(布尔表达式){//待执行的代码}2)do…while循环,新式为:do{//待执行的代码}-10-while(布尔表达式);while与do…while之间的区别:如果布尔表达式的第一次判断就为false,那么while循环一次也不执行;do…while循环则会执行一次。如果布尔表达式第一次判断为true,那么while循环与do…while循环等价。3)for循环(使用最多的一种循环),形式为:for(变量初始化;条件判断;步进){//待执行的代码}for循环的执行过程:a)执行变量初始化。b)执行条件判断。如果条件判断结果为假,那么退出for循环,开始执行循环后面的代码;如果条件判断为真,执行for循环里面的代码。c)执行步进。d)重复步骤b。上述内容见实例:WhileTest、DoWhileTest、ForTestbreak语句:经常用在循环语句中,用于跳出整个循环,执行循环后面的代码。2.continue语句:经常用在循环语句中,用于跳出当前的这个循环(或者是跳出本次循环),开始下一次循环的执行。-11-实验二:java基础(二)一、面向对象程序设计(ObjectOrientedProgramming,OOP;ObjectOrientedDesign,OOD)什么是面向对象?在面向对象程序设计中有两个重要的概念:类(class)与对象(object)。1、类:类是一种抽象的概念,类中包含了数据(通常使用名词来表示)与对数据的操纵(通常使用动词来表示)。比如说人就是一种抽象的概念,人具有姓名、年龄、身高等数据,还有吃饭、跑步等操纵数据的动作。2、对象:对象是一种具体的概念,是类的一种具体表示方式。比如说人是一个类,而张三、李四、王五等具体的人就是对象。3、类所包含的内容,类一共包含两部分内容:a)数据,数据在类中称作属性(Property或者Attribute)或者叫成员变量(Membervariable)。b)对数据的操纵,这种操纵在类中称作方法(method)。二、类及方法的定义面向对象程序设计的三大基本特征:继承、封装、多态封装:类包含了数据与方法,将数据与方法放在一个类中就构成了封装。-12-1、类的定义:修饰符class类的名字{//类的内容(包含了属性与方法)}2、方法的定义:修饰符返回类型方法名称([参数1,参数2,参数3…]){//方法体}注意:1)main方法是整个Java程序的入口点,如果类的定义中没有main方法,则程序无法执行。2)方法定义不能嵌套,也就说不能在一个方法中定义另外一个方法。方法只能定义在类中。3)关于方法的执行:首先需要定义方法,接下来就可以使用方法(调用方法),当方法调用完毕后,方法可以返回值。方法到底是否返回值是由方法的定义决定的。4)如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,换句话说,定义的多个类可以都不是public的。Main方法要放在public类中,如果没有public类,那Main方法放在哪个类中都可以。-13-3、生成对象:通过类来生成对象(通常使用new关键字来生成对象)。publicclassPerson{}类名变量名=new类名();Personperson=newPerson();Personperson2=newPerson();Personperson3=newPerson();4、方法的调用:方法调用需要通过对象来完成,方法调用的形式是:对象变量.方法名([参数值1