日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第五天 普通方法

發布時間:2025/6/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第五天 普通方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是方法

java方法是語句的集合,他們在一起執行了一個功能.,比如司機開車,老師教書等

方法是解決一類問題的步驟的有序組合

方法在類和對象中

方法在程序中被創建,在其他地方被引用

方法的優點

使程序變的更加簡短清晰;

有利于維護

提高程序開發效率

提高代碼的重(cong)用性,一次編寫多吃使用

方法的定義

一般情況下定義一個方法如下?

修飾符?返回類型?方法名(參數類型?參數名,參數類型?參數名2){...方法體...return?返回值; }


修飾符

可選的,告訴編譯器如何編譯方法,定義了方法的訪問類型.

方法的修飾符分為訪問控制修飾符和非訪問控制修飾符.修飾符在之后具體學習.

返回類型方法的返回值類型,如果方法不返回任何值,為void.
參數類型用于限定調用方法時傳入數據類型,
參數名一個變量用于接收調用方法接收的參數.
return?

用于結束方法并且返回方法指定類型的值? .方法返回值必須為方法聲明的反復類型,

如果沒有返回值也就是說 返回類型為void,此時return可省略.

返回值
被renturn語句返回的值,返回給調用者.
方法體:方法體包含具體的語句,定義該方法的功能。

參數列表

(參數類型?參數名1,參數類型?參數名2)

用于描述方法被調用時需要接受的參數類型. 參數是可選的,可以不包含任何參數只寫();
方法名自定義的名字,但要符合命名規范,最好使用 lowerCamelCase 風格,必須遵駝峰形式

例子:

public?static?int?age(int?age){...}


多個參數

static?float?getnumber(float?a,float?b){...}


方法的調用

java支持兩種方法調用方法:

當程序調用方法的時候,就把控制權交給了被調用的方法,當被調用的方法的返回語句執行或者到達方法體閉括號時候交還給程序.

當方法返回一個一個值的時候,方法調用通常被當作一個值;例如

調用方式:對象名.方法名

int larger = max(30, 40);

當方法的返回值是void,方法調用一定是一條語句例如:

System.out.println("hello world!");

實例:定義了一個getArea()方法用于求矩形的面積,參數x和y分別用于接收調用方法時傳入的高和寬,return語句用于返回計算所得的面積。在main()方法中通過調用getArea()方法,獲得矩形的面積,并將結果打印。 方法println返回void。下面的調用是個語句:


public?class?MethodDemo01?{public?static?void?main(String[]?args)?{int?area?=?getArea(3,?5);?//?調用?getArea方法System.out.println("?The?area?is?"?+?area); } //?下面定義了一個求矩形面積的方法,接收兩個參數,其中x為高,y為寬 public?static?int?getArea(int?x,?int?y)?{int?temp?=?x?*?y;?//?使用變量temp記住運算結果return?temp;?//?將變量temp的值返回} }


main 方法的頭部是不變的,如例子所示,帶修飾符 public 和 static,返回 void 類型值,方法名字是 main,此外帶個一個 String[] 類型參數。String[] 表明參數是字符串數組。

方法的調用過程

從mian方法入口,開始執行程序

從mian方法的代碼開中開始執行程序

調用方法getArea,傳遞參數3和5進去.(參數傳遞時有順序的)?

getArea方法開始執行

計算temp=w*h=30

return temp;將return后面的數據返回給方法的調用者.

在方法定義后,參數變量w,h沒有具體的數值,在調用的時候,數值由傳遞著傳遞過來.

方法的參數變量稱為形式參數,形參 intgetArea(int w,int h) wh為形參?

而調用方法的時候,傳遞的數據為實際參數,就是實參int a= getArea(a,b) ab就是實參

JVM將內存進行了劃分,分為了5個區域

寄存器:內存和CPU之間

本地方法棧:JVM調用了系統的功能,

方法和數據共享區:運行時期claa文件進去的地方

方法棧:所有的方法運行的時候進入的時候內存

堆:存儲容器和對象.比如數組

方法調用內存圖

程序運行時期,必須要進入內存

運行文件后,編譯的class文件進去內方法和數據共享區

JVM虛擬機調用mian方法,

main方法進發方法棧開始運行

mian方法中調用方法getArea并傳遞參數

getArea方法進棧運行

計算結果返回調用者.

方法getArea結束出棧,釋放內存資源

方法定義的注意事項:

方法不能定義在另一個方法里面

寫錯方法名

寫錯了參數列表

方法重復定義問題

調用方法的時候,返回值是void,不能卸載輸出語句中

方法參數

按值傳遞:方法接受的是調用者提供給的值

按引用傳遞:方法接受的是調用者提供的變量對應的變量值.

一個方法可以修改傳遞引用所對應的變量值,而不能更改傳遞值所對應的變量值

java程序設計語言總是采用按值調用

方法參數共有兩種:

基本數據類型:

對象引用:

基本數據類型例子:

publci static void value(int x){

????x = 3 * x;

}

調用這個方法

int a = 10;

value(a)

//結果a為10

無論這樣,調用這個方法之后,a的值還是10,具體過程

形參x被初始化a值的拷貝(也就是10)

x乘3后等于30 但是a任然是10;

方法結束后 x不在使用

一個方法不能修改一個基本數據類型的參數,

對象引用例子


public class MethodDemo_3{

??????public static void main(String[] args){

????????????int[] arr = {1,2,3,4};

????????????System.out.println(arr[2]); // 3

????????????change(arr);

????????????System.out.println(arr[2]); //??100

??????}

??????

??????public static void change(int[] arr){

????????????arr[2] = 100;

??????}

??????

??????

}



總結:一個方法不能修改一個基本數據類型的參數(數值型和布爾型)

?? ?? ? 一個方法可以改變一個對象參數的狀態

?? ?? ? 一個方法不能讓對象引用一個新的對象

方法重載

如果多個方法有相同的名字,不同的參數,便產生了重載.編譯器必須挑選具體執行那個方法,他通過各種方法給出的參數類型與特定方法調用所

使用的類型進行匹配,來挑選出相應的方法.如果編譯器找不到匹配的參數,或者找出多個可能的匹配,就會產生編譯時錯誤.這個過程稱為重載解析,

java運行重載任何的方法.

因此要完整的描述一個方法需要指出方法名和參數類型,這個叫做方法的簽名.

返回類型不是方法簽名的一部分也就是說,不能有兩個名字相同,參數類型也相同卻返回不同類型的方法

public class MethodOverLoadDemo{

??????public static void main(String[] args){

????????????//對于重載的調用,根據參數傳遞進行區分

????????????//System.out.println();

????????????double sum = getSum(2.3,3.5);

????????????System.out.println(sum);

??????}

??????/*

????????對參數求和,利用方法的重載特性

??????*/

??????public static int getSum(int a,int b){

????????????System.out.println("兩個int參數");

????????????return a+b;

??????}

??????public static int getSum(int a,int b,int c){

????????????System.out.println("三個int參數");

????????????return a+b+c;

??????}

??????public static double getSum(double a,double b){

????????????System.out.println("兩個double參數");

????????????return a+b;

??????}

??????/*

?????????定義方法,對參數求和

?????????參數,沒規定幾個,數據類型

??????

??????public static int getSum(int a ,int b){

????????????return a+b;

??????}

??????

??????public static double getSumDouble(double a,double b){

????????????return a+b;

??????}

??????public static int getSum3(int a,int b, int c){

????????????return a+b+c;

??????}*/

}





轉載于:https://blog.51cto.com/10760006/2154701

總結

以上是生活随笔為你收集整理的第五天 普通方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美理论片在线观看 | 精品久久久久久久久久久久久久久久 | 深夜福利网站在线观看 | 日本高清视频www夜色资源 | 日本色中色 | 日韩在线第一区 | 卡一卡二av | 色眯眯网 | 成人免费av在线 | 国产又黄又猛的视频 | 国产在线一区二区视频 | 国产精品一区二区三区四 | 亚洲中文字幕无码不卡电影 | 草草影院一区二区三区 | 草碰在线视频 | 视频久久 | 国产网红在线观看 | 假日游船 | 青青草自拍视频 | 成人av一区二区在线观看 | 88国产精品视频一区二区三区 | 中国av在线 | 超碰精品在线观看 | 久久高清免费 | 亚洲乱码精品久久久久 | 成人精品水蜜桃 | 全国男人的天堂网 | 91麻豆一区二区 | 成人1区| 青青视频网 | 被黑人猛躁10次高潮视频 | 国产一区在线不卡 | 六月婷婷激情 | 亚洲www啪成人一区二区麻豆 | 亚洲射色| www.日日干 | 亚洲色图15p| av免费网站 | 青青草网址 | 激情中文网 | 小柔的淫辱日记(1~7) | 韩国av毛片 | 国产精品免费看 | 国产激情视频在线 | 围产精品久久久久久久 | 制服丝袜先锋 | 黄色网址在线看 | 黄床大片 | 亚洲网址在线观看 | 亚洲欧美日韩色图 | 久久在线一区二区 | 久久夜色精品国产噜噜亚洲av | 欧美成人视 | av大片在线观看 | 泰剧19禁啪啪无遮挡 | av影视网| 97爱视频| 中文字幕日本在线观看 | 久久爰 | 超碰v | 久久久久久久影视 | 中文字幕一区二 | 久久观看 | 婷婷六月天在线 | 日韩欧美中出 | 色婷婷国产精品视频 | 九九av在线 | 蜜桃臀av一区二区三区 | 国产极品在线播放 | 中文字幕乱码亚洲无线三区 | 色眯眯网| 日本网站免费观看 | 久草中文在线观看 | 超碰久草 | 又爽又黄视频 | 日韩视频一区二区三区在线播放免费观看 | 欧美成人一二区 | 波多野结衣免费观看视频 | 九九综合网| 免费视频二区 | 青青精品 | 黄色福利视频网站 | 中文久久字幕 | 国产精品一二三四区 | 国产成人亚洲精品无码h在线 | 国产一区二区三区电影在线观看 | 久久中文字幕无码 | 免费看黄色一级视频 | 国产精品欧美性爱 | av日韩av| 欧美精品一区二区三区视频 | 亚洲视频 一区 | 91好色先生 | 日韩少妇一区二区 | 国外成人性视频免费 | 成人在线网站 | 四色成人av永久网址 | 欧美日韩视频在线观看免费 | 久久情趣视频 |