
Java循环结构
for循环
/*
for(初始化;布尔表达式;更新) {执行代码
}
*/
for(int i=0; i < 5; i++) {System.out.println(i);
}
- 最先执行初始化步骤;可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句
- 然后检测布尔表达式;如果为true则执行循环体,如果为false循环终止
- 执行一次循环后,更新循环控制变量
- 再次检测布尔表达式;循环执行上面的内容
增强for循环
/*
for(声明语句:数组表达式) {代码语句
}
*/
for(int i:arr) {System.out.println(i);
}
- 声明语句中的变量类型必须和数组表达式元素的类型一致
- 其作用域限定在循环语句块,其值和数组元素的值相等
while循环
/*
while(布尔表达式) {循环内容
}
*/
while(true) {}
- 判读布尔表达式是否为true,为true则会执行循环内容
- 只要布尔表达式为true, 循环体会一致走下去
do...while循环
/*
do{执行代码
}while(布尔表达式)
*/
do {}while(true)
- 对于do...while循环,无论while中的条件是否满足,都会执行一次,若while中的布尔表达式为true,则继续执行循环代码
break
- break主要用在循环语句或者switch语句中,用来跳出整个语句块
- break跳出最里层的循环,并且继续执行该循环下面的语句
continue
- continue适用于循环控制结构中,作用是停止当前循环,执行下次循环
- 在for循环中,continue语句使程序立即跳转到更新语句
- 在while或者do...while循环中,程序立即跳转到布尔表达式的判断语句
Java分支结构
if语句
/*
if(布尔表达式) {布尔表达式为true,则执行语句
}
*/
if(3==4) {}
- 一个if语句包含一个布尔表达式和一条或多条语句
if ... else 语句
- 当if语句的布尔表达式为true时,执行if下的语句块,为false执行else下的代码块
if...else if ...else语句
- 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行
switch语句
switch (变量){case 3:System.out.println(s);break;case 4:System.out.println(s);break;default:System.out.println();break;
}
- switch语句判断一个变量与一系列值中某个值是否相等,每个值为一个分支
- switch语句中的变量类型可以为:byte, short, int, char, 字符串
- switch语句可以拥有多个case语句,每个case后面跟一个要比较的值和冒号
- case语句中的值的数据类型必须与变量的数据类型相同,而且 ==只能是常量或者字面常量==
- 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句
- 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句
- switch 语句可以包含一个 default 分支,该分支必须是 switch 语句的最后一个分支。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句
方法(函数)
什么是方法返回值?返回值在类的方法中的作用
- 方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果
- 返回值的作用是接收出结果,使得它可以用于其他的操作
Java中为什么只有值传递?
- 基本类型,传递的原来值的复制
- 引用类型,传递的是,引用值(地址值)的复制
- 无论哪种都不会改变原来的内容
- 下面再总结一下 Java 中方法参数的使用情况:
- 一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)。
- 一个方法可以改变一个对象参数的状态。
- 一个方法不能让对象参数引用一个新的对象。
重载和重写的区别
重载就是同样的一个方法能够根据输入数据的不同,做出不同的处理
重写就是当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法
- 重载:
- 发生在同一类中,方法名必须相同,参数类型不同,个数不同,顺序不同,方法返回值和访问修饰符不同
- 重写:
- 发生在运行期,是子类对父类的允许访问的方法的实现过程进行重写编写
- 返回值类型、方法名、参数列表必须相同,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。
- 如果父类方法访问修饰符为
private/final/static
则子类就不能重写该方法,但是被 static 修饰的方法能够被再次声明。 - 构造方法无法被重写