




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计项目化教程教学资源模块1——Java基础服从真理,就能征服一切事物Java程序设计项目化教程教学资源模块1——Java基础Java程序设计项目化教程教学资源模块1——Java基础服从真理,就能征服一切事物Java程序设计
模块1——Java基础主讲教师:成奋华模块1——Java基础
1.1
Java环境Java是1995年由SunMicrosystems公司推出的完全面向对象的编程语言充分吸取了C++语言的优点,采用了程序员所熟悉的C和C++语言的许多语法去掉了C语言中指针、内存申请和释放等影响程序键壮性的部分跨平台:解释执行而不是编译执行的运行环境Java程序设计
模块1——Java基础主讲教师:成奋华模块1——Java基础
1.1
Java环境Java是1995年由SunMicrosystems公司推出的完全面向对象的编程语言充分吸取了C++语言的优点,采用了程序员所熟悉的C和C++语言的许多语法去掉了C语言中指针、内存申请和释放等影响程序键壮性的部分跨平台:解释执行而不是编译执行的运行环境1.关于JavaJava2有以下几个版本:(1)J2ME(Java2MicroEdition)针对嵌入式技术。(2)
J2SE(Java2StandardEdition)针对桌面计算机开发。(3)
J2EE(Java2EnterpriseEdition)针对企业级的应用解决方案(主要有JDBC、CORBA、EJB、JSP、JavaServlets以及对XML的支持)。2.Java程序的特点
简单性面向对象分布性鲁棒性安全性体系结构中立可移植性解释执行高性能多线程动态性
3.
Java编程环境JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvironment),许多Java工具和Java基础的类库
javac:Java语言编译器,生成Java字节码,.class文件。java:Java字节码解释器。javadoc:类帮助文档生成器。jar:打包工具。javap:Java字节码分解程序,本程序返回Java程序的成员属性及方法等信息。javaAppletViewer:小应用程序浏览器工具,用于测试并运行Applet小程序。javaDebuggerAPI:Java调试工具。
3.
Java编程环境Java程序的编辑可以使用任何一种文本编辑器,例如:记事本、word等,只要把编辑好的文件保存为.java文件。集成开发环境:JBuilder和JCreatorPro当要用到某些自己定义的类时,必须指明它们存放目录,这就需要设置环境变量参数CLASSPATH和PATH。在“我的电脑”上单击右键,选择“属性”|“高级”|“环境变量”,在系统变量中编辑CLASSPATH和PATH4.Java应用程序和Java小程序
Java应用程序JavaApplicationJava小程序JavaApplet基于窗口的应用程序(图形用户界面)控制台应用程序(基于字符界面)在支持Java的平台上通过解释器Java.exe独立运行程序可在任何操作系统下执行驻留在本地机器的硬盘上需要执行时把它从硬盘上装载到内存并执行嵌入在HTML编写的Web页面中由游览器内含的Java解释器解释运行
将远程服务器上的Applet下载到本地机器上后再运行HyperTextMarkLanguage超文本标记语言
1.2Java语言基础
项目2判断一个数是否是回文数
1.分隔符
注释非执行语句提高程序的可读性Java程序有两类注释:实现注释(implementationcomments):注释代码或者实现细节行注释://注释内容多行注释:/*注释内容*/文档注释(documentcomments):描述Java的类、接口、构造器,方法,以及字段(field)
/**注释内容*/一个注释对应一个类、接口或成员
1.2Java语言基础
项目2判断一个数是否是回文数
1.分隔符空白符空格符、回车符、换行符和制表符等多个空白符与一个空白符的作用相同普通分隔符:具有确定的语法含义花括号“{}”,用于复合语句和数组的初始化以及定义类、方法等;分号“;”,用于语句结束;逗号“,”,用于在变量说明时分隔各个变量和方法中各个参数;冒号“:”,用于分隔标号和语句。
项目2判断一个数是否是回文数
2.关键字和标识符abstractbooleanbreak
bytecasecatchcharclassconst
*continuedefaultdodoubleelseextendsfalsefinalfinallyfloatforgoto
*ifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransient
truetryvoidvolatilewhile关键字:又称保留字,是Java语言本身使用的标识符,有特定的语法含义项目2判断一个数是否是回文数
2.关键字和标识符标识符以字母、下划线“_”、美元符“$”开始后面跟字母、下划线、美元符和数字区分大小写关键字不能用来做标识符,见名知意约定类名StudentStringBufferURL方法名getStudentName()项目2判断一个数是否是回文数
3.数据类型简单数据类型整数类型:byte,short,int,long实数类型:float,double字符类型:char布尔类型:boolean复合数据类型包括:数组类:class接口:interface精度越来越高项目2判断一个数是否是回文数
4.
运算符和表达式运算符算术运算符:+-++--*/%关系运算符:<<=>>===!=逻辑运算符:!&&||位运算符:~&|^<<>>>>>赋值运算符:=+=-=*=/=%=&=|=^=<<=>>=>>>=条件运算符:?:
分量运算符:.下标运算符:[]实例运算符:instanceof方法调用运算符:()内存分配运算符:new强制类型运算符:(类型)
项目2判断一个数是否是回文数
4.
运算符和表达式表达式由操作数和运算符按一定的语法形式组成的符号序列。表达式的值:运算后产生的确定的值。表达式的类型:表达式的值的类型。常量或变量是最简单的表达式,其值即该常量或变量的值。表达式的运算按照运算符的优先级顺序从高到低进行。不同的类型的数据进行混合运算时:Java会将不同的类型的数据转换成相同的类型,再进行运算
项目2判断一个数是否是回文数
4.
运算符和表达式自动类型转换
强制类型转换
占用内存较少短数据类型(低精度)占用内存较多长数据类型(高精度)inti=10;charj=(char)i;inti=10;longj=10,k=i+j;Java的方法
项目2判断一个数是否是回文数
4.
运算符和表达式数字转换成字符串
Double.toString(double)Float.toString(Float)Long.toString(Long)Integer.toString(Integer)Short.toString(Short)Byte.toString(Byte)字符转换成数字Double.parseDouble(string)
Float.parseFloat(string)
Long.parseLong(string)
Integer.parseInteger(string)Short.parseShort(string)
Byte.parseByte(string)
项目2判断一个数是否是回文数
5.
语句方法调用语句
表达式
a=b+c;复合语句:用{}括起来的多条语句
if(a>b){a=1;b=0;}流程控制语句:选择结构语句和循环控制结构语句
package语句和import语句
package声明包语句必须作为Java中的第一条可执行语句package包名;如果源程序中省略了package语句,源程序所定义命名的类被隐含地认为是无名包的一部分,即源程序中定义命名的类在同一包中
Java包是由.class文件组成的一个集合
项目2判断一个数是否是回文数
5.
语句import语句引入包实现了在编译单元中使用外部类和接口的机制import语句只指明要用到的类所在的位置,以便能在用到时可以加载必须写在package语句和源程序其它语句之间Java包含了130多个包,如:java.lang:Java语言核心包,包含所有的基本语言类,这个包由编译器自动引入。java.applet:包含所有实现小程序的类。java.awt:包含抽象窗口工具集中的图形、文本、窗口GUI类。java.io:包含所有的输入输出类。java:包含所有实现网络功能的类。java.util:包含有用的数据类型类。
项目2判断一个数是否是回文数
6.选择控制语句(1)if-else语句if(条件表达式)语句组1;else语句组2;(2)switch语句switch(表达式){case值1:语句1;break;case值2:语句2;break;…case值n:语句n;break;[default:语句;]}Switch语句switch提供了一个多路分支是一个特殊的if--elseif结构只允许比较一个元素switch中表达式类型只能是:char,byte,int,shortcase后面的值应该是常量,各case子句中的值应是不相同的。每一个case结尾的break:使解释器退出switch语句体如果没有break语句,switch语句会从表达式求出的值相同的case标签开始执行,直到switch语句体结束为止一般使用break语句,但return与throw也有相同的功能。项目2判断一个数是否是回文数
6.选择控制语句项目3求素数
1.循环控制语句
for语句for(表达式1;表达式2;表达式3){循环体
}先执行表达式1进行初始化操作,然后计算机表达式2的值,表达式2的值必须是逻辑值,为真执行循环体,再计算表达式3的值,然后再判断表达式2的值,如此循环反复,直至表达式2的值为假跳出循环。表达式1、表达式2和表达式3都可以省略,但里面的两个分号不能省略。for语句一般用于循环次数确定的情况。项目3求素数
1.循环控制语句while语句while(条件表达式){循环体}先判断条件是否为真,如果为真就进入循环,如果为假可能一次循环也不执行
do-while语句do{循环体}while(条件表达式);先执行循环体语句再进行判断,所以至少要执行一次循环项目3求素数
2.break、continue和returnbreak语句可用于switch多路分支语句和循环语句中,其作用是跳出switch或强行结束循环。continue语句只能用于循环语句中,其作用是结束本轮循环开始下一轮循环。return语句:return表达式;return结束方法的调用,并返回一个确定的值在一个方法中可以有多个return语句,但每次调用只可能有一个return语句被执行。嵌套调用:在一个方法的调用中,该方法的实现部分又调用了另外的方法。递归调用:在一个方法中如果有调用该方法自身的情况时称为递归调用。将一个复杂的问题化简成解决方法相同但稍微简单的问题,即所谓“递”。问题化到最简时,再逆向回代,求出结果,即所谓“归”。递归设计两个要素:1.确定递归步骤,将要求解的原问题分解为一个或多个与原问题性质相同但规模较小解决方法与原问题相同的子问题,使子问题越来越简单,越来越接近终止条件,以保证经过有限次递归步骤后子问题能达到递归出口。2.确定递归出口,找出一个或多个无须分须再分解、可直接示解的最小子问题(递归终止条件)。项目4随机生成学生数据并显示最低学生信息
1.数组定义与使用数组是Java语言中的一种复合数据类型是通过下标定位的同类型数据的集合一个数组中每个元素的数据类型相同基本类型对象类型数组类型数组要经过声明、分配内存及赋值后才能使用(1)数组声明语法:数组元素类型数组名[];数组元素类型[]数组名;数组元素类型数组名[][];数组元素类型[][]数组名;(2)数组分配内存数组名=new数组元素类型[数组元素个数];(3)数组元素初始化数组元素的类型是基本类型:可略数组元素的类型是对象类型:必须调用类的构造方法来初始化
(4)数组元素的引用:下标下标从0开始,一个长度为n的数组,其下标范围是0~n-1下标必须是整形的值,短整型、字节型和字符型的值也可以作为数组的下标越界检查
intscore[];chara[][];
score=newint[2];a=newchar[2][3];score[]={1,2};a[][]={{1,2},{3,4},{5,6}};项目4随机生成学生数据并显示最低学生信息2.Math类Math类是一个最终类,它包含了常用的科学计算方法,这些方法都是静态方法(类方法),可以通过类名直接调用。staticfinaldoublecos(doublea):余弦函数staticfinaldoublesin(doublea):正弦函数staticfinaldoubleexp(doublea):以e为底的指数staticfinaldoublelog(doublea):以e为底的对数函数staticfinaldoublesqrt(doublea):平方根函数staticfinaldoublerandom():随机函数,返回0.0至1.0之间的值123MM-1s每隔N个出列每隔N个出列如此循环,直到最后剩下1个大王……项目5约瑟夫问题图解项目5约瑟夫问题
1.String类String类用于表示Java中的字符串常量字符串一旦被创建,其值就不能再被改变用双引号引起来的一系列字符
构造方法常用的有:String():新建一个空字符串对象,字符串长度为0。String(Stringoriginal):用一个已经存在的字符串常量创建一个新String对象,该对象内容与给出的字符串一致。String(char[]value):用指定字符数组value来创建一个字符串对象,字符串对象中的内容为字符数组中的内容。String(StringBufferbuffer):利用一个已经存在的StringBuffer对象来创建一个新的String对象。访问字符串方法intlength():获得当前字符串中的字符个数。charcharAt(intindex):获取字符串指定index位置上的字符。Stringsubstring(intbeginIndex):获得从指定处开始到最后的子串。Stringsubstring(intbeginIndex,intendIndex):获得指定范围内的子串。voidgetChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin):将一个字符串从srcBegin到srcEnd位置子串复制到数组dst中。intindexOf(intch):查找给定的字符ch在字符串中第一次出现的位置。如果找不到返回-1。intlastindexOf(intch):查找给定的字符ch在字符串中最后一次出现的位置。如果找不到返回-1。intindexOf(Stringstr):查找给定的字符串str在字符串中第一次出现的位置。如果找不到返回-1。intlastindexOf(Stringstr):查找给定的字符串str在字符串中最后一次出现的位置。如果找不到返回-1。项目5约瑟夫问题
1.String类修改字符串方法Stringcontact(Stringstr):将当前字符串对象与给定的字符串str连接起来。Stringreplace(charoldChar,charnewChar):把字符串出现的所有oldChar字符全部用newChar替换。StringtoUpperCase():将字符串内的所有字符改为大写。StringtoLowerCase():将字符串内的所有字符改为小写。其它方法booleanequals(Strings):将当前字符串与指定的s进行比较,如果长度和内容完全一致就返回true,否则返回false。booleanequalsIgnoreCase(Strings):将当前字符串与指定的s忽略大小写比较。intcompareTO(Stringstr):将当前字符串与指定的str按字典顺序比较大小,相等返回0,如果该字符串按字典顺序小于参数字符串把返回值小于0,否则大于0。intcompareTOIgnoreCase(Stringstr):将当前字符串与指定的str按字典顺序忽略大小写进行比较。与运算符“==”的比较不同“==”比较两个对象是否引用同一个实例equals()和equalsIgnoreCase()比较两个字符串对应的每个字符值是否相同
项目5约瑟夫问题
1.String类项目5约瑟夫问题
2.StringBuffer类(1)构造方法StringBuffer():创建一个不包含字符且初始容量为16个字符的StringBuffer对象。StringBuffer(intcapacity):创建一个不包含字符且初始容量为capacity的StringBuffer对象。StringBuffer(Stringstr):创建一个StringBuffer对象,该对象包含str字符串。(2)访问字符串方法intlength():返回StringBuffer对象当前的字符个数。intcapacity():不需要另外分配内存的情况下,StringBuffer对象可以存储的字符个数。voidensureCapacity(intminCapacity):允许指定StringBuffer对象的最小容量。voidsetLength(intnewLength):允许指定StringBuffer对象可以增加或减少的容量。charcharAt(intindex):返回StringBuffer对象中指定位置index上的字符。(3)修改字符串方法voidsetCharAt(intindex,charch):将StringBuffer对象中指定位置index上的字符设置为ch。stringBufferappend(Stringstr):在已有字符串末尾添加字符串str。stringBufferinsert(intoffset,Stringstr):在指定位置处插入str。1.3面向对象Java
Java是一种纯面向对象的程序设计语言,类和对象是它的核心和本质类实际上是定义了一种新数据类型对象是类的实例化
属性:类的共同特征、特性值:属性的值方法:对象的动作,用于操作属性的值人类属性:姓名、性别、职业……方法:吃饭……李白男诗人……章子怡女演员……奥巴马男美国总统……项目6职员类Employee
1.
面向对象的三大特征(1)继承(inheritance)指新的类可以获得已有类(称为基类或父类)的属性和行为,称新类为已有类的派生类(或子类)。有助于解决软件的可重用性问题程序结构清晰降低了编码和维护的工作量(2)封装(encapsulation)信息隐蔽技术利用抽象数据类型将数据和基于数据的操作封装在一起将对象的使用者和设计者分开使用者不必知道行为实现的细节,只须使用设计者的提供的消息来访问对象。封装的定义:清楚的边界,所有对象的内部信息被限定在这个边界内;接口即对象向外界提供的方法,外界可以通过这些方法与对象进行交互;受保护的内部实现,即软件对象功能的实现细节不能从类外访问。Java语言通过类来实现封装(3)多态(polymorphism)一棵继承树中的类中可以有多个同名但不同方法体以及不同形参的方法。静态多态(编译时多态):在编译阶段,具体调用哪个被重载的方法编译器会根据参数的不同来表态确实调用相应的方法。方法重载动态多态(运行时多态):由于派生类继承了基类所有的属性(私有的除外),所以派生类对象可以作为基类对象使用。程序中凡是使用基类对象中的地方,都可以用派生类对象来代替。一个对象可以通过引用派生类的实例来调用派生类的方法。方法重写(1)定义语法[修饰符]class类名[extends父类名][implements接口名列表]{[声明成员变量;][声明成员方法;]}一般类只有两种访问权限public(公共):可以在不同的包中引用默认(友好):只能在同一个包中引用内部类:一个类可以定义在另一个类的内部内部类可以有private和protected权限。public(公共)private(私有)protected(保护)abstract(抽象)final(最终类)public、protected、privatefinal(方法不能重写)static(静态)native(集成其它语言代码)synchronized(同步,控制多个线程并发访问)public、protected、privatefinal(常量)、static(静态)transient(暂时,用于对象存档)Volatile(易变,用于并发线程共享)
(2)类成员的访问权限public:在所有包内可见protected:在同一个包内及其子类(不同包)缺省:在同包内可见privateprotected:在本类及基子类可见private:仅在本类内可见(3)对象的定义及使用对象的定义包括声明、实例化和初始化类名对象名=new类名([参数列表]);通过运算符“.”可以实现对成员变量的访问和成员方法的调用。对象名.变量名;对象名.方法名;注意:如果成员变量和成员方法使用static修饰,它们成为静态成员也称类成员。静态成员存储于类的存储区,属于整个类而不属于一个具体的类对象。同一个类的所有对象所访问的静态成员都是同一个静态方法只能处理静态变量。调用静态成员语法是:类名.静态变量名;类名.静态方法;null、this与SuperJava系统默认,每个类都缺省地具有null、this与Super三个属性,在任意类中都可以不加说明而直接使用它们。null表示“空”,代表一个什么也没有的“空”值。在声明一个对象但尚未为其开辟内存单元时可以指定这个对象为null。this表示当前对象本身,代表了当前对象的一个引用。对象的引用:对象的另一个名字通过引用可以顺利地访问到对象,包括访问、修改对象的属性、调用对象的方法。super表示的是当前对象的直接基类,是当前对象的直接基类的引用。super的使用有三种情况:访问基类被隐藏的成员变量:super.variable;调用基类中被重写的方法:super.Method([paramlist]);调用基类的构造函数:super([paramlist]);注意:super和this不能用于静态方法中main()方法中,不能使用super和this项目7一个简单的实现继承的程序
1.构造方法构造方法的作用是为类的成员属性赋初值构造方法名与类名相同;构造方法不返回任何值,也没有返回类型,即使是void也不行;每一个类可以显式定义零个或多个构造方法,如果没有显式定义构造方法,Java会自动提供一个无参构造方法,为类的成员属性赋数据类型默认值;
构造方法在创建对象时自动执行,一般不能显式地直接调用。构造方法的继承遵循如下的原则:若父类是无参数的构造方法,则子类无条件地继承该构造方法。
若子类无自己的构造方法,则它将继承父类的无参构造方法作为自己的构造方法:若子类有自己的构造方法,则在创建子类对象时,它将先执行继承自父类的无参构造方法,然后再执行自己的构造方法。若父类是有参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来调用它,但这个调用语句必须是子类构造方法的第1个可执行语句。
项目7一个简单的实现继承的程序
1.构造方法项目7一个简单的实现继承的程序2.继承子类不能继承父类中访问权限为private的成员属性和方法。在Java语言中只允许单继承,每一个类只能有一个父类一个类允许同时拥有多个子类父类:是所有子类的公共成员属性和公共成员方法的集合子类:是父类的特殊化,是对公共成员属性和成员方法的功能、内涵方面的扩展和延伸。单继承形成了一棵继承树
类的继承具有传递性,即子类继承父类的所有非私有成员,也继承父类的父类类直至祖先的所有非私有成员。
车汽车机动车非机动车交通工具有轮子带动力驱动的车不带动力驱动的车两轮非机动车三轮非机动车能洒水的汽车带灭火工具的汽车带医疗工具的汽车继承举例图解父亲的玉super.父类成员继承继承classA{inti=1,j=2;}classBextendsA{intj=3;
打印i;//父亲的i打印j;//儿子的j打印super.j;//父亲的j}项目8队列图解在队头出队列在队尾进队列项目8一个数字队列实现程序1.
接口是若干完成某一特定功能的没有方法体的方法(抽象方法)和常量的集合只指定类必须做什么,而不是如何做了解对象的交互界面,而无须了解对象所对应的类;指明多个类需要实现的方法;实现不相关类的相同行为,而无须考虑这些类之间的关系。接口的定义:接口声明和接口体。[public]interface接口名[extends父接口名]{}extends:一个接口可有多个父接口,用逗号隔开,而一个类只有一个直接父类。接口体包括常量的定义和方法的声明。接口的实现implements:一个类实现某个接口在类体中可以使用接口中定义的常量必须实现接口中定义的所有方法一个类可以实现多个接口,在implements子句中用逗号隔开接口类型的使用引用类型任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类所实现的接口的方法。实现继承的不足项目8一个数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 趣味试卷幼儿园数学试题及答案
- 注册土木工程师考试考试动态跟踪试题及答案
- 电动汽车综合性能评估考试及答案
- 麦田小屋测试题及答案
- 2025-2030中国厨房装置行业市场发展趋势与前景展望战略研究报告
- 识别商务场景难点的试题及答案
- 解读2025年创业扶持政策中的税收优惠试题及答案
- 跨文化商务谈判中的策略运用试题及答案
- 电动汽车产品设计思路试题及答案
- 火灾爆炸考试题及答案
- 全球汽车产业发展现状与趋势
- T-COFA 0021-2022 渔用油电混合多旋翼无人机安全检查和维 护保养要求
- 2025贵州毕节市七星关区招聘城市社区工作者186人笔试备考题库及答案解析
- 2025届河北省“五个一”名校联盟高三下学期4月联考化学试题(含答案)
- 公安派出所优质建筑外观形象设计基础规范
- 电力排管检验批
- 世界民族音乐鉴赏之欧洲篇课件
- 深度学习人工智能在医疗图像处理中的应用课件
- 自动涂胶机机械系统设计和实现 机械制造自动化专业
- 安徽省历年中考数学试卷,2014-2021年安徽中考数学近八年真题汇总(含答案解析)
- 护工培训课件课件
评论
0/150
提交评论