Java方法
1、方法重载(Overloading):如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载。 具体说明如下:
方法名相同;
方法的参数类型,参数个不一样;
方法的返回类型可以不相同;
方法的修饰符可以不相同;
main 方法也可以被重载。
2、汉诺塔算法
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。后来,这个传说就演变为汉诺塔游戏,玩法如下:
1.有三根杆子A,B,C。A杆上有若干碟子
2.每次移动一块碟子,小的只能叠在大的上面
3.把所有碟子从A杆全部移到C杆上
public class Calculation_Towers {
public Calculation_Towers(){
int nDisks =3;
doTowers(nDisks,'A','B','C');
}
public static void doTowers(int topN,char from,char inter,char to) {
if (topN ==1){
System.out.println("Disk 1 from "
+ from +" to " + to);
}else {
doTowers(topN -1, from, to, inter);
System.out.println("Disk "
+ topN +" from " + from +" to " + to);
doTowers(topN -1, inter, from, to);
}
}
}
运行结果:
3、斐波那契数列
指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368……
特别指出:第0项是0,第1项是第一个1。
这个数列从第三项开始,每一项都等于前两项之和。
public class Calculation_Fibonacci {
public Calculation_Fibonacci(){
for (int counter =0; counter <=8; counter++){
System.out.printf("Fibonacci of %d is: %d\n",
counter,fibonacci(counter));
}
}
public static long fibonacci(long number) {
if ((number ==0) || (number ==1))
return number;
else
return fibonacci(number -1) +fibonacci(number -2);
}
}
运行结果:
4、阶乘
一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且有0的阶乘为1。自然数n的阶乘写作n!。即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
public class Calculation_Factorial {
public Calculation_Factorial(){
for (int counter =0; counter <=6; counter++){
System.out.printf("%d! = %d\n", counter,
factorial(counter));
}
}
public static long factorial(long number) {
if (number <=1)
return 1;
else
return number *factorial(number -1);
}
}
5、方法覆盖(Overriding)
如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法。
6、instanceof 关键字
是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。如 object o = new ArratList(); if (o instanceof ArrayList);
7、break关键字
Java break 语句可以直接强行退出当前的循环,忽略循环体中任何其他语句和循环条件测试。
8、continue关键字
Java continue 语句语句用来结束当前循环,并进入下一次循环,即仅仅这一次循环结束了,不是所有循环结束了,后边的循环依旧进行。
9、标签label
Java 中的标签是为循环设计的,是为了在多重循环中方便的使用break 和coutinue 。主要用于当在循环中使用 break 或 continue 循环时跳到指定的标签处。
testlbl:
for (int i = 0; i <= max; i++) { int length = substring.length();
int j = i;
int k = 0;
while (length-- != 0) {
if(strSearch.charAt(j++) != substring.charAt(k++)){
continue testlbl; //跳回开头
} } found = true;
break testlbl; //结束所有循环
}
10、for 和 foreach循环使用
for 语句比较简单,用于循环数据。for循环执行的次数是在执行前就确定的。语法如下:
for(初始化; 布尔表达式; 更新) { //代码语句}
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。语法如下:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句; }
11、Varargs 可变参数使用
Java1.5提供了一个叫varargs的新功能,就是可变长度的参数。
"Varargs"是"variable number of arguments"的意思。有时候也被简单的称为"variable arguments"
定义实参个数可变的方法:只要在一个形参的"类型"与"参数名"之间加上三个连续的"."(即"...",英文里的句中省略号),就可以让它和不确定个实参相匹配。
public class Calculation_Factorial {
public Calculation_Factorial(){
for (int counter =0; counter <=6; counter++){
System.out.printf("%d! = %d\n", counter,
factorial(counter));
}
}
public static long factorial(long number) {
if (number <=1)
return 1;
else
return number *factorial(number -1);
}
}