《基本数据类型数组和枚举类型.pptx》由会员分享,可在线阅读,更多相关《基本数据类型数组和枚举类型.pptx(54页珍藏版)》请在三一办公上搜索。
1、买书,看书,弄明白,然后开始写程序。大错特错!资深程序员经验谈:读别人的程序,改别人的程序,写自己的程序!很狡猾,好像也不光彩,但这是学习编程的王者之路!,Q:学习一门编程语言的过程是什么?,Java语言程序设计,Java语言程序设计,今天的课程能够有助你更快的读别人的程序。,Java面向对象的程序设计,第二章:基本类型,数组和枚举类型,Java语言程序设计,为什么要我讲?这些好像是C的扫盲班。,1.标识符,关键字,Java语言程序设计,6,标识符:你给变量,类,方法,数组,文件等起的名字。关键字:某些你不能用的名字。,首先你要学会起名字。记住,有些名字你不能用,它们是关键字。,7,标识符以字
2、母、下划线“_”或美元符号“$”开始,随后可跟数字、字母、下划线或美元符号。大小写敏感,没有长度限制。,起名要与规则的。就好像你不能给你的孩子起名叫“王”,8,挑挑哪些是合法的,哪些不合法。,IdentifierthisoneUserNameUser_name_system_varl asdfghj$max8_value$book*c,Java语言程序设计,Java语言程序设计,注意!你起名字的时候千万不要和关键字重名。关键字是已经被Java使用的名字。,11,Java中的关键字:abstractbooleanbreakbytecasecatchcharclasscontinuedefault
3、dodoubleelseextendsfinalfinallyFloatforifimplementsImportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicReturnshortstaticsuperSwitchthisthrowthrowstransienttryvoidvolatilewhile synchronized,12,true,false和null,Java使用了,但没有列入关键字,所以你不能把它们派作其它用途。还有些关键字,如cast、future、goto、generic、inner
4、、operator、outer、rest、var等都是Java保留的关键字,不过现在还没有想好有什么意义。,注意,还有一些霸王条款!,Java语言程序设计,什么?你不想学了?想去学C+了?天下乌鸦一般黑,你以为别的编程语言能好到哪去吗?,以后你还会发现我有很多霸王条款。不要问我为什么,因为。这就是我!,学Java就要接受Java你的任务是了解它,使用它,爱它想都不要想改造它对它不合理的地方要假装看不见对它合理的地方要好好赞扬如果你实在受不了,可以学习其他编程语言其他编程语言也好不到哪儿去,或者更糟端正你的态度记住你不是来找茬的,资深程序员的忠告,Java语言程序设计,2.Java数据介绍,Ja
5、va语言程序设计,16,从存储数据的复杂度来分:基本数据类型:存储相对单一的数据(8种)引用数据类型:又称为组合类型,存储相对复杂的数据,也叫“复合数据类型”,Java数据分类 之一,17,18,表2.1 Java中的基本数据类型,19,Java语言使用国际字符集(Unicode)Unicode字符集定义了一套国际标准字符集通常的ASCII码是8位的,而Unicode字符集中的每个字符占16位,即2个字节,整个字符集共包括65336个字符,兼容ASCII,排在前面的256个字符就是ASCII码Unicode除了可以表示256个ASCII码外,还可以表示汉字、拉丁语、希腊字母、朝鲜语等,基本数据
6、类型的转换,精度由低到高排列(杯子由小到大)byte、short、char、int、long、float、double,转换原则1:由低到高时自动转换小杯子的水往大杯子里倒,不会出事!,int i=100;long j=i;,转换原则2:由高到低时强制转换大杯子的水往小杯子里倒,可能会溢出来!慎重!,double d=1234.123456487;float f=(double)d;/f=1234.1234,21,从存储的数据是否可以改变来分:常量:程序运行过程中保持不变,并且不可进行修改的量变量:用来存放数据且其值可以改变的量,Java数据分类之二,22,常量又分为两种,直接常量(值常量5种
7、)1.整型 122.浮点型2.13.布尔型true,false4.字符型A5.字符串型“asdfadf”,符号常量final double PI=3.1415926;final int MAX_VALUE=10000;,23,变量,每个变量都要有个名字(标识符)名字要有意义。如表示学生数量的变量,用studentNum 比用k更合适所有变量在使用之前必须被定义,24,变量的定义,int x;float y=3.14;long area,width,length;,格式:数据类型关键字 变量名=初始值;,3.从命令行输入输出数据,Java语言程序设计,输入基本型数据,Java语言程序设计,Sca
8、nner reader=new Scanner(System.in);double d=reader.nextDouble();boolean b=reader.nextBoolean();byte by=reader.nextByte();int i=reader.nextInt();,输出基本型数据,Java语言程序设计,System.out.println(“你好!);name=“张某某”System.out.print(“我的名字是”);System.out.println(name);m=3;sum=150;System.out.println(m+“个数的平均值+sum);/+将变
9、量,表达式等与字符串并置,一起输出,4.数组,Java语言程序设计,29,数组是一种引用数据类型是由数目固定、相同类型的元素组成的用数组名和下标唯一确定数组中的元素,30,一维数组,步骤一:声明数组步骤二:创建数组(有静态和动态之分),使用前的两个必须步骤,31,32,方式一:数据类型 数组名;方式二:数据类型 数组名;例如:int nums;int nums;,步骤一:声明,33,步骤二:创建(有静态和动态之分),静态声明的同时,创建,初始化(三合一)int intArray=2,4,6,8;动态用运算符new为数组分配空间nums=new int4;可以二合一(声明的同时创建)int nu
10、ms=new int4;,声明int nums;创建nums=new int4;,nums,了解内存的分配步骤,数组元素的使用,数组名【下标】如:num0,必须要在声明和创建后使用!,判断对错练习,36,关于数组的复制,37,int a1,a2;a1=new int4;a10=2;a11=4;a12=6;a13=8;a2=a1;,a1,2,4,6,8,a2,看看这次行不行,38,int a1,a2;a1=new int4;a2=new int4;a10=2;a11=4;a12=6;a13=8;a2=a1;,a1,2,4,6,8,a2,迟早被回收!,将一个对象赋值给另一个对象,只会使两个对象指向
11、相同的内存地址(引用)。,看看这次行不行,39,int a1,a2;a1=new int4;a2=new int4;a10=2;a11=4;a12=6;a13=8;a20=a10;a21=a11;a22=a12;a23=a13;,a1,2,4,6,8,a1,2,4,6,8,40,一维数组的复制方法总结,用循环语句复制数组的每一个元素for(int i=0;ia1.length;i+)a2i=a1 i;使用clone方法,如:int a2=(int)a1.clone();,41,使用System.arraycopy方法char a=a,b,c,d,e,f,b=1,2,3,4,5,6;System
12、.arraycopy(a,0,b,0,a.length);注:targetArray必须实现创建好使用Arrays.copyOf和Arrays.copyOfRange方法int a=10,20,30,40,50,60,b,c,d;b=Arrays.copyOf(a,10);c=Arrays.copyOfRange(a,3,5);,42,一维数组的排序与二分查找,自己动手,用C里学到的知识自己完成使用Arrays这个非常有用的类int a=12,34,9,23,45,6,45,90,123,19,34;Arrays.sort(a);int number=45;int index=Arrays.b
13、inarySearch(a,number);,43,几个有用的知识点与C/C+不同,Java对数组元素的下标要进行越界检查,以保证访问的安全性。用数组名.length取得数组长度用数组名.toString(数组名)可以得到转化成字符串的数组的所有元素,44,课后作业,枚举类型自学下载课件并复习调查等额本金和等额本息房贷计算方法,为下次上机及第一个报告做准备,45,二维数组:一维数组的数组,46,使用前的两个必须步骤(同一维数组):声明数组创建数组(有静态和动态(2种)之分),47,静态创建int a=1,2,3,2,3,4,3,4,5,1,2,3;,a,2,4,1,3,3,4,5,2,3,1,
14、2,3,48,声明int nums;动态创建(一步到位式)nums=new int43;使用nums01=2;nums12=4;,nums,2,4,动态创建(一步到位式),49,声明int nums;动态创建(分两步走式)nums=new int4;nums0=new int2;nums1=new int1;nums2=new int3;nums3=new int3;,nums,动态创建(两步走式),50,几点说明创建数组时,如果用一步到位式,则各个一维数组的长度必须一样;如果用分两步走式,则各个一维数组的长度可以不一样用数组名.length取得的是二维数组中一维数组的个数用数组名.toStr
15、ing()得到的是其中各个一维数组的引用,判断对错练习,51,52,二维数组举例,public class twoDimensionArray public static void main(String arg)int matrix=1,2,3,4,5,2,3,4,5,3,4,5,4,5,5 System.out.println(the length of matrix is+matrix.length);for(int i=0;i5;i+)(the length of matrix+i+is+matrixi.length);,53,public static int addMatrix(i
16、ntm1,intm2)int result=new intm1.lengthm10.length;for(int i=0;im1.length;i+)for(int j=0;jm10.length;j+)resultij=m1ij+m2ij;return result;public static int multiplyMatrix(intm1,intm2)int result=new intm10.lengthm2.length;for(int i=0;im1.length;i+)for(int j=0;jm20.length;j+)for(int k=0;km10.length;k+)resultij+=m1ik*m2kj;return result;,54,课后作业,下载课件并复习思考一维数组复制的方法能不能适用于二维数组,