还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验一:java基础
(一)《电子商务解决方案设计》教案
一、java入门Java SEjava standardeditionJava MEjava microeditionJava EE:java enterpriseeditionJava是由sun公司推出但2010年被oracle公司收购,收购价格:74亿美元)从j2se、j2me j2ee的演变,从jdk
5.0开始称为se、me、eeo
1、jdk的下载与安装Jdk:java developmentkit(java开发包)Jre:java runtimeenvironment(java执行环境)Jdk包含了jreo下载过程见课堂演示安装完成后运行java-version如能显示版本信息,即表明java安装成功设置环境变量classpath pathJAVAJOMEJdkl.4jdkl.
55.0jdkl.
66.
02、第一个java程序编写程序时可以是记事本、ultraedit(高级文本编辑工具)、IDEintegrated developmentenvironmentowhile(布尔表达式);while与do…while之间的区别如果布尔表达式的第一次判断就为false,那么while循环一次也不执行;do…while循环则会执行一次如果布尔表达式第一次判断为true,那么while循环与do…while循环等价3)for循环(使用最多的一种循环),形式为for(变量初始化;条件判断;步进)(〃待执行的代码)for循环的执行过程a)执行变量初始化b)执行条件判断如果条件判断结果为假,那么退出for循环,开始执行循环后面的代码;如果条件判断为真,执行for循环里面的代码c)执行步进d)重复步骤b上述内容见实例WhileTest DoWhileTestForTestbreak语句经常用在循环语句中,用于跳出整个循环,执行循环后面的代码
2.continue语句经常用在循环语句中,用于跳出当前的这个循环(或者是跳出本次循环),开始下一次循环的执行实验二java基础
(二)
一、面向对象程序设计(Object OrientedProgramming,OOP;ObjectOriented Design,00D)什么是面向对象?在面向对象程序设计中有两个重要的概念类(class)与对象(object)
1、类类是一种抽象的概念,类中包含了数据(通常使用名词来表示)与对数据的操纵(通常使用动词来表示)比如说人就是一种抽象的概念,人具有姓名、年龄、身高等数据,还有吃饭、跑步等操纵数据的动作
2、对象对象是一种具体的概念,是类的一种具体表示方式比如说人是一个类,而张
三、李
四、王五等具体的人就是对象
3、类所包含的内容,类一共包含两部分内容a)数据,数据在类中称作属性(Property或者Attribute)或者叫成员变量(Member variable)b)对数据的操纵,这种操纵在类中称作方法(method)o
二、类及方法的定义面向对象程序设计的三大基本特征继承、封装、多态封装类包含了数据与方法,将数据与方法放在一个类中就构成了封装
1、类的定义修饰符class类的名字(〃类的内容(包含了属性与方法))
2、方法的定义修饰符返回类型方法名称([参数1,参数2,参数3…])(〃方法体)注意1)main方法是整个Java程序的入口点,如果类的定义中没有main方法,则程序无法执行2)方法定义不能嵌套,也就说不能在一个方法中定义另外一个方法方法只能定义在类中3)关于方法的执行首先需要定义方法,接下来就可以使用方法(调用方法),当方法调用完毕后,方法可以返回值方法到底是否返回值是由方法的定义决定的4)如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,换句话说,定义的多个类可以都不是public的Main方法要放在public类中,如果没有public类,那Main方法放在哪个类中都可以
3、生成对象通过类来生成对象(通常使用new关键字来生成对象)public classPerson()类名变量名二new类名();Person person=new Person();Person person2=new PersonO;Person person3=new PersonO;
4、方法的调用方法调用需要通过对象来完成,方法调用的形式是对象变量.方法名([参数值1,参数值2,参数值3…;关于方法的注意事项1)在方法定义中,方法的返回类型与retwn后面的变量或常量类型保持一致2)在方法调用时,给方法传递的参数需要与方法定义时的参数保持一致(参数个数一致,参数类型一致)3)方法定义时的返回类型与接收方法返回值的变量类型保持一致public int add(int a,int b)return a+b;方法定义时的参数叫做形式参数int a=test,add8,3;方法调用时所赋予的具体值叫做实际参数4关键字void表示方法不返回值如果方法不返回值,那么声明方法的时候使用void关键字,在方法定义中可以有两种情况实现不返回值a不使用return语句b使用return,但return后面没有任何值或者变量,return后面只有一个分号,表示退出方法,返回到方法的调用端使用方式return;上述内容见实例Test
5、属性的定义和使用类中的属性又叫做成员变量member variable,属性用英文表示为property或者at tribute对象Object又叫做实例Instance生成一个对象的过程又叫做实例化o1命名约定a类首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都大写,中间不使用任何的连接符比如Person类,MemberTest类b)方法首字母小写如果一个方法由多个单词构成,那么第一个单词的所有字母全都小写,从第二个单词开始,每个单词的首字母大写比如add,addThreelntoc)属性命名约定与方法相同比如age,ageOfPersono2)属性需要定义在类中,又叫做成员变量;而定义在方法中的变量叫做局部变量3)定义属性public classPerson(修饰符类型属性名称;)4)使用属性与方法一样,使用.运算符首先需要生成类的实例,然后使用实例+”.”的方式来使用属性比如Person person=new Person();person,age局部变量使用前必须要声明并赋初值;成员变量使用前必须要声明,但可以不赋初值5)成员变量与局部变量的联系与区别a)无论是成员变量还是局部变量,使用前都需要声明(定义)b对于局部变量来说,使用前必须要初始化;对于成员变量来说,使用前可以不初始化如果没有初始化成员变量就开始使用,那么每个类型的成员变量都有一个默认的初始值i.byte、short intlong类型的初始值为0ii.float、double类型的初始值为
0.0iii.char类型的初始值\u0000iv.boolean类型的初始值为false上述内容见实例Person
6、引用类型reference type引用类型是用在对象上的一个对象可以被多个引用所指向,但同一时刻,每个引用只能指向唯一的一个对象如果一个对象被多个引用所指向,那么无论哪个引用对对象的属性进行了修改,都会反映到其他的引用当中上述内容见实例People在该实例中用画图表示注意1如果一个类包含了属性与方法,那么该类的每一个对象都具有自己的属性,但无论一个类有多少个对象,这些对象共享同一个方法2关于方法参数传递的总结对于Java中的方法参数传递,无论传递的是原生数据类型还是引用类型,统一是传值pass byvalue3什么类型的引用就能指向什么类型的对象,比如People类型的引用就能指向People类型的对象,但不能指向Student类型的对象比如People people=new People();//正确People people=new Student();〃错误上述内容见实例ParamTest
三、构造方法构造方法(Constructor)构造方法用于完成对象属性的初始化工作
1、构造方法的特点a)构造方法的名字必须与类名完全一致(包含大小写)b)构造方法没有返回值,连void也不能出现c)如果在定义一个类的时候,没有为类声明构造方法,那么Java编译器会自动为类添加一个没有参数且方法体为空的构造方法(默认的构造方法)d)如果在定义一个类的时候,为类声明了构造方法,那么Java编译器就不会再为类添加构造方法了e)不能显式调用类的构造方法,构造方法通常是通过new关键字隐式调用
2、new关键字在生成对象时完成了三件事情a)为对象开辟内存空间b)调用类的构造方法c)将生成的对象的地址返回
3、默认的构造方法构造方法没有参数且方法体为空使用new来生成对象的时候,后面的小括号()表示构造方法的参数列表,如果构造方法不接收参数,那么小括号中的内容为空;如果构造方法接收参数,那么小括号中的实际参数就需要与构造方法定义中的形式参数保持一致(参数数量一致、参数类型一致、按照顺序逐一赋值)上述内容见实例PersonTest
四、方法的重构和重载(overload)
1、方法的重构如果在子类中定义的方法与其直接超类(父类)的某个方法有相同的名称和参数,则称该子类重构了该超类(父类)的该方法方法重构(Override)子类与父类的方法返回类型一样、方法名称一样,参数一样,这样我们说子类与父类的方法构成了重写关系
2、方法的重载同一个类中,定义了两个或多个方法名字相同,但方法参数不同,这就表明了方法间的重载关系方法参数不同有两层含义1)参数个数不同2)参数类型不同注意方法的返回值对重载没有任何影响上述内容见实例OverLoadTest、0verLoadTest2注意方法重构与方法重载之间的关系重载发生在同一个类内部的两个或多个方法重构发生在父类与子类之间
五、继承(Inheritence)
1、定义及格式Java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫做父类【基类,base class],继承的类叫做子类),Java中的继承使用extends关键字格式class类名extends类名
2、注意1)父类有的,子类也有2)父类没有的,子类可以增加3)父类有的,子类可以改变4)构造方法不能被继承5)方法和属性可以被继承6)在定义一个类的时候,如果没有显式指定该类的父类,那么该类就会继承于java.lang.Object类(JDK提供的一个类,Object类是Java中所有类的直接或间接父类)上述内容见实例Child、InheritenceTest
六、多态多态(Polymorphism)我们说子类就是父类(玫瑰是花,男人是人),因此多态的意思就是父类型的引用可以指向子类的对象但要注意的是这个父类型的引用在执行所指向子类的方法时,该方法一定例ITTest类public classTestpublic staticvod mainString[]argsSystem.out.printin uhello world!”;
3、java程序的编译与执行Java程序的执行过程分为两步1编译javac文件名.java2执行java文件名这是一个后缀为class的字节码文件注意修改过的原文件,要重新执行上述的12步骤JVMjava virtualmachine java虚拟机来执行字节码文件
二、原生数据类型
1、Java中的数据类型1原生数据类型Primitive DataType2引用类型对象类型Reference Type是父类中存在的方法上述内容见实例PolyTest
七、接口(interface)
1、接口的地位等同于class,接口中的所有方法都是抽象方法在声明接口中的方法时,可以使用abstract关键字,也可以不使用通常情况下,都会省略掉abstract关键字
2、类可以实现接口实现使用关键字implements表示,代表了某个类实现了某个接口一个类实现了某个接口,那么该类必须要实现接口中声明的所有方法Java是单继承的,也就是说某个类只能有唯一一个父类;一个类可以实现多个接口,多个接口之间使用逗号分隔上述内容见实例Test
31、static关键字可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类(后面的课程讲)1)static修饰属性无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化如果一个成员变量是static的,那么我们可以通过类名.成员变量名的方式来使用它(推荐使用这种方式)上述内容见实例StaticTest2)static修饰方法static修饰的方法叫做静态方法对于静态方法来说,可以使用类名.方法名的方式来访问注意不能在静态方法中访问非静态成员变量;可以在静态方法中访问静态的成员变量可以在非静态方法中访问静态的成员变量总结静态的只能访问静态的;非静态的可以访问一切见实例StaticTest
52、final关键字final可以修饰属性、方法、类1final修饰类当一个类被final所修饰时,表示该类是一个终态类,即不能被继承2final修饰方法当一个方法被final所修饰时,表示该方法是一个终态方法,即不能被重写Overrideo3final修饰属性当一个属性被final所修饰时,表示该属性不能被改写上述内容见实例FinalTest FinalTest2FinalTest
33、包package用于将完成不同功能的类分门别类,放在不同的目录包下包的命名规则将公司域名反转作为包名WWW.myj jx.com,com.myj jx包名,对于包名每个字母都需要小写如果定义类的时候没有使用package,那么Java就认为我们所定义的类位于默认包里面default package01)编译带有package声明的Java源文件有两种方式a)直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,最后将生成的class文件放到该目录结构中(很少使用,比较麻烦)b)使用编译参数-d,方式为javac-d.源文件.java,这样在编译后,编译器会自动帮助我们建立好包所对应的目录结构2)有两个包名,分别是aa.bb.cc与aa.bb.cc.dd,那么我们称后者为前者的子包见实例PackageTest
4、导入(import),将使用package分离的各个类导入回来,让编译器能够找到所需要的类1)import的语法import com.myj jx.PackageTestl;2)import com.myj jx.*,表示导入com.myj jx包下面的所有类3)import aa.bb.*并不会导入aa.bb.cc包下面的类这时需要这样写import aa.bb.*;import aa.bb.cc.*;4)关于package、import、class的顺序问题:a)首先需要定义包(package),可选b)接下来使用import进行导入,可选c)然后才是class或interface的定义5)如果两个类在同一个包下面,那么则不需要导入,直接使用即可见实例PackageTestl ImprotTest
5、instanceof判断某个对象是否是某个类的实例语法形式:引用名instanceof类名(接口名),返回一个boolean值见实例InstanceofTest
九、访问修饰符(access modifier)public(公共的)被public所修饰的属性和方法可以被所有类访问
2、protected(受保护的)被protected所修饰的属性和方法可以在类内部、相同包以及该类的子类所访问
3、private(私有的)被private所修饰的属性和方法只能在该类内部使用
4、默认的(不加任何访问修饰符)在类内部以及相同包下面的类所使用见实例A、B、C、D
十、java.lang.Object类java,lang包在使用的时候无需显式导入,编译时由编译器自动帮助我们导入API(Application ProgrammingInterface),应用编程接口H\String类
1、对于String对象的相等性判断来说,请使用equals方法,而不要使用=
2、当使用+拼接字符串时一,会生成新的String对象,而不是向原有的String对象追加内容
3、String I=new Stringuaaav;和String I=aaa返回的地址不同,因为它们存储在不同的空间见实例StringTest StringTest2
十二、数组Array相同类型数据的集合就叫做数组
1、如何定义一维数组type口变量名二new type[数组中元素的个数];可以按照下列方式定义长度为10的数组int[]a=new int
[10];或者int a[]=new int
[10];
2、数组中的元素索引是从0开始的对于数组来说,最大的索引=数组的长度见实例ArrayT est
3、定义数组的第3种方式type口变量名二{new type口}{逗号分隔的初始化值列表};
4、Java中的每个数组都有一个名为length的属性,表示数组的长度length属性是public,final,int的数组长度一旦确定,就不能改变大小见实例ArrayT est
5、int[]a=new int
[10],其中a是一个引用,它指向了生成的数组对象的首地址,数组中每个元素都是int类型,其中仅存放数据值本身用画图表示!见实例ArrayTest2注意一维数组中存放原生数据类型和引用类型时的不同练习
1、ArrayTest
36、二维数组二维数组是一种平面的二维结构,本质上是数组的数组1)二维数组的定义方式type口口a二new type
[2]
[3];2)二维数组的初始化{{逗号分隔的初始化值列表},{逗号分隔的初始化值列表}};见实例ArrayTest4ArrayTest5练习ArrayTest
5、BubbleSortTest附
一、包装类(Wrapper Class)针对于原生数据类型的包装o所有的包装类(8个)都位于java,lang包下Java中的8个包装类分另U是Byte,Short,Integer,Long,Float,Double,Character,Booleano他们的使用方式都是一样的,可以实现原生数据类型与包装类型的双向转换见实例IntegerTest实验三一\IDE(Integrated DevelopmentEnvironment),集成开发环境1NetBeanSo.org/
2、JBuildero
3、MyEclipse(日蚀、月蚀)1)例在myeclipse中编写一个能打印“helloworld”字符串的程序,大家注意和以前文本编辑器的比较2)保存即编译、错误提示、运行、显示行号、基本属性修改、class文件的存放路径(不再关心)、compiler编译器的修改
二、集合框架
1、存储数据对象的集合集合中存放的依然是对象的引用而不是对象本身SortedSet图集合的接口
2、集合的实现类ArrayList1)集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中2)集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)实例见ArrayListTestl、ArrayListTest
2、ArrayListTest3ArrayListTest4ArrayListTest
52.变量与常量:所谓常量,就是值不会变化的量;所谓变量,就是值可以变化的量
3.变量定义与赋值
(1)变量类型变量名;变量名=变量值;a=2;
(2)变量类型变量名=变量值;int a=1;二表示赋值,将等号右边的值赋给了左边的变量
4、变量名命名规则在Java中,变量名以下划线、字母、$符号开头,并且后跟下划线、字母、$符号以及数字总之,Java中的变量名不能以数字开头
5、注释注释是给人看的,不是给计算机看的Java中共有3种类型的注释1)单行注释以〃开头,〃后面的所有内容均被当作注释处理2)多行注释以/*开头,以*/结束,中间的所有内容均被当作注释处理关于多行注释,需要注意的是,多行注释不能嵌套3)另一种多行注释用于产生Java Doc帮助文档暂且不介绍/**注释内容*/
6、Java中的原生数据类型共有8种1)整型使用int表示(32位)2)字节型使用byte表示(表示-128127之间的256个整数)〜3)短整型使用short表示(16位)4)长整型使用long表示(64位)5)单精度浮点型使用float表示所谓浮点型,指的就是小数,也叫做实数,比如
1.26)双精度浮点型使用double表示双精度浮点型表示的数据范围要比单精度浮点型大7)字符型使用char表示(char是character的缩写)所谓字符,就是单个的字符表示,比如字母a,或者中文张,外面用单引号包围上比如chara=B;char b=张;8)布尔类型,使用boolean表示布尔类型只有两种可能值,分别是true与false
7、变量使用过程中应注意的问题1)Java中的所有浮点类型默认情况下都是double不能将double类型的值赋给float类型的变量,即便该double类型的值处于float类型的范围内也是不可以的总之,能否成功赋值取决于等号右边的值类型与等号左边的变量类型是否一致2)如何将double类型的值赋给float类型的变量?答案就是⑴强制类型转换,将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类型,b是int类型,int类型表示的数据范围要比short类型大,可以将表示范围小的值赋给表示范围大的变量总结可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实现上述内容验证见实例test、variable!,、variable2
三、运算符
1、算术运算符1)当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型比如,参与运算的变量中,有整型int,有双精度浮点型double,有短整型short,那么最后的结果类型就是doubleo2)int a=1;int b=2;double c=doublea/b;上面的代码中,a与b都是整型,但是通过doublea这种转换将a转换为一个匿名的变量,该变量的类型是double,但是要注意a本身依旧是int类型,而不是double类型,这样,doublea/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%b;被除数是5,那么取模的结果是2inta=-5;int b=3;int c=a%b;被除数是-5,那么取模的结果是-2上述内容验证见实例variables
2、关系运算符关系运算符大于()、小于(、等于(==)不等于(!二)、大于等于
(二)、小于等于
(二),关系运算的结果是个boolean值见实例OperatorTest
3、逻辑运算符重点讲解两个,逻辑运算符本身也返回一个boolean值1)逻辑与使用表示,逻辑与是个双目运算符(即有两个操作数的运算符),只有当两个操作数都为真的时候,结果才为真;其余情况结果均为假逻辑与表示的并且的意思2)逻辑或使用||表示,逻辑或也是个双目运算符,只有当两个操作数都为假的时候,结果才为假;其余情况结果均为真逻辑或表示或者的意思见实例LogicTest
4、关于变量的自增与自减运算1)关于int b=a++,作用是将a的值先赋给b,然后再让a自增12)关于int b=++a,作用是将a的值先自增1,然后将自增后的结果赋给b见实例Variable
45、条件运算符(三元表达式),其形式为type d=ab:c;具体化形式为int d=213:4;注意轻量级的文本编辑器UltraEdit、Editplus、vi、vim gvim见实例Test2
四、流程控制语句
1、if语句第一种形式if(布尔表达式)|〃待执行的代码)第二种形式if(布尔表达式)(〃待执行的代码)else|〃待执行的代码)第三种形式if(布尔表达式).|〃待执行的代码)else if(布尔表达式)|〃待执行的代码)else if(布尔表达式)(〃待执行的代码)else(〃待执行的代码)见实例IfTest
2、switch语句switch(变量)〃此处的变量类型就目前所学内容来看,只能为4种类型byte,short,int,char(case常量1:〃待执行的代码break;case常量2:〃待执行的代码break;case常量3:〃待执行的代码break;default〃待执行的代码)虽然case语句中的break是可选的,但在绝大多数情况下,如果没有break,程序的逻辑就会发生错误,因此,通常情况下都需要加上break见实例SwitchTest
3、循环控制语句Java中的循环控制语句一共有3种,分别是while,do・-while以及for循环1)while循环,形式为while(布尔表达式)(〃待执行的代码)2)do…while循环,新式为do〃待执行的代码)。
个人认证
优秀文档
获得点赞 0