学习Java的第二周
1. case穿透
在switch语句中,根据表达式的值找到对应的case语句,执行代码,如果所有的case都不能匹配,则执行default语句代码块。在语法上来说,break是可以省略的,当没有break时,会出现穿透现象,也就是case不与表达式进行匹配,而直接执行下一个case中的语句。
public class Test6{
public static void main(String []args){
int a= 0;
switch(a){
case 0:
a++;
break;
case 1:
a++;
break;
case 2:
a++;
break;
case 3:
a++;
break;
}
System.out.println(a);
}
}
尝试将其中的break去掉,看其输出结果。
public class Test7{
public static void main(String []args){
int a= 0;
switch(a){
case 0:
a++;
case 1:
a++;
case 2:
a++;
case 3:
a++;
break;
}
System.out.println(a);
}
}
发现在case语句中,当满足a的条件时,并没有跳出switch,这种情况称为case穿透。
2. 方法重载
在一个类中有两个方法,他们具有相同的名字,但有不同的参数列表。也就是说,方法名(等同于函数名)可以相同,只要保证形参类型不同就可以了。
public class Test8{
public static void main(String[]args){
int[]a1={123,456,789};
double[]a2={123.0,456.0,789.0};
System.out.println("int sum:"+average(a1));
System.out.println("double sum:"+average(a2));
}
public static int sum(int[]a1){
int i=0;
int sum=0;
for(i=0;i<=a1.length-1;i++)
{
sum+=a1[i];
}
return sum;
}
public static double sum(double[]a2){
int i=0;
double sum=0;
for(i=0;i<=a2.length-1;i++)
{
sum+=a2[i];
}
return sum;
}
}
3.java的打包
在编写java程序的时候,往往会把具有不同功能的方法放在不同的.java文件里再写一个入口文件来运行,这时候就需要这时候通过导包把其他.java文件导入入口文件中。
首先我们将输出功能的方法作为包。
package first;
public class Dabao1{
public static void Dabao(){
System.out.println("学习如何打包");
}
}
然后我们通过javac -d . Dabao1.java来把这个java文件变成一个包。
接着我们创建一个入口文件来实现对包方法的使用。
import first.Dabao1;
public class Dabao2{
public static void main(String[]args){
Dabao1.Dabao();
}
}
然后对入口文件进行编译运行。