Kaedah ialah serpihan kod. Fungsinya adalah seperti berikut:
1 Ia boleh menyusun kod secara modular (apabila saiz kod lebih kompleks
2 digunakan dalam penggunaan Berbilang Kedudukan.
3 Jadikan kod lebih mudah difahami dan lebih ringkas.
4. Panggil terus kaedah sedia ada untuk pembangunan tanpa mencipta semula roda.
Format definisi:
Contoh: Tulis fungsi untuk mencari jumlah faktorial bagi berapa sebutan
public class TeseDemo220424 { // 计算某一个数的阶乘 public static int func(int n){ int ret = 1; for(int i = 1;i <= n;i++){ ret *= i; } return ret; } // 计算前多少项阶乘之和 public static int func1(int k){ int sum = 0; for(int i = 1;i <= k;i++){ sum += func(i); } return sum; } public static void main(String[] args) { // 写函数来求阶乘之和 Scanner myscanner = new Scanner(System.in); System.out.println("请输入你想要求取前多少项的阶乘的和:"); int num = myscanner.nextInt(); int sum = func1(num); System.out.println("前 " + num + "项的阶乘和为" + sum); } }
Nota:
1 Pengubah suai: Pada peringkat ini, gabungan tetap statik awam digunakan secara langsung (kerana kaedah utama adalah statik awam, jadi hanya kaedah statik boleh dipanggil di dalamnya).
2. Jenis nilai pulangan: Jika kaedah mempunyai nilai pulangan, jenis nilai pulangan mesti konsisten dengan jenis entiti yang dikembalikan.
3. Nama kaedah: Gunakan sarung unta kecil untuk menamakannya.
4. Senarai parameter: Jika kaedah tidak mempunyai parameter, tulis apa-apa dalam ( Jika terdapat parameter, jenis parameter perlu ditentukan.
5. Badan kaedah: pernyataan yang akan dilaksanakan di dalam kaedah.
6 Dalam java, kaedah mesti ditulis dalam kelas.
7. Dalam java, kaedah tidak boleh bersarang.
8. Dalam java, tiada pengisytiharan kaedah. (Pengisytiharan dan takrifan tidak dibezakan)
Proses panggilan:
Kaedah panggilan—>Pass parameter—>Cari alamat kaedah —>Badan kaedah yang melaksanakan kaedah yang dipanggil—>Kaedah yang dipanggil berakhir dan mengembalikan—>Kembali ke kaedah panggilan utama dan teruskan pelaksanaan
Imej:
Nota:
1 Apabila mentakrifkan kaedah, kod kaedah itu hanya akan dilaksanakan apabila ia dipanggil
2 kaedah boleh Dipanggil berkali-kali. parameter adalah sebahagian daripada parameter sebenar Salinan sementara dibuat, yang bermaksud bahawa perubahan pada parameter formal tidak akan menjejaskan parameter sebenar.
2. Melebihkan kaedah
2.1. Mengapa kaedah terlebih muatan diperlukan
Lihat kod ini, kedua-dua kaedah addint dan adddouble mempunyai tujuan yang sama. untuk mencari jumlah dua nombor, anda perlu menentukan dua fungsi berbeza dengan nama fungsi yang berbeza, tetapi kadangkala penamaan adalah sakit kepala, jadi kerana fungsi penting kaedah adalah sama, mereka hanya mempunyai parameter yang mungkin berbeza, bolehkah kita semua menggunakan nama fungsi yang sama? Jawapannya ialah ya, dan ini dipanggil kaedah terlebih muatan.public class TestDemo220426 { public static int addInt(int x,int y){ return x + y; } public static double addDouble(double x,double y){ return x + y; } public static void main(String[] args) { int a = 10; int b = 10; int ret = addInt(a,b); double c = 11.1; double d = 12.1; double ret1 = addDouble(c,d); } }
2.2. Definisi lebihan kaedah
Di Java, jika berbilang kaedah mempunyai nama yang sama dan senarai parameter yang berbeza, ia dikatakan terlebih muatan. Iaitu, nama yang sama tetapi dengan maksud yang berbeza.
Tangkapan skrin program berjalan:public class TestDemo220426 { public static int add(int x,int y){ return x + y; } public static double add(double x,double y){ return x + y; } public static void main(String[] args) { int a = 10; int b = 10; int ret = add(a,b); System.out.println(ret); double c = 11.1; double d = 12.1; double ret1 = add(c,d); System.out.println(ret1); } }
Nota:
1. Nama kaedah mestilah sama.
2. Senarai parameter mestilah berbeza (bilangan parameter berbeza, jenis parameter berbeza, susunan jenis mesti berbeza) (perlu dibezakan mengikut parameter)
3. Sama ada ia sama dengan jenis nilai pulangan Serupa dan tidak relevan
4 Anda tidak boleh menentukan dua fungsi yang hanya dibezakan oleh nilai pulangannya 5. Apabila pengkompil menyusun kod, ia akan menyimpulkan jenis parameter sebenar Tentukan kaedah mana yang hendak dipanggil berdasarkan hasil potongan
2.3 Tandatangan kaedah
Tandatangan kaedah ialah: nama akhir kaedah selepas disusun dan diubah suai oleh pengkompil. Kaedah khusus ialah: nama laluan penuh kaedah + senarai parameter + jenis nilai pulangan, yang membentuk nama lengkap kaedah. Digunakan untuk membezakan fungsi terlampau beban
Bagaimana kita boleh melihat tandatangan kaedah kami:
2. masukkan direktori di mana .kelas yang anda ingin lihat terletak
3 Masukkan: nama fail javap -v bytecode
3. Rekursi
3.1
Definisi: Kaedah yang memanggil dirinya sendiri semasa pelaksanaan dipanggil "rekursi."
2. Syarat penamatan rekursi.
public static int func(int num){ if(num == 1){ return 1; } return num*func(num - 1); } public static void main(String[] args) { // 递归求阶乘 Scanner scan = new Scanner(System.in); System.out.println("请输入一个数:"); int num = scan.nextInt(); int ret = func(num); System.out.println("阶乘为:" + ret); } }
在这里我们以求一个数的阶乘的代码为例来分析一个递归的过程:
递归的过程其实不复杂,看成两个部分,一个是递出去,而是归回来,上面的蓝色箭头是递的过程,红色箭头是归的过程。
按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)
public class TestDemo220427 { public static void myprint(int num){ if(num < 10){ System.out.println(num%10); return; } myprint(num/10); System.out.println(num%10); return; } public static void main(String[] args) { // 递归实现按顺序打印数字的每一位 Scanner scan = new Scanner(System.in); System.out.println("请输入一个数:"); int num = scan.nextInt(); myprint(num); } }
求斐波那契数列的第 N 项
public class TestDemo220428 { public static int fib1(int n){ int f1 = 1; int f2 = 1; int f3 = 1; for(int i = 3;i <= n;i++){ f3 = f1 + f2; f1 = f2; f2 = f3; } return f3; } public static int fib(int n){ if(n == 1 || n == 2){ return 1; } return fib(n-1) + fib(n-2); } public static void main(String[] args) { // 递归求斐波那契数列的第n项 Scanner scan = new Scanner(System.in); System.out.println("请输入您想要求取的项数:"); int n = scan.nextInt(); int ret = fib1(n); System.out.println("第" + n + "项为:" + ret); } }
利用递归求斐波那契数列的第n项的话,其实是一个双路递归,不推荐这种求解的方法,因为会算很多重复的项,效率很低,一般都是选择循环迭代的方式来生成斐波那契数即可。
Atas ialah kandungan terperinci Analisis contoh penggunaan kaedah Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!