2016最新java程序设计教程.ppt
《2016最新java程序设计教程.ppt》由会员分享,可在线阅读,更多相关《2016最新java程序设计教程.ppt(148页珍藏版)》请在三一办公上搜索。
1、J a v a 面向对象程序设计,珊瑚老师JAVA 学习交流群514167678,程序设计例题珊瑚老师,1 编程序,打印数字金字塔(输出阶数可变)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 11 2 3 4 5 6 7 8 7 6 5 4 3 2 1,相关知识点珊瑚老师,Java程序的起点main方法Java基本输入输出打包及导入循环语句,知识点1:main方法珊瑚老师,声明格式:public static void main(String args)注意事项:main方法必须属于一个类,不能独立存在于类外j
2、ava XXX 告诉编译器执行XXX类中的main方法程序执行过程就是main方法执行的过程,main方法执行完最后一条语句,则程序退出参数args:表示程序的执行参数,知识点2:控制台的输入和输出,程序想要与环境进行交互,必须包含输入输出操作:控制台方式标准输出设备(System.out)标准输入设备(System.in)图形界面方式,控制台输出(3.17,P76),Java使用System.out表示标准输出设备(默认为显示器控制台)println方法向标准输出设备打印一行字符串print 方法向标准输出设备输出参数指定的字符串printf 方法向标准输出设备输出指定格式的字符串print
3、f(String format,Object args)format:格式字符串args:实际参数值printf(“the sum of 1 and 2 is%d”,1+2);,控制台输出(3.17,P76),%d,%md(十进制整数)%o(八进制整数)%x,%X(十六进制整数)%f,%m.nf,%-m.nf(浮点)%e,%E,(指数)%g,%G(由数值大小和精度决定输出格式)%s(字符串)%c(字符)%b,%B(布尔),控制台输出(3.17,P76),控制台输入(2.3,P21),9,Java使用System.in表示标准输入设备,从标准输入设备(键盘)读入信息的方法:1.创建Scanner
4、对象()Scanner input=new Scanner(System.in);2.方法next(),nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble(),next-Boolean(),nextLine()分别获取String,byte,short,int,long,float,double,boolean 或一行文本.,Run,Run,ComputerAreaWithConsoleInput,ComputeAverage,知识点3:打包及导入,包(Package)是Java的程序组织方式,允许将不同的类组合
5、成较小的单元便于查找和使用类文件有助于避免命名冲突在使用许多类时,类和方法的名称很难决定。有时需要使用与其他类相同的名称。包基本上隐藏了类并避免了名称上的冲突允许在更广的范围内进行信息隐藏保护类、数据和方法:可以在包内定义类,而在包外的代码不能访问该类(数据或方法),“包将类名空间划分为更加容易管理的块,包既是命名机制也是可见性控制机制”,打包类(8.8,P226),想将一个类放入包中,就必须将包的名字放在源文件的开头,类定义代码前,语法:package 包名;package语句必须是程序的第一条语句如果源文件中没用package语句,该源文件会被放置在默认包中。(默认包是一个没有名字的包),
6、package mypackage;public class Calculate,类的导入(1.9,P14),一个类可以使用其所属包中的所有类,以及其它包中的所有public类访问其它包中的public类有两种方式:使用类的全路径名:date=new();使用import语句:import;(明确导入)import java.util.*;(通配导入)只能导入一个包中的所有类,其子包中的类不会被导入,静态导入,JDK5.0以来,import语句不但可以导入类,还可以导入静态方法和静态属性 import static.*;可以导入System类的所有静态方法和静态字段out.println(“h
7、ello”);,知识点4:循环语句,whiledo-whileforforeach,程序设计例题,2 编写程序,输入三个实数a,b,c,然后按递增顺序把它们输出,相关知识点,Java基础类型Java类型转换Java块判断语句,知识点1:数据类型,byteshortintlongfloatdoublecharboolean,数组枚举类接口,原始数据类型,引用数据类型,整型数据,整型数据简单来说就是整数,Java支持三种形式的整型常量的记法,分别是十进制、八进制和十六进制。十进制常数记法就是日常生活中用的整数的写法:如365,0,-29456。八进制常数记法只需要在前面加个0即可,如012表示十进
8、制数10.十六进制数记法是开头加上0 x或者0X,如0 x12表示十进制数18。-0X10表示十进制数-16。,整型数据(2.8,P25),整型变量按所占存储空间的不同可分为四种不同的类型:byte 8位(1字节)short 16位(2字节)int 32位(4字节)(默认)long 64位(8字节)(10L/10l)注意C和C+中,数据类型的长度与机器相关,而Java中数据类型的长度固定。Java中没有unsigned类型,浮点型数据(2.8,P25),浮点数可以看成数学上的实数。根据浮点型数据存储位长的不同,可分为:单精度浮点数(float):32位(4字节)1.25f/1.25F双精度浮点
9、数(double)64位(8字节)1.25(默认),数值数据类型表示范围,字符型数据(2.13,P35),Java使用单引号来标记字符常量,如A、r就是普通的字符常量(Unicode表)。字符可分为普通字符和特殊字符。控制字符就是一种特殊字符,是指回车、换行、制表等起控制作用的字符。特殊字符使用转义序列进行表示r 回车n 换行t 制表(Tab)、”,字符型数据,与C/C+不同,Java字符类型数据使用 Unicode进行编码,所以Java字符类型数据占用16位(2字节)内存空间,逻辑(布尔)类型(3.2,P55),布尔变量使用关键字boolean定义,用于保存一个逻辑结果布尔常量只有两个:tr
10、ue(真)和false(假)布尔类型值不能与整型相互转换C/C+中,整数中的零值可以和false互相转化,非零值则对应着true。在Java中是不可以的 if(x=0)op1 else op2,枚举类型,如果某个变量的取值只在一个集合之内,则可以使用枚举类型枚举类型的声明格式:enum Size SMALL,MEDIUM,LARGE,EXTRA_LARGE;枚举类型的变量声明:Size s=Size.MEDIUM,字符串(String)类型(2.15,P39),Java字符串就是一个Unicode字符序列,字符串直接量可以使用双引号括起的字符序列表示(“hello”)Java没有内置的字符串类
11、型,但在标准Java库中提供了一个预定义的String类表示字符串类型每个用双引号括起来的字符串都是String类的一个实例 eg String s=“”;String greeting=“Hello”;,字符串类型,字符串拼接:“+”检测字符串是否相等equals()方法检测两个字符串是否相等=则判断两个字符串是否存放在相同的位置,知识点2:类型转换及类型提升2.11,P32,运算符是否可以具有不同类型的操作数?如果两种类型兼容,则可以进行运算,运算时会自动将窄类型提升为宽类型(以数据表达范围为标准)boolean类型与其它类型是不兼容类型byte、char和short类型是平级类型byte
12、、char和 short 型值可提升为 int 型int可以提升到long型long型可以提升到float型float型可以自动提升为double型,类型转换及类型提升,对于表达式所有byte、short和char类型将被提升为int一个操作数为 long 型,整个表达式提升为 long 型一个操作数为 float 型,整个表达式提升为 float 型一个操作数为 double 型,整个表达式提升为 double 型,类型转换及类型提升,自动转化规则,类型强制转换,如果想要将宽类型值赋值给窄类型,则需要强制类型转换强制类型转换使程序将变量视为某种类型,尽管此变量中包含的是另一类型的数据floa
13、t c=34.89675f;/将 c 转换为整型(截尾取整)int b=(int)c+10;,知识点3:Java块,Java块(block)即复合语句,是指由一对花括号括起来的若干简单Java语句类块方法块语句块静态块块确定了变量的作用域方法块和语句块内声明变量的作用域由声明处开始,直到块结束,Java块,块可以嵌套在另一块中,但不能在嵌套的两个块中声明同名的变量public void main(String args)int n;int n;int k;,知识点4:判断语句,单向if双向ifif-else嵌套switch语句,if语句例题:猜生日,通过询问朋友五个问题,猜出他出生于一个月的那
14、一天,GuessBirthday,游戏的数学基础,19 10011.7 111.23 11101,36,switch-case 语句,switch-case 语句可用于替换多选 if-else语句在表达式可以得出多个值的情况下,使用 switch-case 语句会带来更好的效果switch-case 语句的语法为:switch(表达式)case 值1:操作 1 的语句;break;case 值2:操作 2 的语句;break;.case 值n:操作 n 的语句;break;default:默认语句;,表达式计算出的变量值只能是char,byte,short,或 int 类型,常量表达式,并且和
15、表达式计算出的值类型相同,break语句和default语句都不是必须的,switch-case 语句,这个结构的执行过程为:(1)求出switch括号内变量的值(2)将其值顺序地和n1、n2、n3 比较,如果变量值和某个n值相等,程序就转到这个ni后面的语句开始执行,遇到break语句则跳出整个switch语句(3)如果变量值和任何n值都不等,则执行default后面的语句,最后跳出switch结构(4)default 子句可有可无,static int daysInMonth(int month)int days;switch(month)case 2:days=28;break;case
16、 4:case 6:case 9:case 11:days=30;break;default:days=31;return(days);,获取各个月份的天数:,程序设计例题,3.打印n阶杨辉三角形,相关知识点,数组一维数组多维数组,知识点1:数组,在Java程序中,数组具有下列特点:同一数组中的所有元素均属于相同的数据类型,该数据类型称为数组的基本元素类型。数组一经创建,其元素个数就保持不变,这个长度称为数组的长度(length)。数组中的每一个元素均能借助于下标(index)来访问。数组元素的类型既可以是基本类型(如int,float等),也可以是复合类型(如String,Object,甚至
17、数组类型),从而可以产生对象数组、多维数组。,一维数组声明(6.2.1,P158),在Java语言中,一维数组变量声明方式如下:type arrayName;其中:type表示数组元素的类型,可以是8种基本数据类型之一,也可以是引用类型“”用于表明定义的是一个数组 arrayName就是所要声明的数组变量的名字,一维数组定义/创建(6.2.2,P158),在Java中,数组的创建必须使用“new”操作符,创建一维数组的语法格式如下:arrayName=new elementTypeARRAY_SIZE;其中:arrayName为已经声明的一维数组变量名elementType为数组的基类型,它必
18、须是声明array Name时指定的数组基类型或其子类型ARRAY_SIZE为整数类型,它指定了数组的长度数组一旦创建,其长度就不能改变。,数组长度(6.2.3,P159),每个数组对象都有一个名为length的属性保存数组的元素个数 arrayName.length,一维数组初始化(6.2.3,P159),创建数组后,如果没有对数组元素进行初始化,则数组元素被赋值为对应于该元素类型的默认值:数值类型数组中元素的默认值是0字符类型数组元素默认值为u0000布尔类型数组元素默认值为false对象数组中元素的默认值是null,一维数组初始化(6.2.5,P160),对于一维数组可采用如下方法进行初
19、始化:方法一:遍历数组元素进行初始化:int array=new int10;for(int i=0;i array.length;i+)arrayi=someValue;方法二:采用数组初始化列表进行数组创建和初始化,初始化列表中元素的数目就是数组的长度 boolean bArray=false,true,true,false;int iArray=0,1,2;,一维数组元素引用(6.2.4,P159),对数组的元素的访问可以通过下标进行:arrayNameindex;其中:arrayName是声明的数组名index是一个整型数值,用于表示要访问的元素下标(注意下标取值范围应该小于 arra
20、yName.length,0,length)),数组的处理,数组处理经常使用for循环(类型相同,次数固定)for(int i=0;iarray.length;i+)/arrayi相关操作也可以使用foreach循环for(type var:array)/var相关操作 一般用于数组不变的情况下,foreach循环(6.2.7,P161),for each,for each循环用来依次处理数组或集合中的每个元素而不必为指定下标而分心,for(variable:集合)循环体,语法,int a=2,3,3,4;for(int e:a)System.out.println(e);,示例,编写一个选择
21、排序演示程序,该程序将一个一维整型数组按从小到大的顺序排序后输出 算法思想:假设待排序数组长度为n,则进行如下操作:第一次从数组里面找出最小的元素,放在第一个元素(下标为0)的位置;第二次从剩下的元素里面找出最小的元素,放在第二个元素(下标为1)的位置,依此类推,共执行n趟。,/使用选择排序算法进行排序for(int i=0;i array.length;i+)for(int j=i+1;j array.length;j+)if(arrayj arrayi)/交换arrayj 与 arrayi的值int temp=arrayj;arrayj=arrayi;arrayi=temp;,数组的复制(
22、6.5,P166),数组复制就是将一个数组的内容拷贝到另一个数组中,复制后应该有两个一模一样的数组:int source=1,2,3,4,5int target=source;/?,数组的复制,数组复制有三种方法:a.利用循环语句逐个拷贝数组的每个元素int source=1,2,3,4,5int target=new intsource.length;for(int i=0;isource.length;+i)targeti=sourcei;,数组的复制,b.System类的静态方法arraycopy:arraycopy(sourceArray,src_pos,targetArray,tar
23、get_pos,length);sourceArray:源数组 src_pos:源数组复制起始位置 targetArray:目标数组 target_pos:目标数组存放起始位置 length:复制元素个数 eg:System.arraycopy(s,0,t,0,s.length);,数组的复制,c.使用clone方法 int source=1,2,3,4,5;int target=source.clone();注:调用clone方法要求数组的基本元素类型实现 Cloneable接口,多维数组,多维数组就是数组的数组,其数组基类型还是一个数组类型如果一个数组的基类型是一维数组则该数组称为二维数组
24、,如果一个数组的基类型为二维数组则该数组为三维数组,依此类推。在多维数组中访问一个元素要用到不止一个数组下标。,多维数组,多维数组的声明 elementType arrayName;同样的,定义三维数组的语法格式为:elementType arrayName;一般把多维数组各维自左向右依次称为第一维,第二维,多维数组,创建多维数组也要用到new运算符:arrayName=new elementType DIMENSION_1_SIZEDIMENSION_2_SIZE;其中:arrayName为二维数组的名字;elementType为数组的基类型,必须是声明 arrayName时指定的数组元素类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2016 最新 java 程序设计 教程
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5408795.html