} ... }
或者
while(true){ ... if( ){ break; } ... }
往往我们在无限循环结构内部提供循环的终止条件,使用break关键字。否则,此循环将无限制的执行下去,形成死循环!
死循环是我们要避免的。 4.3break&continue
break:
>使用switch-case结构或者循环结构中
>在循环结构中,一旦执行到break,就跳出当前循环。
continue:使用在循环结构中
>一旦执行到continue,就跳出当次循环。
for(int i = 1;i <= 10;i++){ if(i % 4 == 0){ //break; //123 continue; //123567910 } System.out.print(i); }
在嵌套循环中,使用带标签的break和continue。 label:for(int i = 1;i < 5;i++){ for(int j = 1;j <= 10;j++){ if(j % 4 == 0){ //break; //continue; //break label; continue label; } System.out.print(j); } System.out.println(); }
(五)数组
二维数组
数组的常见异常
//1.数组下标越界的异常:java.lang.ArrayIndexOutOfBoundsException int[] i = new int[10]; // i[0] = 90; // i[10] = 99; // for(int m = 0;m <= i.length;m++){ // System.out.println(i[m]); // } //2.空指针的异常:NullPointerException //第一种: // boolean[] b = new boolean[3]; // b = null; // System.out.println(b[0]); // // //
//第二种:
String[] str = new String[4];
//str[3] = new String(\System.out.println(str[3].toString());
//第三种:
int[][] j = new int[3][]; j[2][0] = 12;
数组的常用的算法问题
1.求数组元素的最大值、最小值、和、平均数
2.数组的复制和反转 情况1:
情况2:(如何实现复制)
数组的反转:
// 数组元素的反转
// for(int i = 0;i < arr.length/2;i++){ // int temp = arr[i];
// arr[i] = arr[arr.length-1 - i]; // arr[arr.length - 1 - i] = temp; // }
for (int x = 0, y = arr.length - 1; x < y; x++, y--) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; }
拓展:String str = \
数组的排序:
插入排序
直接插入排序、折半插入排序、Shell排序
交换排序
冒泡排序、快速排序(或分区交换排序)
选择排序
简单选择排序、堆排序 归并排序
基数排序
// 使用冒泡排序使数组元素从小到大排列 // for (int i = 0; i < arr.length - 1; i++) { // for (int j = 0; j < arr.length - 1 - i; j++) { // if (arr[j] > arr[j + 1]) { // int temp = arr[j]; // arr[j] = arr[j + 1]; // arr[j + 1] = temp; // } // } // } // //使用直接选择排序使数组元素从小到大排列 // for(int i = 0; i < arr.length - 1; i++){
// int t = i;//默认i处是最小的 // for(int j = i;j < arr.length;j++){ // //一旦在i后发现存在比其小的元素,就记录那个元素的下角标 // if(arr[t] > arr[j]){ // t = j; // } // } // if(t != i){ // int temp = arr[t]; // arr[t] = arr[i]; // arr[i] = temp; // } // }
还可以调用:Arrays工具类:Arrays.sort(arr);
三、面向对象(一)
1.类及对象
1.关于于类的设计
2.类的组成成分:
1) 属性(成员变量,Field)
2)方法(成员方法,函数,Method)
2.1属性:
* 成员变量 vs 局部变量
* 相同点:1.遵循变量声明的格式: 数据类型 变量名 = 初始化值 * 2.都有作用域
* 不同点:1.声明的位置的不同 :成员变量:声明在类里,方法外 * 局部变量:声明在方法内,方法的形参部分,代码块内 * 2.成员变量的修饰符有四个:public private protected 缺省 * 局部变量没有修饰符,与所在的方法修饰符相同。 * 3.初始化值:一定会有初始化值。
* 成员变量:如果在声明的时候,不显式的赋值,那么不同数据类型会有不同的默认初始化值。 * byte short int long ==>0 * float double ==>0.0 * char ==>空格 * boolean ==>false
* 引用类型变量==>null
* 局部变量:一定要显式的赋值。(局部变量没有默认初始化值)
* 4.二者在内存中存放的位置不同:成员变量存在于堆空间中;局部变量:栈空间中 *
* 总结:关于变量的分类:1)按照数据类型的不同:基本数据类型(8种) & 引用数据类型 * 2)按照声明的位置的不同:成员变量 & 局部变量
2.2 方法:提供某种功能的实现
* 1)实例:public void eat(){//方法体} * public String getName(){}
* public void setName(String n){}
* 格式:权限修饰符 返回值类型(void:无返回值/具体的返回值) 方法名(形参){} *
* 2)关于返回值类型:void:表明此方法不需要返回值 * 有返回值的方法:在方法的最后一定有return + 返回值类型对应的变量 * 记忆:void 与return不可以同时出现一个方法内。像一对“冤家”。 *
* 3)方法内可以调用本类的其他方法或属性,但是不能在方法内再定义方法!
3.面向对象编程的思想的落地法则一: 1)设计并创建类及类的成分 2)实例化类的对象
3)通过“对象.属性”或\对象.方法\的形式完成某项功能
4.类的初始化的内存解析 4.1 内存划分的结构:
栈(stack):局部变量 、对象的引用名、数组的引用名 堆(heap):new 出来的“东西”(如:对象的实体,数组的实体),含成员变量 方法区:含字符串常量
静态域:声明为static的变量
4.2 理解的基础上,学会基本的创建的类的对象在内存中的运行。
2.方法的重载
* 方法的重载(overload)
* 要求:1.同一个类中 2.方法名必须相同 3.方法的参数列表不同(①参数的个数不同②参数类型不同) * 补充:方法的重载与方法的返回值类型没有关系!
//如下的四个方法构成重载 //定义两个int型变量的和 public int getSum(int i,int j){ return i + j; }
//定义三个int型变量的和 public int getSum(int i,int j,int k){ return i + j + k; }
//定义两个double型数据的和
public double getSum(double d1,double d2){ return d1 + d2; }
//定义三个double型数组的和
public void getSum(double d1,double d2,double d3){ System.out.println(d1 + d2 + d3); }
//不能与如上的几个方法构成重载 // public int getSum1(int i,int j,int k){ // return i + j + k; // }
// public void getSum(int i,int j,int k){ // System.out.println(i + j + k); // }
//以下的两个方法构成重载。 public void method1(int i,String str){ }
public void method1(String str1,int j){ }
3.可变个数的形参的方法
* 可变个数的形参的方法:
* 1.格式:对于方法的形参: 数据类型 ... 形参名 * 2.可变个数的形参的方法与同名的方法之间构成重载
* 3.可变个数的形参在调用时,个数从0开始,到无穷多个都可以。 * 4.使用可变多个形参的方法与方法的形参使用数组是一致的。
* 5.若方法中存在可变个数的形参,那么一定要声明在方法形参的最后。 * 6.在一个方法中,最多声明一个可变个数的形参。
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教育文库JavaSE基础教程 (2)全文阅读和word下载服务。
相关推荐: