從屌絲到架構(gòu)師的飛越(入門(mén)篇)-方法

一霍比、介紹

方法是一個(gè)漢語(yǔ)詞匯幕袱,方法的含義較廣泛,一般是指為獲得某種東西或達(dá)到某種目的而采取的手段與行為方式悠瞬。方法在哲學(xué)们豌,科學(xué)及生活中有著不同的解釋與定義。

軟件編程語(yǔ)言中,如果將函數(shù)定義為類(lèi)定義的一部分或者將它與某個(gè)對(duì)象綁定,則該函數(shù)稱(chēng)為方法浅妆;.

二望迎、內(nèi)容

1.1 方法概述

軟件的本質(zhì)是為我們提供了解決日常事務(wù)的許多功能。在Java當(dāng)中通過(guò)方法的方式來(lái)完成這些功能凌外。即Java中的某個(gè)方法提供了某種功能辩尊,供我們?nèi)祟?lèi)解決問(wèn)題。

我們可以將一個(gè)完整功能的代碼組織成一個(gè)方法趴乡,在再次完成相同的功能時(shí)对省,便可以直接以整體的方式調(diào)用該功能蝗拿,而不需要再將具體實(shí)現(xiàn)過(guò)程完整重復(fù)編寫(xiě)一遍晾捏。

main方法就是一個(gè)特殊的方法。作為程序入口哀托,供JVM調(diào)用惦辛。

我們將不同功能定義成不同方法。供其他方法調(diào)用仓手。最先接觸方法時(shí),我們定義不同的方法,供main方法直接調(diào)用碴犬。

1.2 方法的定義及使用

方法是對(duì)現(xiàn)實(shí)功能的一個(gè)抽象蠢古,便于對(duì)功能的復(fù)用。在一個(gè)類(lèi)中可以有多個(gè)方法仿荆,多個(gè)方法是平等關(guān)系。

在很多語(yǔ)言當(dāng)中,相同的概念使用函數(shù)來(lái)命名箫锤。

1.2.1 方法定義格式

在Java中,聲明一個(gè)方法的具體語(yǔ)法格式如下:

修飾符 返回值類(lèi)型 方法名(參數(shù)類(lèi)型 參數(shù)名1,參數(shù)類(lèi)型 參數(shù)名2,......){

執(zhí)行語(yǔ)句

………

return 返回值;

}

對(duì)于上面的語(yǔ)法格式中具體說(shuō)明如下:

修飾符:方法的修飾符比較多雨女,有對(duì)訪問(wèn)權(quán)限進(jìn)行限定的谚攒,有靜態(tài)修飾符static,還有最終修飾符final等氛堕,這些修飾符在后面的學(xué)習(xí)過(guò)程中會(huì)逐步介紹馏臭。目前使用固定的public static修飾符

返回值類(lèi)型:方法返回值的數(shù)據(jù)類(lèi)型

參數(shù)類(lèi)型:調(diào)用方法時(shí)傳入?yún)?shù)的數(shù)據(jù)類(lèi)型

參數(shù)名:是一個(gè)變量,用于接收調(diào)用方法時(shí)傳入的數(shù)據(jù)

return關(guān)鍵字:用于結(jié)束方法以及返回返回值

返回值:被return語(yǔ)句返回的值讼稚,該值會(huì)返回給調(diào)用者

1.2.2 方法的使用格式

1.2.2.1 方法的使用:

所有的方法定義出來(lái)括儒,都是為了讓別的方法使用的。永遠(yuǎn)不被別人調(diào)用的方法乱灵,其定義是沒(méi)有意義的塑崖。

使用格式

在前邊講解引用數(shù)據(jù)類(lèi)型的簡(jiǎn)單使用時(shí),我們已經(jīng)使用過(guò)方法

使用格式即:對(duì)象名.方法名(對(duì)應(yīng)參數(shù))

當(dāng)一個(gè)類(lèi)中有多個(gè)方法痛倚,多個(gè)方法之間可以相互直接調(diào)用规婆,無(wú)需創(chuàng)建對(duì)象

使用格式:方法名(參數(shù));

注意

方法必須先定義再使用

方法的定義順序跟調(diào)用無(wú)關(guān)

/*

方法:方法就是對(duì)功能的封裝,可以提高代碼的復(fù)用性

工廠:

制造鋼鐵:原料礦石

制造牛奶:原料奶牛

定義方法的格式:

修飾符 返回值類(lèi)型 方法名(參數(shù)類(lèi)型 參數(shù)名1,參數(shù)類(lèi)型 參數(shù)名2,......){

執(zhí)行語(yǔ)句

………

return 返回值;

}

對(duì)于上面的語(yǔ)法格式中具體說(shuō)明如下:

修飾符:方法的修飾符比較多,有對(duì)訪問(wèn)權(quán)限進(jìn)行限定的蝉稳,有靜態(tài)修飾符static抒蚜,還有最終修飾符final等,

這些修飾符在后面的學(xué)習(xí)過(guò)程中會(huì)逐步介紹耘戚。目前使用固定的public static修飾符

返回值類(lèi)型:方法返回值的數(shù)據(jù)類(lèi)型

參數(shù)類(lèi)型:調(diào)用方法時(shí)傳入?yún)?shù)的數(shù)據(jù)類(lèi)型

參數(shù)名:是一個(gè)變量嗡髓,用于接收調(diào)用方法時(shí)傳入的數(shù)據(jù)

return關(guān)鍵字:用于結(jié)束方法以及返回返回值

返回值:被return語(yǔ)句返回的值,該值會(huì)返回給調(diào)用者, 返回值的數(shù)據(jù)類(lèi)型一定要與返回值類(lèi)型統(tǒng)一

方法調(diào)用格式:

方法名(參數(shù));

*/

public class Demo01Method{

public static void main(String[] args){

//調(diào)用方法

int c = add(3,4);//7

System.out.println("c? = " + c);

}

//定義求兩個(gè)整數(shù)和方法? ? 3? ? 4?

public static int add(int a,int b){

System.out.println("求兩個(gè)整數(shù)的和方法開(kāi)始");

int sum = a + b;

System.out.println("求兩個(gè)整數(shù)的和方法結(jié)束");

return sum;//7

}

}

1.2.2.2 調(diào)用方法介紹:求和方法編寫(xiě)

public class Demo01Method {

/*

* 寫(xiě)一個(gè)方法收津,用于求和饿这。

* 兩個(gè)明確: 返回值類(lèi)型 int 參數(shù)列表int a,int b

*/

public static int sum(int a,int b){

/*int c = a + b;

return c;*/

return a + b;

}

}

求和方法的調(diào)用(有明確返回值)

使用格式:方法名(參數(shù));

單獨(dú)調(diào)用,沒(méi)有意義

sum(10,20);

輸出調(diào)用撞秋,有意義长捧,但是不夠好,因?yàn)槲也灰欢ǚ且呀Y(jié)果輸出

System.out.println(sum(10,20));

賦值調(diào)用吻贿,推薦方式

int s = sum(10, 20);

// s+=100;

System.out.println("s:"+s);

求和方法的調(diào)用圖解

1.2.3 定義格式注意事項(xiàng)

a) 返回值類(lèi)型

可以返回任意類(lèi)型,包含基本數(shù)據(jù)類(lèi)型與引用數(shù)據(jù)數(shù)據(jù)類(lèi)型

如果沒(méi)有返回值串结,則使用void

b) return

結(jié)束方法的同時(shí)如果定義的返回值類(lèi)型不是void,則同時(shí)將結(jié)果返回給調(diào)用者。

當(dāng)返回值類(lèi)型為void時(shí)肌割,return后可以不跟返回值

當(dāng)返回值類(lèi)型為void時(shí)卧蜓,可以省略,Java會(huì)自動(dòng)補(bǔ)齊

c) 返回值

該方法運(yùn)算的數(shù)值結(jié)果把敞,該結(jié)果會(huì)通過(guò)return返回給調(diào)用者

有時(shí)結(jié)果運(yùn)行后沒(méi)有返回值弥奸。(買(mǎi)東西與買(mǎi)服務(wù))

返回值的數(shù)據(jù)類(lèi)型一定要與返回值類(lèi)型統(tǒng)一

d) 方法名

方法的名稱(chēng),區(qū)分不同方法的依據(jù)之一

定義符合小駝峰式? wordWordWord

e) 形式參數(shù)

是形式參數(shù)的數(shù)據(jù)類(lèi)型奋早,在定義時(shí)沒(méi)有賦值其爵,在方法使用時(shí)一定有值,所以可以使用該變量完成邏輯

是一個(gè)變量伸蚯,用于存儲(chǔ)調(diào)用方法時(shí)傳遞給方法的實(shí)際數(shù)值

/*

定義方法的注意事項(xiàng):

a)返回值類(lèi)型

可以返回任意類(lèi)型,包含基本數(shù)據(jù)類(lèi)型與引用數(shù)據(jù)數(shù)據(jù)類(lèi)型

如果沒(méi)有返回值摩渺,則使用void

b)return

結(jié)束方法的同時(shí)如果定義的返回值類(lèi)型不是void,則同時(shí)將結(jié)果返回給調(diào)用者剂邮。

當(dāng)返回值類(lèi)型為void時(shí)摇幻,return后可以不跟返回值

當(dāng)返回值類(lèi)型為void時(shí),return可以省略挥萌,Java會(huì)自動(dòng)補(bǔ)齊

c)返回值

該方法運(yùn)算的數(shù)值結(jié)果绰姻,該結(jié)果會(huì)通過(guò)return返回給調(diào)用者

有時(shí)結(jié)果運(yùn)行后沒(méi)有返回值。(買(mǎi)東西與買(mǎi)服務(wù))

返回值的數(shù)據(jù)類(lèi)型一定要與返回值類(lèi)型統(tǒng)一

d)方法名

方法的名稱(chēng)引瀑,區(qū)分不同方法的依據(jù)之一

定義符合小駝峰式? wordWordWord

e)形式參數(shù)

是形式參數(shù)的數(shù)據(jù)類(lèi)型狂芋,在定義時(shí)沒(méi)有賦值,在方法使用時(shí)一定有值憨栽,所以可以使用該變量完成邏輯

是一個(gè)變量帜矾,用于存儲(chǔ)調(diào)用方法時(shí)傳遞給方法的實(shí)際數(shù)值

*/

public class Demo02Method{

public static void main(String[] args){

//調(diào)用唐僧生孩子方法

//String xingMing = shengHaiZi(36);

//System.out.println("名字是: " + xingMing);?

//唐僧生一群孩子方法

String[] xingMings = shengYiQunHaiZi(108);

for(int i=0; i<xingMings.length; i++){

System.out.println("第"+(i+1)+"孩子的姓名是: " +xingMings[i]);

}?

//坐月子的方法

zuoYueZi(1800);

}

//定義一個(gè)唐僧生孩子方法

public static String shengHaiZi(int month){

System.out.println("懷了"+month+"個(gè)月,終于生孩子了!");

String name = "糖三角";

return name;

}

//定義一個(gè)唐僧生一群孩子方法

public static String[] shengYiQunHaiZi(int month){

System.out.println("懷了"+month+"個(gè)月,終于生了一群孩子了!");

String[] names = {"孫悟空","豬八戒","沙師弟","白龍馬"};

return names;

}

//定義一個(gè)坐月子的方法

public static void zuoYueZi(int day){

System.out.println("在床上躺了"+day+"天!");

//return;

}

}

1.2.4 定義格式void與參數(shù)詳解:

1.2.4.1 Void修飾的方法

格式

修飾符 void 方法名(參數(shù)類(lèi)型 參數(shù)名1,參數(shù)類(lèi)型 參數(shù)名2…) {

方法體;

return 返回值;

}

沒(méi)有明確返回值的函數(shù)調(diào)用:

其實(shí)就是void類(lèi)型方法的調(diào)用

只能單獨(dú)調(diào)用

案例

寫(xiě)一個(gè)方法屑柔,在控制臺(tái)輸出10次HelloWorld案例屡萤。

public class Demo01Method {

public static void main(String[] args) {

//單獨(dú)調(diào)用

printHelloWorld();

}

//在控制臺(tái)輸出10次HelloWorld案例。

public static void printHelloWorld() {

for(int x=1; x<=10; x++) {

System.out.println("HelloWorld");

}

}

}

1.2.4.2 Void修飾方法練習(xí)

1.2.4.2.1 定義一個(gè)方法掸宛,傳遞一個(gè)整數(shù)(大于1)死陆,在控制臺(tái)打印1到該數(shù)據(jù)的值。

public class Demo02Method {

public static void main(String[] args) {

printNumber(10);

System.out.println("-------------------");

printNumber(100);

}

//在控制臺(tái)打印1到該數(shù)據(jù)n的值

public static void printNumber(int n) {

for(int x=1; x<=n; x++) {

System.out.println(x);

}

}

}

1.2.4.2.2定義一個(gè)方法唧瘾,把所有的水仙花數(shù)打印在控制臺(tái)

public class Demo03Method {

public static void main(String[] args) {

printFlower();

}

//把所有的水仙花數(shù)打印在控制臺(tái)

public static void printFlower() {

for(int x=100; x<1000; x++) {

int ge = x%10;

int shi = x/10%10;

int bai = x/10/10%10;

if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x){

System.out.println(x);

}

}

}

}

1.2.5 方法參數(shù)傳遞問(wèn)題

1.2.5.1 參數(shù)傳遞概述

可以理解當(dāng)我們要調(diào)用一個(gè)方法時(shí)措译,我們會(huì)把指定的數(shù)值,傳遞給方法中的參數(shù)饰序,這樣方法中的參數(shù)就擁有了這個(gè)指定的值领虹,可以使用該值,在方法中運(yùn)算了菌羽。這種傳遞方式掠械,我們稱(chēng)為參數(shù)傳遞。

在這里注祖,定義方法時(shí)猾蒂,參數(shù)列表中的變量,我們稱(chēng)為形式參數(shù)

調(diào)用方法時(shí)是晨,傳入給方法的數(shù)值肚菠,我們稱(chēng)為實(shí)際參數(shù)

1.2.5.2 參數(shù)是基本類(lèi)型及圖解

n 形式參數(shù)的改變不影響實(shí)際參數(shù)。

public class Demo01Args {

public static void main(String[] args) {

// 定義變量

int a = 10;

int b = 20;

System.out.println("a:" + a + ",b:" + b);// a:10,b:20

change(a, b);

System.out.println("a:" + a + ",b:" + b);// a:10,b:20

}

public static void change(int a, int b) { // a=10,b=20

System.out.println("a:" + a + ",b:" + b);// a:10,b:20

a = b; // a=20;

b = a + b;// b=40;

System.out.println("a:" + a + ",b:" + b);// a:20,b:40

}

}

1.2.5.3 參數(shù)是引用類(lèi)型及圖解

public class Demo02Args {

public static void main(String[] args) {

// 定義數(shù)組

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

// 遍歷數(shù)組

for (int x = 0; x < arr.length; x++) {

System.out.println(arr[x]);

}

System.out.println("----------------");

change(arr);

for (int x = 0; x < arr.length; x++) {

System.out.println(arr[x]);

}

}

public static void change(int[] arr) {

for (int x = 0; x < arr.length; x++) {

// 如果元素是偶數(shù)罩缴,值就變?yōu)橐郧暗?倍

if (arr[x] % 2 == 0) {

arr[x] *= 2;

}

}

}

}

1.2.6 多個(gè)方法可以共同訪問(wèn)成員變量

當(dāng)一個(gè)類(lèi)中定義了多個(gè)方法時(shí)蚊逢,在方法A中定義的局部變量無(wú)法在方法B中直接訪問(wèn)。此時(shí)可以將變量定義在成員位置(類(lèi)中方法外)箫章,供多個(gè)方法同時(shí)訪問(wèn)烙荷。

使用static修飾的方法只能訪問(wèn)被static修飾的成員變量。

/*

多個(gè)方法之間不可以使用各自的局部變量

多個(gè)方法都可以使用成員變量,但是現(xiàn)在的方法都是用static修飾的,所以要訪問(wèn)成員變量,成員變量也必須被static修飾

成員變量:類(lèi)的里邊,方法的外邊

*/

public class Demo03Method{

//int x;//錯(cuò)誤: 無(wú)法從靜態(tài)上下文中引用非靜態(tài) 變量 x

static int x;

public static void main(String[] args){

x = 100;

System.out.println("x = " + x);?

//調(diào)用method2方法

method2();

}

//方法1

public static int method1(int a){

int b = 10;

System.out.println(a*b);

return a*b;

}

//方法2

public static void method2(){

//System.out.println(a*b);// 錯(cuò)誤: 找不到符號(hào) 方法2不能使用方法1里邊的變量

//x = 200;

System.out.println("x = " + x);

}

}

1.3 方法定義練習(xí)

分別定義如下方法:

1.3.1 無(wú)返回值無(wú)參數(shù)方法檬寂,如打印3*3的矩形

1.3.2 有返回值無(wú)參數(shù)方法终抽,如鍵盤(pán)錄入得到一個(gè)整數(shù)

1.3.3 無(wú)返回值有參數(shù)方法,如打印指定M*N的矩形

1.3.4 有返回值有參數(shù)方法桶至,如求三個(gè)數(shù)的平均值

/*

定義方法的練習(xí);

無(wú)返回值無(wú)參數(shù)方法昼伴,如用*打印3*3的矩形

無(wú)返回值有參數(shù)方法,如用*打印指定M*N的矩形

有返回值無(wú)參數(shù)方法镣屹,如鍵盤(pán)錄入得到一個(gè)整數(shù)

有返回值有參數(shù)方法圃郊,如求三個(gè)數(shù)的平均值

*/

import java.util.Scanner;

public class Demo04Method{

public static void main(String[] args){

//調(diào)用打印矩形方法

//printJX();

//調(diào)用打印不同矩形方法

//printJuXing(9,9);

//printJuXing(7,6);

//調(diào)用獲取整數(shù)的方法

int a = getNumber();

System.out.println("a = " + a);

//調(diào)用求3個(gè)小數(shù)平均數(shù)方法

double b = pingJun(3.0,4.0,5.0);

System.out.println("b = " + b);

}

/*

無(wú)返回值無(wú)參數(shù)方法,如用*打印3*3的矩形

返回值類(lèi)型: void

方法名: printJX

參數(shù)列表: 空

*/

public static void printJX(){

/*

***

***

***

*/

for(int i=0; i<3; i++){//控制打印行數(shù)

for(int j=0; j<3; j++){//控制每行打印幾個(gè)

System.out.print("*");

}

System.out.println();

}

}

/*

無(wú)返回值有參數(shù)方法女蜈,如用*打印指定M*N的矩形

返回值類(lèi)型: void

方法名: printJuXing

參數(shù)列表: int m, int n

*/

public static void printJuXing(int m, int n){

for(int i=0; i<m; i++){//控制打印行數(shù)

for(int j=0; j<n; j++){//控制每行打印幾個(gè)

System.out.print("*");

}

System.out.println();

}

}

/*

有返回值無(wú)參數(shù)方法持舆,如鍵盤(pán)錄入得到一個(gè)整數(shù)

返回值類(lèi)型: int

方法名: getNumber

參數(shù)列表: 空

*/

public static int getNumber(){

Scanner sc = new Scanner(System.in);

System.out.println("請(qǐng)輸入一個(gè)整數(shù): ");

int number = sc.nextInt();

return number;

}

/*

有返回值有參數(shù)方法,如求三個(gè)小數(shù)的平均值

返回值類(lèi)型: double

方法名: pingJun (avg)

參數(shù)列表: double a,double b,double c

*/

public static double pingJun(double a,double b,double c){

//double avg = (a + b + c)/3;

return (a + b + c)/3;

}

}

1.3.5 獲取兩個(gè)數(shù)據(jù)中的較大值

public class Demo03MethodTest {

public static void main(String[] args) {

//創(chuàng)建對(duì)象

Scanner sc = new Scanner(System.in);

//接收數(shù)據(jù)

System.out.println("請(qǐng)輸入第一個(gè)數(shù)據(jù):");

int x = sc.nextInt();

System.out.println("請(qǐng)輸入第二個(gè)數(shù)據(jù):");

int y = sc.nextInt();

//調(diào)用方法

int max = getMax(x,y);

System.out.println("max:"+max);

}

// 返回兩個(gè)數(shù)中的較大值

public static int getMax(int a, int b) {

if (a > b) {

return a;

} else {

return b;

}

}

}

1.3.6 比較兩個(gè)數(shù)據(jù)是否相等

public class Demo04MethodTest {

public static void main(String[] args) {

//創(chuàng)建對(duì)象

Scanner sc = new Scanner(System.in);

//接收數(shù)據(jù)

System.out.println("請(qǐng)輸入第一個(gè)數(shù)據(jù):");

int a = sc.nextInt();

System.out.println("請(qǐng)輸入第二個(gè)數(shù)據(jù):");

int b = sc.nextInt();

//調(diào)用方法

boolean flag = compare(a,b);

System.out.println("flag:"+flag);

}

//比較兩個(gè)數(shù)是否相等

public static boolean compare(int a,int b){

if(a==b){

return true;

}else {

return false;

}

}

}

1.3.7 獲取三個(gè)數(shù)據(jù)中的較大值

public class Demo05MethodTest {

public static void main(String[] args) {

//創(chuàng)建對(duì)象

Scanner sc = new Scanner(System.in);

//接收數(shù)據(jù)

System.out.println("請(qǐng)輸入第一個(gè)數(shù)據(jù):");

int a = sc.nextInt();

System.out.println("請(qǐng)輸入第二個(gè)數(shù)據(jù):");

int b = sc.nextInt();

System.out.println("請(qǐng)輸入第三個(gè)數(shù)據(jù):");

int c = sc.nextInt();

//調(diào)用方法

int max = getMax(a,b,c);

System.out.println("max:"+max);

}

// 返回三個(gè)數(shù)中的最大值

public static int getMax(int a, int b, int c) {

if (a > b) {

if (a > c) {

return a;

} else {

return c;

}

} else {

if (b > c) {

return b;

} else {

return c;

}

}

}

}

1.4 方法重載

在同一個(gè)類(lèi)中伪窖,不能出現(xiàn)兩個(gè)完全一樣的方法吏廉。但是如果有多個(gè)功能,而這些功能大致相同只是某些已知量不同時(shí)惰许,可以將兩個(gè)方法的名稱(chēng)定義成相同的席覆,而參數(shù)不同。這些相同名稱(chēng)不同參數(shù)的方法之間是重載關(guān)系汹买。

1.4.1 方法重載定義

在同一個(gè)類(lèi)中佩伤,出現(xiàn)方法名相同而參數(shù)列表不同,這樣定義方法叫做方法重載晦毙。

這樣的設(shè)計(jì)優(yōu)化了程序設(shè)計(jì)

如:求3個(gè)數(shù)生巡,4個(gè)數(shù)的和

方法定義:與求兩數(shù)邏輯類(lèi)似,求3见妒、4個(gè)數(shù)和的方法中中只有參數(shù)不同孤荣。方法名與求兩數(shù)的方法名相同,三個(gè)方法互為重載關(guān)系

public static int add(int a,int b) {邏輯} //兩個(gè)數(shù)加法

public static int add(int a,int b,int c) {邏輯} //三個(gè)數(shù)加法

public static int add(int a,int b,int c,int d) {邏輯} //四個(gè)數(shù)加法

方法使用:main方法中直接調(diào)用

/*

方法重載:在一個(gè)類(lèi)中方法名相同,參數(shù)列表不同

*/

public class Demo05Overload{

public static void main(String[] args){

System.out.println(add(10,20,30,40));

}

//兩個(gè)數(shù)加法

public static int add(int a,int b) {

System.out.println("調(diào)用兩個(gè)數(shù)相加");

return a + b;

}

//三個(gè)數(shù)加法

public static int add(int a,int b,int c) {

System.out.println("調(diào)用三個(gè)數(shù)相加");

return a + b + c;

}

//四個(gè)數(shù)加法

public static int add(int a,int b,int c,int d) {

System.out.println("調(diào)用四個(gè)數(shù)相加");

return a + b + c + d;

}

}

1.4.2 重載的注意事項(xiàng)

a) 重載方法參數(shù)必須不同:

參數(shù)個(gè)數(shù)不同,如method(int x)與method(int x,int y)不同

參數(shù)類(lèi)型不同盐股,如method(int x)與method(double x)不同

參數(shù)順序不同钱豁,如method(int x,double y)與method(double x,int y)不同

b) 重載只與方法名與參數(shù)類(lèi)型相關(guān)與返回值無(wú)關(guān)

如void method(int x)與int method(int y)不是方法重載,不能同時(shí)存在

c) 重載與具體的變量標(biāo)識(shí)符無(wú)關(guān)

如method(int x)與method(int y)不是方法重載疯汁,不能同時(shí)存在

/*

重載的注意事項(xiàng)

a)重載方法參數(shù)必須不同:

參數(shù)個(gè)數(shù)不同牲尺,如method(int x)與method(int x,int y)不同

參數(shù)類(lèi)型不同,如method(int x)與method(double x)不同

參數(shù)順序不同幌蚊,如method(int x,double y)與method(double x,int y)不同

b)重載只與方法名與參數(shù)類(lèi)型相關(guān)與返回值無(wú)關(guān)

如void method(int x)與int method(int y)不是方法重載谤碳,不能同時(shí)存在

c)重載與具體的變量標(biāo)識(shí)符無(wú)關(guān)

如method(int x)與method(int y)不是方法重載,不能同時(shí)存在

*/

public class Demo06Overload{

public static void main(String[] args){

//求兩個(gè)小數(shù)的和

//double sum = add(3.1,3.4);

//System.out.println("sum = " + sum);

//求兩個(gè)整數(shù)的和

//System.out.println(add(100,200));

System.out.println(add(100,200.0));

System.out.println(add(3.14,200));

}

//兩個(gè)數(shù)加法

public static int add(int a,double b) {

System.out.println("調(diào)用先int兩個(gè)數(shù)相加");

return (int)(a + b);

}

//兩個(gè)數(shù)加法

/*

c)重載與具體的變量標(biāo)識(shí)符無(wú)關(guān)

如method(int x)與method(int y)不是方法重載溢豆,不能同時(shí)存在

public static int add(int x,double y) {

System.out.println("調(diào)用先int兩個(gè)數(shù)相加");

return (int)(x + y);

}

*/

//兩個(gè)數(shù)加法

public static double add1(int a,double b) {

System.out.println("調(diào)用先int兩個(gè)數(shù)相加");

return (a + b);

}

//兩個(gè)數(shù)加法

public static double add(double a,int b) {

System.out.println("調(diào)用先double兩個(gè)數(shù)相加");

return a + b;

}

//兩個(gè)數(shù)小數(shù)加法

public static double add(double a,double b) {

System.out.println("調(diào)用兩個(gè)小數(shù)相加");

return a + b;

}

//三個(gè)數(shù)加法

public static int add(int a,int b,int c) {

System.out.println("調(diào)用三個(gè)數(shù)相加");

return a + b + c;

}

//四個(gè)數(shù)加法

public static int add(int a,int b,int c,int d) {

System.out.println("調(diào)用四個(gè)數(shù)相加");

return a + b + c + d;

}

}

1.4.3 練習(xí)

1.4.3.1 比較兩個(gè)數(shù)據(jù)是否相等蜒简。

參數(shù)類(lèi)型分別為兩個(gè)byte類(lèi)型,兩個(gè)short類(lèi)型漩仙,兩個(gè)int類(lèi)型臭蚁,兩個(gè)long類(lèi)型,并在main方法中進(jìn)行測(cè)試

public class Demo02MethodTest {

public static void main(String[] args) {

// 調(diào)用

System.out.println(compare(10, 20));//整數(shù)默認(rèn)為int類(lèi)型

System.out.println("-------------");

System.out.println(compare((byte)10, (byte)20));

System.out.println("-------------");

System.out.println(compare((short)10, (short)20));

System.out.println("-------------");

//System.out.println(compare((long)10, (long)20));

System.out.println(compare(10L, 20L));

}

// 兩個(gè)byte類(lèi)型的

public static boolean compare(byte a, byte b) {

System.out.println("byte");

// 第一種寫(xiě)法

// boolean flag = a==b?true:false;

// return flag;

// 第二種寫(xiě)法

// boolean flag = a == b;

// return flag;

// 第三種寫(xiě)法

return a == b;

}

// 兩個(gè)short類(lèi)型的

public static boolean compare(short a, short b) {

System.out.println("short");

return a == b;

}

// 兩個(gè)int類(lèi)型的

public static boolean compare(int a, int b) {

System.out.println("int");

return a == b;

}

// 兩個(gè)long類(lèi)型的

public static boolean compare(long a, long b) {

System.out.println("long");

return a == b;

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讯赏,一起剝皮案震驚了整個(gè)濱河市垮兑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漱挎,老刑警劉巖系枪,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異磕谅,居然都是意外死亡私爷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)膊夹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)衬浑,“玉大人,你說(shuō)我怎么就攤上這事放刨」ぶ龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵进统,是天一觀的道長(zhǎng)助币。 經(jīng)常有香客問(wèn)我,道長(zhǎng)螟碎,這世上最難降的妖魔是什么眉菱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮掉分,結(jié)果婚禮上俭缓,老公的妹妹穿的比我還像新娘克伊。我一直安慰自己,他們只是感情好华坦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布愿吹。 她就那樣靜靜地躺著,像睡著了一般季春。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上消返,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天载弄,我揣著相機(jī)與錄音,去河邊找鬼撵颊。 笑死宇攻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的倡勇。 我是一名探鬼主播逞刷,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼妻熊!你這毒婦竟也來(lái)了夸浅?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扔役,失蹤者是張志新(化名)和其女友劉穎帆喇,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體亿胸,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坯钦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侈玄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婉刀。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖序仙,靈堂內(nèi)的尸體忽然破棺而出突颊,到底是詐尸還是另有隱情,我是刑警寧澤潘悼,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布洋丐,位于F島的核電站,受9級(jí)特大地震影響挥等,放射性物質(zhì)發(fā)生泄漏友绝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一肝劲、第九天 我趴在偏房一處隱蔽的房頂上張望迁客。 院中可真熱鬧郭宝,春花似錦、人聲如沸掷漱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)卜范。三九已至衔统,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間海雪,已是汗流浹背锦爵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留奥裸,地道東北人险掀。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像湾宙,于是被迫代替她去往敵國(guó)和親樟氢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容