本章是Java基礎的方法概念詳解,分享給初學者,一起學習,共同進步!
一.方法基礎概念
什麼是方法
- Java的方法類似於其它語言的函數,是一段用來完成特定功能的代碼片段
爲什麼要聲明方法
(方法的好處)
- ①把複用的邏輯抽取出來,封裝成方法,提高代碼的重用性
- ②實現相對獨立的邏輯,提高代碼的維護性
- ③可以對具體實現進行隱藏、封裝
方法的作用
- 簡化代碼,提高代碼的可讀性,可維護性,可重用性
方法的聲明格式
- 語法:
訪問權限修飾符 其他修飾符 返回值類型 方法名稱(參數列表) {
//方法體【函數體】 return 返回值;
//如果返回值類型void ,可以不用寫return
}
- 不寫默認是default
- 如圖是修飾符的訪問權限
修飾符 | 當前類 | 相同包 | 子類 | 其他包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protetcted | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
Java訪問修飾符包括private,default,protected和public。含義分別表示私有的,默認的,受保護的和公有的訪問修飾符。這些訪問修飾符既可以修飾類中的屬性,又可以修飾類中的方法,而public和default還可以修飾類。在同一個java文件裏,公有類有且僅有一個,並且該文件命名爲類名.java。
二.方法的分類
- 根據方法有沒有參數,可分爲:
- 1.無參方法
- 2.有參方法
- 根據有沒有返回值,可分爲:
- 1.無返回值方法
- 2.有返回值方法
public class Demo{
// 1. 最簡單的無參方法
void sum1(){
System.out.println("加法操作");
}
// 2. 擁有修飾符的無參方法
public static void sum2(){
System.out.println("加法操作");
}
// 3. 擁有參數的方法
public static void sum3(int a,int b){
System.out.println("兩數相加結果"+a+b);
}
// 4.擁有返回值的方法
public static int sum4(int a,int b){
return a+b;
}
// 5.聲明一個無參數帶返回值
public static int sum5(){
int x=20;
int y=28;
int z=x+y;
return z;
}
}
三.方法的調用格式
- 語法:方法名稱(實參列表);
注意
:- a.實參的數量和類型必須和形參保持完全的一致。
- b.方法之間只能進行相互的調用,而不能在方法中聲明方法,就目前而言聲明的方法都和main方法時並列的
- c.如果定義方法有返回值,運算的結果會返回給調用者,調用者需要定義變量接收數據
無返回值的調用格式案例
public class Demo{
public static void main(String[] args) {
//實參
int a = 10;
int b = 20;
swap(a,b);
System.out.println("main函數中的a=" + a);//10
System.out.println("main函數中的b=" + b);//20
}
//分析:需要參數(兩個參數)
// 不需要返回值
// 形參:沒有攜帶值的變量,多個變量之間使用逗號分隔
public static void swap(int a,int b){
int temp = 0;
temp = a;
a = b ;
b = temp ;
System.out.println("swap函數中的a=" + a); //20
System.out.println("swap函數中的b=" + b); //10
}
}
swap函數中的a=20
swap函數中的b=10
main函數中的a=10
main函數中的b=20
初學者一定要理解好形式參數和實際參數
有方法的返回值的案例
有返回值的要用到return關鍵字
- return關鍵字的作用:結束方法,返回結果,
- 情況1
public class Demo {
public static void main(String[] args) {
show();
}
/*1>在沒有返回值的函數中使用return
return單獨成立一條語句,
類似於break或者continue,後面不能跟任何的數值
作用:結束整個方法 */
public static void show() {
System.out.println("Hello World!");
int x = 10;
if (x > 5) {
return;//結束方法 }
}
// 不能執行
System.out.println("Hello World!========");
}
}
Hello World!
- 情況2
public class Demo {
public static void main(String[] args) {
int result = add(10,20);
System.out.println(result);
}
/*2>在一個有返回值的函數中使用return
這種情況下函數中必須出現return
return後面必須跟一個具體的數值,而且數值的類型和返回值類型必須保持一致
作用:結束整個方法,並且將返回值攜帶給調用者 */
public static int add(int a ,int b) {
System.out.println("Hello World!");
int c = a+b;
return c;
}
}
30
- 情況3
public class Demo {
public static void main(String[] args) {
int result = compare(34,67);
System.out.println(result);
}
/*3>如果一個自定義的函數有返回值,
並且在方法中遇到了分支結構,使用return
在每一個分支後面都需要出現一個return *///
// 需求:比較兩個變量的大小,返回較大的一個
public static int compare(int a,int b) {
if(a>b){
return a;
}
else if(a<b){
return b;
}
else{
return 0;
}
}
}
67
四.方法的重載
方法重載的概念
- 同一個類中,方法名字相同,參數列表不同,則是方法重載。
注意:
- 參數列表的不同包括,參數個數不同,參數數據類型不同,參數順序不同
- 方法的重載與方法的修飾符和返回值沒有任何關係
public class Demo {
public static void main(String[] args) {
show();
show(10);
show("10");
show("10",10);
}
public static void show() {
System.out.println("無參無返回值的show");
}
public static void show(int a) {
System.out.println("int的show");
}
public static void show(String a) {
System.out.println("String的show");
}
public static void show(String a,int b) {
System.out.println("String int的show");
}
}
無參無返回值的show
int的show
String的show
String int的show
- 以上的就代表JAVA方法的重載
五.拓展
區分什麼是類方法和實例方法
- 類方法:
使用static修飾的方法
,是屬於當前整個類的,而不是屬於某個實例的,只能處理static域或調用static方法。- 實例方法:
- 屬於對象的方法,有對象來調用。
public class Demo {
float a;
//實例方法
void sum(float num1,float num2){
a = Max(num1,num2);
}
//類方法
static float Max(float num1,float num2){
//取最大值
return num1 <= num2 ? num2 :num1;
}
public static void main(String[] args) {
Demo demo =new Demo();
demo.sum(22,33); //實例方法必需先初始化類的實例,然後通過類的實例才能調用
Demo.Max(12,9); // 類方法可以直接通過類名調用
}
}
- 一個類中的方法可以互相調用。但要注意:實例方法可以調用該類中的其他方法,例如,sum()可以調用Max()。類方法只能調用其他類方法,不能調用實例方法。
- 類方法又叫靜態方法, 實例方法又叫非靜態方法。
- 類方法可以直接通過類名調用,實例方法必需先初始化類的實例,然後通過類的實例才能調用
- 知識點小結
- Java中的方法分爲類方法和實例方法,區別是類方法中有static修飾,爲靜態方法,是類的方法。所以在類文件加載到內存時就已經創建,但是實例方法是對象的方法,只有對象創建後才起作用,所以在類方法中不能調用實例方法,但實例方法中可以調用類方法,且實例方法可以互相調用。
-
The best investment is in yourself
-
2020.04.15 記錄辰兮的第55篇博客