电子商务解决方案设计_第1页
电子商务解决方案设计_第2页
电子商务解决方案设计_第3页
电子商务解决方案设计_第4页
电子商务解决方案设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子商务解决方案设计教案实验一: java 基础( 一)一、java 入门Java SE : java standard editionJava ME : java micro editionJava EE: java enterprise editionJava 是由 sun 公司推出(但 2010年被 oracle 公司收购, 收购价格:74 亿美元)从 j2se 、 j2me、j2ee 的演变,从 jdk5.0 开始称为 se、me、ee。1、jdk 的下载与安装Jdk:java development kit ( java 开发包)Jre:java runtime environmen

2、t(java 执行环境 )Jdk 包含了 jre 。下载过程见课堂演示。安装完成后运行:java - version如能显示版本信息,即表明 java 安装成功。Jdk1.4 jdk1.5(5.0) jdk1.6(6.0)设置环境变量:classpath path JAVA_HOME2、第一个 java 程序编写程序时可以是记事本、 ultraedit( 高级文本编辑工具 ) 、IDE( integrated development environment)。例 1-1 : Test 类public class Testpublic static vod main(String args)Sy

3、stem.out.println(“hello world!” );3、java 程序的编译与执行Java 程序的执行过程分为两步:( 1)编译: javac 文件名 .java(2)执行: java文件名(这是一个后缀为 class 的字节码文件)注意:修改过的原文件,要重新执行上述的( 1)(2)步骤。JVM(java virtual machine java 虚拟机) 来执行字节码文件。二、原生数据类型1、Java中的数据类型:1 ) 原生数据类型 ( Primitive Data Type )2)引用类型(对象类型) ( Reference Type )2. 变量与常量: 所谓常量,就

4、是值不会变化的量;所谓变量,就是值可以变化的量。3. 变量定义与赋值:(1)变量类型 变量名 ;变量名 = 变量值 ;int a ;a = 2 ;(2)变量类型 变量名 = 变量值 ;int a = 1 ;= 表示赋值,将等号右边的值赋给了左边的变量。4、变量名命名规则: 在 Java 中,变量名以下划线、字母、 $符号开 头,并且后跟下划线、字母、 $符号以及数字。总之, Java 中的变量 名不能以数字开头。5、注释:注释是给人看的,不是给计算机看的。Java中共有3种类型 的注释:1)单行注释:以 / 开头, / 后面的所有内容均被当作注释处理。2)多行注释:以 /* 开头,以 */ 结

5、束,中间的所有内容均被当作注释 处理。关于多行注释,需要注意的是,多行注释不能嵌套。3)另一种多行注释。用于产生 Java Doc 帮助文档。暂且不介绍/* 注释内容 */6、Java中的原生数据类型共有8种:1)整型:使用 int 表示。( 32位)2)字节型:使用byte表示。(表示-128127之间的256个整数)。3)短整型:使用 short 表示。( 16位)4)长整型:使用 long 表示。( 64 位)5)单精度浮点型:使用 float 表示。所谓浮点型,指的就是小数,也 叫做实数,比如 1.2 。6)双精度浮点型:使用 double 表示。双精度浮点型表示的数据范围 要比单精度

6、浮点型大。7)字符型:使用char表示(char是character的缩写)。所谓字符, 就是单个的字符表示,比如字母a,或者中文张,外面用单引号包围 上。比如 char a = B; char b = 张;8)布尔类型,使用 boolean 表示。布尔类型只有两种可能值,分别 是 true 与 false 。7、变量使用过程中应注意的问题:1)Java中的所有浮点类型默认情况下都是double。不能将double类 型的值赋给float类型的变量,即便该double类型的值处于float类型 的范围内也是不可以的。 总之,能否成功赋值取决于等号右边的值类 型与等号左边的变量类型是否一致。2)

7、如何将double类型的值赋给float类型的变量?答案就是(1)强制 类型转换,将double类型的值强制转换为float类型。(2)使用java 语言的支持。强制转换的语法: 类型 变量名 = (类型)变量值 ;3)变量在使用前必须要赋值;变量必须要声明其类型方可使用;变 量在使用前必须要定义,并且只能定义一次。4)如下代码无法通过编译:int a = 1;short b = a;a是int类型,b是short类型,int类型表示的数据范围要比short类型 大,不能将表示范围大的值赋给表示范围小的变量。5)如下代码可以通过编译:short a = 1;int b = a;a是short类

8、型,b是int类型,int类型表示的数据范围要比short类型 大,可以将表示范围小的值赋给表示范围大的变量。总结:可以将表示范围小的值赋给表示范围大的变量; 但不能直接将 表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实 现。上述内容验证见实例: test 、variable1 、variable2三、运算符1、算术运算符:1) 当有若干个变量参与运算时,结果类型取决于这些变量中表示范 围最大的那个变量类型。比如,参与运算的变量中,有整型 int ,有 双精度浮点型 double ,有短整型 short ,那么最后的结果类型就是 double 。2) int a = 1;int b

9、 = 2;double c = (double)a / b;上面的代码中,a与b都是整型,但是通过(double)a这种转换将a转换 为一个匿名的变量,该变量的类型是double,但是要注意:a本身依 旧是int类型,而不是double类型,这样,(double)a / b就是double 类型除以int类型,结果自然是double类型。3) 取模运算符:使用 %表示。int a = 5;int b = 3;int c = a % b;上面代码的运行结果是 2,因为5除以3结果是1余2。取模的规律:取模的结果符号永远与被除数的符号相同int a = 5;int b = -3;int c = a

10、 % b;被除数是 5,那么取模的结果是 2int a = -5;int b = 3;int c = a % b;被除数是 -5 ,那么取模的结果是 -2。上述内容验证见实例: variable32、关系运算符:关系运算符:大于( )、小于( =)、小于等于( =),关系运算的结果是个 boolean 值见实例: OperatorTest3、逻辑运算符: 重点讲解两个,逻辑运算符本身也返回一个 boolean 值。1) 逻辑与:使用 &表示,逻辑与是个双目运算符(即有两个操作数 的运算符),只有当两个操作数都为真的时候,结果才为真;其余情 况结果均为假。逻辑与表示的并且的意思。2) 逻辑或:使

11、用 | 表示,逻辑或也是个双目运算符,只有当两个操 作数都为假的时候,结果才为假;其余情况结果均为真。逻辑或表示 或者的意思。见实例: LogicTest4、关于变量的自增与自减运算。1)关于int b = a+,作用是将a的值先赋给b,然后再让a自增1 2)关于int b = +a ,作用是将a的值先自增1,然后将自增后的结 果赋给b。见实例: Variable45、条件运算符(三元表达式),其形式为: type d = a ? b : c; 具体化形式为: int d = 2 1 ? 3 : 4;注意: 轻量级的文本编辑器: UltraEdit 、Editplus 、vi 、vim、gvi

12、m 见实例: Test2四、流程控制语句1 、 if 语句 第一种形式:if( 布尔表达式 )/ 待执行的代码第二种形式:if( 布尔表达式 )/ 待执行的代码else/ 待执行的代码第三种形式:if( 布尔表达式 )/ 待执行的代码else if( 布尔表达式 )/ 待执行的代码else if( 布尔表达式 )/ 待执行的代码else/ 待执行的代码见实例: IfTest2、switch 语句:switch( 变量) / 此处的变量类型就目前所学内容来看,只能为 4种类型: byte, short, int, char 。case 常量 1:/ 待执行的代码break;case 常量 2:/

13、 待执行的代码break;case 常量 3:/ 待执行的代码break;default :/ 待执行的代码虽然 case 语句中的 break 是可选的,但在绝大多数情况下,如果没有 break , 程序的逻辑就会发生错误, 因此,通常情况下都需要加上 break 。见实例: SwitchTest3、循环控制语句Java中的循环控制语句一共有3种,分别是while ,dowhile以及for循环1)while 循环,形式为:while( 布尔表达式 )/ 待执行的代码2)dowhile循环,新式为:do/ 待执行的代码while( 布尔表达式 );while与dowhile之间的区别:如果布

14、尔表达式的第一次判断就为 false ,那么while循环一次也不执行;dowhile循环则会执行一次。 如果布尔表达式第一次判断为true,那么while循环与dowhile循环 等价。3)for 循环(使用最多的一种循环),形式为:for( 变量初始化 ; 条件判断 ; 步进 )/ 待执行的代码for 循环的执行过程:a)执行变量初始化b)执行条件判断。如果条件判断结果为假,那么退出 for 循环,开 始执行循环后面的代码;如果条件判断为真,执行 for 循环里面的代 码。c)执行步进。d)重复步骤 b。上述内容见实例: WhileTest 、DoWhileTest 、ForTestbre

15、ak语句:经常用在循环语句中,用于跳出整个循环,执行循环后面的代码。2. continue 语句:经常用在循环语句中,用于跳出当前的这个循环(或者是跳出本次循环),开始下一次循环的执行。实验二: java 基础( 二)一、面向对象程序设计 (Object Oriented Programming, OOP;ObjectOriented Design, OOD )什么是面向对象?在面向对象程序设计中有两个重要的概念:类 (class )与对象( object )。1、类:类是一种抽象的概念,类中包含了数据(通常使用名词来表 示)与对数据的操纵(通常使用动词来表示)。比如说人就是一种抽 象的概念,

16、人具有姓名、年龄、身高等数据,还有吃饭、跑步等操纵 数据的动作。2、对象:对象是一种具体的概念,是类的一种具体表示方式。比如说人是一个类, 而张三、李四、王五等具体的人就是对象。3、类所包含的内容,类一共包含两部分内容:a)数据,数据在类中称作属性( Property 或者 Attribute )或者叫成 员变量( Member variable )。b)对数据的操纵,这种操纵在类中称作方法( method)。二、类及方法的定义面向对象程序设计的三大基本特征:继承、封装、多态 封装:类包含了数据与方法, 将数据与方法放在一个类中就构成了封 装。1、类的定义:修饰符 class 类的名字/ 类的

17、内容(包含了属性与方法)2、方法的定义:修饰符 返回类型 方法名称(参数1,参数2,参数3)/ 方法体1)main方法是整个Java程序的入口点,如果类的定义中没有 main方 法,则程序无法执行。2)方法定义不能嵌套, 也就说不能在一个方法中定义另外一个方法。 方法只能定义在类中。3)关于方法的执行: 首先需要定义方法, 接下来就可以使用方法 (调 用方法),当方法调用完毕后,方法可以返回值。方法到底是否返回 值是由方法的定义决定的。4)如果一个 java 源文件中定义了多个类, 那么这些类中最多只能有一 个类是 public 的,换句话说,定义的多个类可以都不是 public 的。Main

18、方法要放在public类中,如果没有public类,那Main方法放 在哪个类中都可以。3、生成对象:通过类来生成对象(通常使用new关键字来生成对象)。public class Person类名 变量名 = new 类名 ();Person person = new Person();Person person2 = new Person();Person person3 = new Person();4、方法的调用: 方法调用需要通过对象来完成,方法调用的形式是:对象变量.方法名(参数值1,参数值2,参数值3.);关于方法的注意事项:1 ) 在方法定义中, 方法的返回类型与 return

19、后面的变量或常量类型 保持一致。2) 在方法调用时, 给方法传递的参数需要与方法定义时的参数保持 一致(参数个数一致,参数类型一致)。3) 方法定义时的返回类型与接收方法返回值的变量类型保持一致。public int add(int a, int b)return a + b; 方法定义时的参数叫做形式参数。int a = test.add(8, 3); 方法调用时所赋予的具体值叫做实际参数。4) 关键字 void 表示方法不返回值。如果方法不返回值, 那么声明方法的时候使用 void 关键字, 在方法定 义中可以有两种情况实现不返回值:a) 不使用 return 语句。b) 使用 retur

20、n ,但 return 后面没有任何值或者变量, return 后面只 有一个分号,表示退出方法,返回到方法的调用端。使用方式:return;上述内容见实例: Test5、属性的定义和使用: 类中的属性又叫做成员变量( member variable ),属性用英文表示 为 property 或者 attribute 。对象( Object )又叫做实例( Instance )。生成一个对象的过程又叫 做实例化。1) 命名约定a) 类:首字母大写,如果一个类名由多个单词构成,那么每个单词 的首字母都大写,中间不使用任何的连接符。比如 Person 类, MemberTes类。b) 方法:首字母

21、小写。如果一个方法由多个单词构成,那么第一个 单词的所有字母全都小写, 从第二个单词开始, 每个单词的首字母大 写。比如 add,addThreeInt 。c) 属性:命名约定与方法相同。比如 age,ageOfPerson。2) 属性需要定义在类中, 又叫做成员变量; 而定义在方法中的变量叫 做局部变量。3) 定义属性public class Person修饰符 类型 属性名称 ;4) 使用属性与方法一样,使用 . 运算符。首先需要生成类的实例,然后使用实例 +”. ”的方式来使用属性。比如:Person person = new Person();person.age 局部变量使用前必须要

22、声明并赋初值;成员变量使用前必须要声明, 但可以不赋初值。5) 成员变量与局部变量的联系与区别:a) 无论是成员变量还是局部变量,使用前都需要声明(定义)。b) 对于局部变量来说,使用前必须要初始化;对于成员变量来说, 使用前可以不初始化。 如果没有初始化成员变量就开始使用, 那么每 个类型的成员变量都有一个默认的初始值i. byte 、short 、 int 、long 类型的初始值为 0ii. float 、double类型的初始值为0.0iii. char类型的初始值 u0000 iv. boolean 类型的初始值为 false上述内容见实例: Person6、引用类型( refere

23、nce type ):引用类型是用在对象上的。一个 对象可以被多个引用所指向,但同一时刻,每个引用只能指向唯一的 一个对象。如果一个对象被多个引用所指向,那么无论哪个引用对对 象的属性进行了修改,都会反映到其他的引用当中。上述内容见实例: People 在该实例中用画图表示。1) 如果一个类包含了属性与方法,那么该类的每一个对象都具有自 己的属性,但无论一个类有多少个对象,这些对象共享同一个方法。2) 关于方法参数传递的总结:对于Java中的方法参数传递,无论传 递的是原生数据类型还是引用类型,统一是传值( pass by value )3) 什么类型的引用就能指向什么类型的对象,比如 Peo

24、ple类型的引 用就能指向People类型的对象,但不能指向Student类型的对象。比 如:正确People people = new People(); /People people = new Student(); / 错误上述内容见实例: ParamTest三、构造方法:构造方法( Constructor ):构造方法用于完成对象属性的初始化工 作。1、构造方法的特点:a) 构造方法的名字必须与类名完全一致(包含大小写)b) 构造方法没有返回值,连 void 也不能出现。c) 如果在定义一个类的时候,没有为类声明构造方法,那么 Java编 译器会自动为类添加一个没有参数且方法体为空的构

25、造方法 (默认的 构造方法)d) 如果在定义一个类的时候,为类声明了构造方法,那么Java编译器就不会再为类添加构造方法了。e) 不能显式调用类的构造方法,构造方法通常是通过new关键字隐式 调用。2、new关键字在生成对象时完成了三件事情:a) 为对象开辟内存空间。b) 调用类的构造方法。c) 将生成的对象的地址返回3、默认的构造方法:构造方法没有参数且方法体为空使用new来生成对象的时候,后面的小括号()表示构造方法的参数列表,如果构造方法不接收参数,那么小括号中的内容为空;如果构造 方法接收参数, 那么小括号中的实际参数就需要与构造方法定义中的 形式参数保持一致(参数数量一致、参数类型一

26、致、按照顺序逐一赋 值)。上述内容见实例: PersonTest四、方法的重构和重载( overload )1、方法的重构: 如果在子类中定义的方法与其直接超类(父类)的 某个方法有相同的名称和参数,则称该子类重构了该超类(父类)的 该方法。方法重构( Override ):子类与父类的方法返回类型一样、方法名称 一样,参数一样,这样我们说子类与父类的方法构成了重写关系。2、方法的重载:同一个类中,定义了两个或多个方法名字相同,但方法参数不同, 这就表明了方法间的重载关系。 方法参数不同有两层 含义: 1)参数个数不同。 2)参数类型不同。 注意:方法的返回值 对重载没有任何影响。上述内容见实

27、例:OverLoadTest 、OverLoadTest2、/ I 。宀注意: 方法重构与方法重载之间的关系: 重载发生在同一个类内部的两个或 多个方法。重构发生在父类与子类之间。五、继承( Inheritence ):1、定义及格式:Java是单继承的,意味着一个类只能从另一个类继 承(被继承的类叫做父类【基类, base class 】, 继承的类叫做子 类),Java中的继承使用extends关键字。格式: class 类名 extends 类名2、注意: 1)父类有的,子类也有2)父类没有的, 子类可以增加 3 )父类有的,子类可以改变4)构造方法不能被继承5)方法和属性可以被继承6)

28、在定义一个类的时候,如果没有显式指定该类的父类,那么该类就会继承于java.lang.Object 类(JDK提供的一个类,Object类是Java 中所有类的直接或间接父类)。上述内容见实例: Child 、 InheritenceTest六、多态:多态(Polymorphism):我们说子类就是父类(玫瑰是花,男人是人), 因此多态的意思就是:父类型的引用可以指向子类的对象。 但要注 意的是:这个父类型的引用在执行所指向子类的方法时, 该方法一定 是父类中存在的方法。上述内容见实例: PolyTest七、接口 ( interface ):1、接口的地位等同于 class ,接口中的所有方法

29、都是抽象方法。在声 明接口中的方法时,可以使用 abstract 关键字,也可以不使用。通常 情况下,都会省略掉 abstract 关键字。2、类可以实现接口。实现使用关键字 implements 表示,代表了某个 类实现了某个接口。一个类实现了某个接口, 那么该类必须要实现接口中声明的所有 方法。Java 是单继承的, 也就是说某个类只能有唯一一个父类; 一个类 可以实现多个接口,多个接口之间使用逗号分隔。上述内容见实例: Test3八、一些关键字:1、static 关键字:可以用于修饰属性,也可以用于修饰方法,还可 以用于修饰类(后面的课程讲)1)static 修饰属性:无论一个类生成了多

30、少个对象,所有这些对象 共同使用唯一一份静态的成员变量; 一个对象对该静态成员变量进行 了修改, 其他对象的该静态成员变量的值也会随之发生变化。 如果一 个成员变量是 static 的,那么我们可以通过 类名. 成员变量名 的方 式来使用它(推荐使用这种方式)。上述内容见实例: StaticTest2) static 修饰方法: static 修饰的方法叫做静态方法。对于静态方 法来说,可以使用类名 . 方法名的方式来访问。 注意:不能在静态方法中访问非静态成员变量; 可以在静态方法中访 问静态的成员变量。 可以在非静态方法中访问静态的成员变量。总结:静态的只能访问静态的;非静态的可以访问一切

31、。见实例: StaticTest52、final 关键字: final 可以修饰属性、方法、类。1) final 修饰类:当一个类被 final 所修饰时,表示该类是一个终态 类,即不能被继承。2)final 修饰方法:当一个方法被 final 所修饰时, 表示该方法是一个 终态方法,即不能被重写( Override )。3) final 修饰属性:当一个属性被 final 所修饰时, 表示该属性不能被 改写。上述内容见实例: FinalTest 、FinalTest2 、FinalTest33、包(package)。用于将完成不同功能的类分门别类,放在不同 的目录(包)下。包的命名规则:将公

32、司域名反转作为包名。 , com.myjjx (包名),对于包名:每个字母都需要小 写。如果定义类的时候没有使用package,那么Java就认为我们所定 义的类位于默认包里面( default package )。1)编译带有package声明的Java源文件有两种方式:a)直接编译,然后根据类中所定义的包名, 逐一手工建立目录结构, 最后将生成的 class 文件放到该目录结构中(很少使用,比较麻烦)。b)使用编译参数-d,方式为javac - d .源文件.java,这样在编 译后,编译器会自动帮助我们建立好包所对应的目录结构。2)有两个包名,分别是aa.bb.cc与aa.bb.cc.d

33、d,那么我们称后者为 前者的子包。见实例: PackageTest4、导入(import ),将使用package分离的各个类导入回来,让编译 器能够找到所需要的类。1)import 的语法: import com.myjjx.PackageTest1;2)import com.myjjx.*,表示导入 com.myjjx 包下面的所有类。3)import aa.bb.*并不会导入 aa.bb.cc 包下面的类。这时需要这样写:import aa.bb.*;import aa.bb.cc.*;4)关于 package、 import 、 class 的顺序问题:a)首先需要定义包(packag

34、e),可选b)接下来使用 import 进行导入,可选c)然后才是class或in terface 的定义。5)如果两个类在同一个包下面,那么则不需要导入,直接使用即可。见实例: PackageTest1 、 ImprotTest5、instanceof :判断某个对象是否是某个类的实例。 语法形式: 引用名 instanceof 类名(接口名) ,返回一个 boolean 值。见实例: InstanceofTest九、访问修饰符( access modifier )。1、public (公共的):被 public 所修饰的属性和方法可以被所有类 访问。2、protected (受保护的):被

35、 protected 所修饰的属性和方法可以 在类内部、相同包以及该类的子类所访问。3、private (私有的):被 private 所修饰的属性和方法只能在该类 内部使用4、默认的(不加任何访问修饰符):在类内部以及相同包下面的类 所使用。见实例: A、 B、C、D十、 java.lang.Object 类。java.lang 包在使用的时候无需显式导入,编译时由编译器自动帮助 我们导入。API (Application Programming Interface),应用编程接口。十一、 String 类1、对于 String 对象的相等性判断来说,请使用 equals() 方法,而不 要

36、使用 =。2、当使用+拼接字符串时, 会生成新的 String 对象,而不是向原有的 String 对象追加内容。3、String I = new String(“aaa” );禾口 String I =“aaa” 返回的地址不同,因为它们存储在不同的空间。见实例: StringTest 、 StringTest2十二、数组: (Array ):相同类型数据的集合就叫做数组。1、如何定义一维数组。type 变量名 = newtype 数组中元素的个数 ; 可以按照下列方式定 义长度为 10的数组:in t a = new in t10; 或者 int a = new in t10;2、 数组中的元素索引是从 0开始的。对于数组来说,最大的索引 = 数组的长度-1。见实例: A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论