




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成都传智播客教育 讲师:任小龙,讲师:Will Email:,Java 基础下,成都传智播客教育 讲师:任小龙,学习目标,程序运行流程 顺序结构 分支结构 循环结构 break,continue关键字 方法 数组,成都传智播客教育 讲师:任小龙,顺序结构,如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后。,成都传智播客教育 讲师:任小龙,程序流程控制,每一种高级语言都会有语句,让计算机做一些更为复杂的事情,只不过表现形式不同。 分支结构(条件结构) 循环结构 控制循环结构,成都传智播客教育 讲师:任小龙,条件语句之if,三种格式: if(条件表达式) 执行语句; if(条件表达式) 执行语句; else 执行语句; ,if(条件表达式) 执行语句; else if (条件表达式) 执行语句; else 执行语句; ,成都传智播客教育 讲师:任小龙,条件语句之switch,格式: switch(表达式) case 表达式可能的结果值1: 执行语句; break; case 表达式可能的结果值2: 执行语句; break; . default: 执行语句; break;/一般不写 ,成都传智播客教育 讲师:任小龙,switch语句特点,switch语句选择的类型只有四种:byte、short、int 、char。(java5之前)。还支持 enum(jdk5), String(jdk7); case之间与default没有顺序。先执行第一个case,都没有匹配的case值执行default。 结束switch语句的两种情况:遇到break,switch语句执行结束。 如果匹配的case或者default没有对应的break,那么程序会从第一次匹配的case语句开始继续向下执行,运行可以执行的语句,直到遇到break或者switch结束为止。,成都传智播客教育 讲师:任小龙,循环结构,话说唐僧师徒四人还在21世纪继续闯关,一天:, 师徒四人来到数字王国: 第一关:求100以内正整数和? 于是,唐僧算 1 到 25的和;悟空算26到50的和;八戒算51到75的和;沙僧算76到100的和。 第二关:求1000以内正整数和? 于是,唐僧算 1 到 250的和;悟空算251到500的和;八戒算501到750的和;沙僧算751到1000的和。 第三关:求10000以内正整数和? 于是,唐僧算 1 到 2500的和;悟空算2501到5000的和;八戒算5001到7500的和;沙僧算7501到10000的和。 第四关:求100000以内正整数和? 。,成都传智播客教育 讲师:任小龙,三大循环结构,用于处理需要重复执行的操作; 根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落我们称为循环体; while:事先不需要知道循环执行多少次; do while:同上,只是至少要执行一次(先做,后判断); for:需要知道循环次数;,成都传智播客教育 讲师:任小龙,循环结构(while & do while),while语句 格式: while(条件表达式值为true) 执行语句; ,do while语句 格式: do 执行语句; while(条件表达式值为true);,do while特点是无论条件是否满足,循环体至少被执行一次。,循环里的条件表达式不能直接写false或直接写结果是false的表达式,不过可以使用变量来传递false值;,成都传智播客教育 讲师:任小龙,循环结构(for),格式: for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3)) 执行语句;(4) 执行顺序:(1) (2) (4) (3) (2) (4) (3),注: 1, for里面的3个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。 2, while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。 3, 最简单无限循环格式:while(true) , for(;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。,成都传智播客教育 讲师:任小龙,嵌套循环,嵌套循环:循环里套循环 假设外循环的循环次数是m次,内循环的循环次数是n次,那么内层循环的循环次数需要 m * n次。,成都传智播客教育 讲师:任小龙,流程控制1,break语句、 continue语句; break:终止该层循环; continue:跳过该层循环 注: :若这两个语句离开应用范围,存在是没有意义的。 :这个两个语句后面都能有语句,因为执行不到。 :continue语句是跳过本次循环,继续下次循环。 :标签的出现,可以让这两个语句作用于指定的循环。,成都传智播客教育 讲师:任小龙,流程控制2,使用循环标签; 在多层嵌套循环中,终止/跳过标签标记的外层循环的执行; break 或 continue ; 使用return 结束循环语句所在的方法;,成都传智播客教育 讲师:任小龙,循环,用三种循环分别求出: 1!+ 2!+.+10!阶乘和。 求出100以内3的倍数的数字和个数; 求出100以内前5个3的倍数的数字; 100 到200之间所有奇数的和;,成都传智播客教育 讲师:任小龙,方法(Method),方法含义和定义格式 方法重载及使用 使用return结束一个方法,我们的语言: 方法 等价于 函数,成都传智播客教育 讲师:任小龙,方法(Method),什么是方法? 一段可重复使用的代码段; 程序中完成独立功能的一段代码的集合。 Java中方法的格式:,修饰符 返回值类型 方法名(参数类型 形式参数1,参数类型 形式参数2,) 执行语句; return 返回值; 参数列表(参数的类型 ,参数的个数,参数的顺序),成都传智播客教育 讲师:任小龙,方法(Method),形式参数:在方法被调用时用于接收外界输入的数据。 实参:调用方法时实际传给方法的数据。 返回值:方法在执行完毕后返还给调用它的环境的数据。 返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回类型 void。 方法签名:方法名 和 方法的参数列表(能区别方法); java语言中调用方法:对象名.方法名(实参列表)。 实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配。 return 语句终止方法的运行并指定要返回的数据。,成都传智播客教育 讲师:任小龙,方法特点,它可以实现独立的功能; 必须定义在类里面; 它只有被调用才会执行; 它可以被重复使用; 方法结束后方法里的对象失去引用; 如何定义一个功能,并通过方法体现出来: 明确该功能运算后的结果.明确返回值类型; 明确在实现该功能过程中是否有未知内容参与运算,确定参数列表;,成都传智播客教育 讲师:任小龙,局部变量的初始化和内存中的运行机制,局部变量必须先初始化再使用,这里的初始化其实就是在为其分配内存; 局部变量总是保存在其所在方法的栈内存里面,若: 基本类型:变量的值直接保存在变量的内存中; 引用类型:存放该变量实际引用对象或数组的地址; 栈里面的变量无须系统去垃圾回收,栈内存的变量会随着方法或代码块的运行结束而结束;,成都传智播客教育 讲师:任小龙,编程规范说明,方法名不能使用关键字和保留字; 回忆类名的定义规范: 单词的首字母大写,采用驼峰式; 由有实际意义的名词或名词短语构成: 如:Student, StudentScore, 方法名规范: 第一个单词的首字母小写,采用驼峰式; 由有实际意义的动词或动词短语: 如:playGame,grow,成都传智播客教育 讲师:任小龙,方法练习,假设在某个描述三人游戏的类中有一个int的变量player。 写一个返回为String值类型的方法getPlayerName。 player 的值分别是1,2,3或者其他值时,该方法返回“大明”,“二明”“小明”,“我没有这个孩子”。 写一个发短信功能的方法,成都传智播客教育 讲师:任小龙,方法的重载(Overload),概念: 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型或参数顺序不同即可。 存在的原因: 屏蔽了一个对象的同一类方法由于参数不同所造成的差异。 特点: 与返回值类型无关,只看参数列表。,法则:两同,一不同: 同一个类中方法名相同; 参数列表不同:(参数个数,参数的类型,参数顺序)。,成都传智播客教育 讲师:任小龙,判断方法重载,void show(int a,char b,boolean c) - a. void show(char b, int a, boolean c) / b. int show(boolean a,char c ,int b) / c. void show(int a,char b,double c) / d. void show(int x,char y,boolean z) / e. int show(int x,double y) / f. int show(int x, char y,boolean z)/,成都传智播客教育 讲师:任小龙,数组,数组的声明、初始化和内存分配 数组常见操作,成都传智播客教育 讲师:任小龙,数组,概念:同一种类型数据的集合; 数组的好处:数组里的每个元素都有编号,编号从0开始;依次递增,方便操作这些元素; 使用Java数组:必须先声明数组,再给该数组分配内存;,成都传智播客教育 讲师:任小龙,一维数组的声明,一维数组:可以理解为一列多行、类型相同的数据,其中每个数据被称为数组元素; 一维数组的声明方式: type varName; 或 type varName;(推荐),java语言声明数组的时候不能指定其长度(元素的个数) int a5; /非法,int age; String name; double weight; double height; 可以把 type 看着是一种数据类型,成都传智播客教育 讲师:任小龙,一维数组的初始化,Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值; 数组初始化的两种方式: 静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度; 格式:数组名 = new 数组类型元素1,元素2,元素3.元素n; 简化语法:数组名 = 元素1,元素2,元素3.元素n; 动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值; 格式:数组名 = new 数组类型数组长度;,不能静态和动态初始化同时使用: 也就是说不能同时指定数组的长度和元素; 数组的长度一旦确定,就不能改变,也就数组是定长的;,成都传智播客教育 讲师:任小龙,使用数组,Java语言的数组索引是从0开始的,也就是说数组里的第一个元素的索引是0,第二个元素的索引是1,依次可以类推。 常见操作: 给数组元素赋值 数组名索引 = 数组类型的值 ; 访问数组元素 数组类型 变量 = 数组名索引; 得到数组的长度 int len = 数组名.length; /length是数组的属性 遍历数组 数组元素的索引范围?,成都传智播客教育 讲师:任小龙,数组操作常见问题,数组脚标越界异常(ArrayIndexOutOfBoundsException) 空引用异常(NullPointerException) /操作引用类型的时候,int arr = new int5; System.out.println(arr5);/有脚标为5的元素吗? String name = “,“; System.out.prinltn(name2); name2.length(); /length方法是String类里面的方法,成都传智播客教育 讲师:任小龙,数组在内存中的分析1,int age; age = new int3; for(int i=0;iage.length;i+) agei = i+1; ,age,0,age,1,2,3,成都传智播客教育 讲师:任小龙,数组在内存中的分析2,int arr1 = new int4; int arr2 = 1,2,3; System.out.println(“arr1长度= “+arr1.length); System.out.println(“arr2长度= “+arr2.length); arr1 = arr2;/? System.out.println(“arr1长度= “+arr1.length);,失去引用,等待垃圾回收器(GC)来回收,成都传智播客教育 讲师:任小龙,内存特点,开辟不同内存空间是为了对每一片内存中的数据都有不同的处理方式,提高效率。 栈内存的特点: 存储局部变量,空间不用时自动释放内存。 堆内存的特点: 存储数组和对象,通过new关键字建立的实体都存放在堆内存当中。 实体都有一个内存地址值。 堆内存中的变量都有默认初始化值。 垃圾回收机制,Java特有的内存管理机制,在不定时的时间内将垃圾清除释放空间。,成都传智播客教育 讲师:任小龙,数组中的数组,二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组),可以看做是一张表格 在数组中再存放数组,外层数组看做是行,内层数组看做列; 动态初始化 静态初始化,两行三列的表格: new 类型23;,int i3 = new int3;/不允许高维没分配空间而先给低维分配空间,成都传智播客教育 讲师:任小龙,二维数组的初始化,动态初始化 int arr = new int32; 定义了一个二维数组,其中有3个一维数组,每一个一维数组中有2个元素 静态初始化 int arr = new int1,2,3,4,5,6; int arr = 1,2,3,4,5,6;,成都传智播客教育 讲师:任小龙,二维数组的使用,int arr = 3,1,5,2,6,8; 元素值5的表示方式为:arr02 = 5; 第二个一维数组的长度表示方式:int len = arr1.length; 对二维数组的遍历使用for的嵌套循环。 对于其他多维数组,几维就用几层for嵌套,但通常情况数组最多用到三维,因为效率已经大大降低了,也不方便于阅读。,for(int is : arr) for(int i : is) System.out.println(i); ,成都传智播客教育 讲师:任小龙,方法传递机制,Java的方法是不能独立存在的,调用方法必须使用类或对象。 Java方法的参数传递机制是什么呢? 引用传递 / 值传递: 参数进行传递时都会先在自己方法栈中生成一个实际参数的副本,然后该副本拥有实际参数的堆内存地址,使用结束后副本被释放,而实际参数本身不会受到任何影响;,成都传智播客教育 讲师:任小龙,方法传递机制-基本类型参数,main方法栈,swap方法栈,a 12,b 24,12 a,24 b,交换,成都传智播客教育 讲师:任小龙,方法传递机制-引用类型参数,main方法栈,swap方法栈,arr,arr,6,9,a,b,交换,拷贝,成都传智播客教育 讲师:任小龙,操作数组的工具类-Arrays,static int binarySearch(type a, type key) 使用二分搜索法来搜索key元素在数组中的索引;若a数组不包括key,返回负数。(该方法必须已按升序排列后调用)。 static int binarySearch(type a, int fromIndex, int toIndex, type key) 使用二分搜索法来搜索key元素在数组中从fromIndex到toIndex的索引;若a数组不包括key,返回负数。(该方法必须已按升序排列后调用)。 static boolean copyOf(type original, int newLength) 复制指定的数组见下面备注 static byte copyOfRange(type original, int from, int to) 将数组的指定范围复制到一个新数组。,成都传智播客教育 讲师:任小龙,操作数组的工具类-Arrays,static boolean equals(type a, type a2) 如果两个数组长度相等和元素一一相等,则返回 true static void fill(type a, type val) 将a数组所有元素都赋为val。 static void fill(type a, int fromIndex, int toIndex, type val) 将a数组从formIndex 到tiondex索引之间的元素都赋为val。 static void sort(type a) /sort(int arr)对指定的数组按数字升序进行排序。 static void sort(type a, int fromIndex, int toIndex) 对指定数组的从formIndex 到tiondex索引之间的元素按数字升序进行排序。 static String toString(type a) 返回指定数组内容的字符串表示形式。多个数组元素之间用英文逗号或空格隔开。,成都传智播客教育 讲师:任小龙,操作数组的工具类-System,使用java.lang.System
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度城市道路建设压路机租赁及技术支持服务合同
- 2025年度高端商务考察专用包车合同
- 2025年度铝合金建筑型材加工中心建设与运营合作协议
- 医院特色菜品开发及食材直供一体化采购合同
- 2025年度有机蔬菜种植全程绿色植保技术服务合同
- 2025年夫妻共同债务清偿及免除协议范本
- 2025全程离婚调解及婚姻解体后续权益保障合同
- 2025年海外艺术节场地租赁协议书
- 2025年度资源和社会保障部养老保险经办服务创新合作框架协议
- 2025年商业机密共享与竞业禁止责任合同
- 网络安全风险评估与应对策略手册
- DB15∕T 3644-2024 国有企业阳光采购规范
- 2025年小升初音标测试题及答案
- 2025年高校辅导员招考笔试真题及答案
- 慎交友-不交损友课件
- 宾馆前台培训课件
- 消防安全专项施工方案及应急预案
- WST856-2025安全注射标准解读
- MSA-GRR数据自动生成工具
- 沉香种植可行性研究报告
- 光纤通信施工难点措施
评论
0/150
提交评论