Java方法入門
阿新 • • 發佈:2022-03-04
Java方法是語句的集合,他們在一起執行一個功能。
java中沒有函式
方法是解決一類問題的步驟的有序組合;方法包含於類或物件中;方法在程式中被建立,在其他地方被引用。
方法設計原則:方法本意是實現某個功能的語句快集合,因此最好一個方法只實現一個功能,保證方法的原子性。
note:方法的命名規則——首字母是小寫 + 駝峰命名
方法呼叫
物件名.方法名(實參列表);
public class Demo01 {
//main方法
public static void main(String[] args) {
//實參:實際呼叫時傳遞的引數
int sum = add(1,2);
System.out.println(sum);
}
//加法
//形參,用來定義作用
public static int add(int a,int b){
return a+b;
}
}
public class Demo02 {
public static void main(String[] args) {
System.out.println(max(100,33));
}
//比大小
//static修飾符:可以直接呼叫,不需要物件
public static int max(int num1,int num2){
//int result;
if(num1>num2)
return num1;
else if (num1==num2){
System.out.println("num1 == num2");
return 0;//終止方法
}
else return num2;
}
}
值傳遞和引用傳遞
java都是值傳遞。jvm中會詳解
方法過載
定義:同樣的方法名,但形式引數不同。
//過載的實現由編譯器自動匹配對應的方法。
public class Demo02 {
public static void main(String[] args) {
double max = max(100,33);
System.out.println(max);
}
//比大小
//static修飾符:可以直接呼叫,不需要物件
public static int max(int num1,int num2){
//int result;
if(num1>num2)
return num1;
else if (num1==num2){
System.out.println("num1 == num2");
return 0;//終止方法
}
else return num2;
}
public static double max(double num1,double num2){
//int result;
if(num1>num2)
return num1;
else if (num1==num2){
System.out.println("num1 == num2");
return 0;//終止方法
}
else return num2;
}
}
命令列傳參
用命令列傳引數,需要cd../退到src中,再輸入路徑才能執行。
另外,psvm也可以傳入引數。
public class CommandLine {
public static void main(String[] args) {
//args.length 陣列長度
for (int i = 0; i < args.length; i++) {
System.out.println("args["+i+"] : "+args[i]);
}
}
}
可變引數
public class Demo04 {
public static void main(String[] args) {
//呼叫可變引數的方法
printMax(1,34,34.43,23.32);//傳遞可變長例子
printMax(new double[]{1,3.4,1.3,1.2,4.4});//傳入陣列
}
public static void printMax(double... numbers){
if (numbers.length == 0){
System.out.println("no numbers");
}
double result = numbers[0];
for (int i = 0; i < numbers.length; i++) {
if (numbers[i]>result)
result = numbers[i];
}
System.out.println("max is "+result);
}
}
遞迴*
遞迴即為自己呼叫自己。
關鍵點:
public class Demo06 {
public static void main(String[] args) {
//實現遞迴求階乘
System.out.println(f(5));
}
public static int f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
}
畫圖分析:
前階段,返回階段。java中遞迴都用的棧實現。
但是大資料最好不要用遞迴,會影響機器效能。
小作業:計算器