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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

零基础自学java_零基础学Java——小白的Java之路(4)

發(fā)布時間:2024/7/23 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 零基础自学java_零基础学Java——小白的Java之路(4) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

方法

方法是一段可以重復(fù)調(diào)用的代碼塊,這個代碼塊實現(xiàn)了某個功能,當(dāng)我們的程序中需要這一個功能的時候,調(diào)用這個方法即可,不再需要重復(fù)書寫這個功能的代碼。

方法的定義格式

public static ( ,... ){

方法體;

[return 表達(dá)值]

注意:返回值類型為void的時候,方法沒有返回值,return可以省略

}

格式說明:

public   ?? 表示公共的,修飾的方法可以在任意類中使用。

static    表示靜態(tài)的,修飾的方法可以通過類名直接調(diào)用,如若在同一個類中,類名可以省略,直接通過方法名調(diào)用。

返回值類型  表示通過調(diào)用方法可以得到的結(jié)果的數(shù)據(jù)類型,它可以是Java數(shù)據(jù)類型中的任意數(shù)據(jù)類型。

void是個特殊的返回值類型,它表示這個方法完成功能,但是不返回,所以當(dāng)返回值類型為void的時候,return可以省略。

如果返回值是某個具體的數(shù)據(jù)類型,則表示這個方法完成后會返回一個具體值,那么在方法體的最后需要用一個return語句返回這個值。

方法名稱   表示方法的名字,應(yīng)該符合標(biāo)識符規(guī)范

參數(shù)列表   表示這個方法要完成功能需要參照的數(shù)據(jù)。

定義方法時稱作形參,調(diào)用方法時需要給出具體的參數(shù)值稱作實參。實參與形參一一對應(yīng)。

一個方法可以有多個參數(shù),用逗號隔開。如:

參數(shù)類型1? 參數(shù)名字1,參數(shù)類型2? 參數(shù)名字2……

方法體   放在{}中,是實現(xiàn)方法功能的代碼塊。

如果方法不包含參數(shù),且沒有返回值,我們稱為無參無返回值的方法。

方法的使用分為兩步:

第一步,定義方法

例如:下面代碼定義了一個方法名為 show ,沒有參數(shù),且沒有返回值的方法,執(zhí)行的操作為輸出 “ welcome to Java. ”

注意:

方法體放在一對大括號中,實現(xiàn)特定的操作

方法名主要在調(diào)用這個方法時使用,需要注意命名的規(guī)范,一般采用第一個單詞首字母小寫,其它單詞首字母大寫的形式

第二步,調(diào)用方法

當(dāng)需要調(diào)用方法執(zhí)行某個操作時,可以先創(chuàng)建類的對象,然后通過 ?對象名.方法名();??來實現(xiàn)

例如:在下面的代碼中,我們創(chuàng)建了一個名為 hello 的對象,然后通過調(diào)用該對象的 show( )?方法輸出信息

public class HelloWorld {

public static void main(String[] args) {

// 創(chuàng)建對象,對象名為hello

HelloWorld hello = new HelloWorld();

// 調(diào)用方法

hello.show();

}

//定義方法

public void show() {

System.out.println("Welcome to Java.");

}

}

運行結(jié)果為:Welcome to Java.

如果方法不包含參數(shù),但有返回值,我們稱為無參帶返回值的方法。

例如:下面的代碼,定義了一個方法名為 calSum ,無參數(shù),但返回值為 int 類型的方法,執(zhí)行的操作為計算兩數(shù)之和,并返回結(jié)果

public int calcSum{

int a=5;

int b=12;

int sum=a+b;

return sum;

}

在 calSum( ) 方法中,返回值類型為 int 類型,因此在方法體中必須使用 return 返回一個整數(shù)值。

調(diào)用帶返回值的方法時需要注意,由于方法執(zhí)行后會返回一個結(jié)果,因此在調(diào)用帶返回值方法時一般都會接收其返回值并進(jìn)行處理。如:

public class HelloWorld {

public static void main(String[] args) {

// 創(chuàng)建名為hello的對象

HelloWorld hello = new HelloWorld();

// 調(diào)用方法并接收方法的返回值,保存在變量sum中

int sum = hello.calcSum();

System.out.println("和為:" + sum);

}

// 定義無參帶返回值的方法

public int calcSum() {

int a= 5;

int b =12;

int sum =a + b;

// 使用return返回值

return sum;

}

}

運行結(jié)果為:和為:17

不容忽視的“小陷阱”:

1、 如果方法的返回類型為 void ,則方法中不能使用 return 返回值!

public void showInfo(){

return "Java";

}

2、 方法的返回值最多只能有一個,不能返回多個值

public int getInfo(){

int score1=94;

int score2=87;

return score1,score2;

}

3、 方法返回值的類型必須兼容,例如,如果返回值類型為 int ,則不能返回 String 型值

public int getInfo(){

String name="java";

return name;

}

有時方法的執(zhí)行需要依賴于某些條件,換句話說,要想通過方法完成特定的功能,需要為其提供額外的信息才行。例如,現(xiàn)實生活中電飯鍋可以實現(xiàn)“煮飯”的功能,但前提是我們必須提供食材,如果我們什么都不提供,那就真是的“巧婦難為無米之炊”了。我們可以通過在方法中加入?yún)?shù)列表接收外部傳入的數(shù)據(jù)信息,參數(shù)可以是任意的基本類型數(shù)據(jù)或引用類型數(shù)據(jù)。

我們先來看一個帶參數(shù),但沒有返回值的方法:

public void show(String name){

System.out.println("歡迎您,"+name);

}

上面的代碼定義了一個 show 方法,帶有一個參數(shù) name ,實現(xiàn)輸出歡迎消息。

調(diào)用帶參方法與調(diào)用無參方法的語法類似,但在調(diào)用時必須傳入實際的參數(shù)值

對象名.方法名(實參1,實參2,......,實參n)

很多時候,我們把定義方法時的參數(shù)稱為形參,目的是用來定義方法需要傳入的參數(shù)的個數(shù)和類型;把調(diào)用方法時的參數(shù)稱為實參,是傳遞給方法真正被處理的值。

一定不可忽視的問題:

1、 調(diào)用帶參方法時,必須保證實參的數(shù)量、類型、順序與形參一一對應(yīng)

2、 調(diào)用方法時,實參不需要指定數(shù)據(jù)類型

3、 方法的參數(shù)可以是基本數(shù)據(jù)類型,如 int、double 等,也可以是引用數(shù)據(jù)類型,如 String、數(shù)組等

4、 當(dāng)方法參數(shù)有多個時,多個參數(shù)間以逗號分隔

如果方法既包含參數(shù),又帶有返回值,我們稱為帶參帶返回值的方法。

例如:下面的代碼,定義了一個 show 方法,帶有一個參數(shù) name ,方法執(zhí)行后返回一個 String 類型的結(jié)果

public String show(String name){

return "歡迎你,"+name;

}

調(diào)用帶參帶返回值的方法:

HelloWorld hello =new HelloWorld();

String welcome =hello.show("java");

System.out.println(welcome);

結(jié)果為:歡迎你,java

示例代碼

1 //方法是可以重復(fù)使用的代碼塊

2 public classMethodTest{3

4 //定義

5 /*

6 public static ( ,... ){7

8 方法體;9 [return 表達(dá)值]10 注意:返回值類型為void的時候,方法沒有返回值,return可以省略11 }12 public 表示公共的,修飾的方法可以在任意的類當(dāng)中使用13 static 表示靜態(tài)的,修飾的方法可以通過類名直接調(diào)用,如若在同一個類中,類名可以省略14 返回值類型 可以是Java中任何數(shù)據(jù)類型,如果沒有返回值,返回值類型為viod15 方法名稱 符合標(biāo)識符定義規(guī)則16 參數(shù)列表 定義在()中,如果沒有參數(shù)可以不寫,但()不能省略17 方法體 完成功能的代碼,注意return的使用18

19

20 */

21 //調(diào)用

22 /*

23 方法名稱(實際參數(shù));24 */

25

26 //無參無返回值方法

27 public static voidprint(){28

29 System.out.println("********");30 }31

32 public voidshow(){33

34 System.out.println("學(xué)習(xí) Java 編程");35 }36

37 //有參有返回值方法

38 public static int add(int a,intb){39

40 return a+b;41 }42

43 public static double avg(double x,doubley){44

45 double z=(x+y)/2;46 returnz;47 }48

49 //main() Java程序執(zhí)行的入口

50 public static voidmain(String args[]){51

52 //調(diào)用方法print53 //直接靜態(tài)方法名調(diào)用

54 print();55 //類名調(diào)用

56 MethodTest.print();57 //創(chuàng)建類的對象調(diào)用

58 MethodTest hello = newMethodTest();59 hello.show();60

61 int num1=2;62 int num2=3;63 System.out.println(add(num1,num2));64

65 double c =90;66 double d =59.5;67 double e=avg(c,d);68 System.out.println("平均值為"+e);69

70 int arr[]=new int[3];71 arr[0]=1;72 arr[1]=2;73 arr[2]=3;74 int s=sum(arr); //實參寫數(shù)組的名稱

75 System.out.println("和為"+s);76 int m=max(arr);77 System.out.println("最大值為"+m);78

79 double[] arr1 =getArr(4);80 for(int i =0;i

82 System.out.print(arr1[i]+",");83 }84

85

86 }87

88 //數(shù)組作為方法的參數(shù)

89 public static int sum(int[] arr){90

91 int s=0;92 for(int i=0;i

94 s+=arr[i];95 }96 returns;97 }98

99 public static int max(int[] arr){100

101 int max=arr[0];102 for(int i =0;i

104 if(arr[i]>max){105 max=arr[i];106 }107 }108 returnmax;109 }110

111 //返回值類型是數(shù)組

112 public static double[] getArr(intn){113

114 double arr[]=new double[n];115 for(int i =0;i

方法

字符串

在程序開發(fā)中字符串無處不在,如用戶登陸時輸入的用戶名、密碼等使用的就是字符串。其實,在前面的章節(jié)中我們就已經(jīng)使用了字符串,例如我們在控制臺中輸出的 "Hello World"

在 Java 中,字符串被作為 String 類型的對象處理。?String 類位于 java.lang 包中。默認(rèn)情況下,該包被自動導(dǎo)入所有的程序。

創(chuàng)建 String 對象的方法:

String s1="java";

String s2=new String();

String s3=new String("java");

String 對象創(chuàng)建后則不能被修改,是不可變的,所謂的修改其實是創(chuàng)建了新的對象,所指向的內(nèi)存空間不同。

String 類提供了許多用來處理字符串的方法,例如,獲取字符串長度、對字符串進(jìn)行截取、將字符串轉(zhuǎn)換為大寫或小寫、字符串分割等,下面我們就來領(lǐng)略它的強(qiáng)大之處吧。

String 類的常用方法:

結(jié)合代碼來熟悉一下方法的使用:

運行結(jié)果:

友情提示:

1. 字符串中字符的索引從0開始,范圍為 0 到 字符串長度-1

2. 使用 indexOf 進(jìn)行字符或字符串查找時,如果匹配返回位置索引;如果沒有匹配結(jié)果,返回 -1

3. 使用 substring(beginIndex , endIndex) 進(jìn)行字符串截取時,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符

那么,“==” 和 equals() 有什么區(qū)別呢?

==: 判斷兩個字符串在內(nèi)存中首地址是否相同,即判斷是否是同一個字符串對象

equals(): 比較存儲在兩個字符串對象中的內(nèi)容是否一致

PS:字節(jié)是計算機(jī)存儲信息的基本單位,1 個字節(jié)等于 8 位,?gbk?編碼中 1 個漢字字符存儲需要 2 個字節(jié),1 個英文字符存儲需要 1 個字節(jié)。所以我們看到上面的程序運行結(jié)果中,每個漢字對應(yīng)兩個字節(jié)值,如“學(xué)”對應(yīng) “-47 -89” ,而英文字母 “J” 對應(yīng) “74” 。同時,我們還發(fā)現(xiàn)漢字對應(yīng)的字節(jié)值為負(fù)數(shù),原因在于每個字節(jié)是 8 位,最大值不能超過 127,而漢字轉(zhuǎn)換為字節(jié)后超過 127,如果超過就會溢出,以負(fù)數(shù)的形式顯示。

在Java中,除了可以使用 String 類來存儲字符串,還可以使用 StringBuilder 類或 StringBuffer 類存儲字符串,那么它們之間有什么區(qū)別呢?

String 類具有是不可變性。

程序運行時會額外創(chuàng)建一個對象,保存數(shù)據(jù),當(dāng)頻繁操作字符串時,就會額外產(chǎn)生很多臨時變量。使用 StringBuilder 或 StringBuffer 就可以避免這個問題。至于 StringBuilder 和StringBuffer ,它們基本相似,不同之處,StringBuffer 是線程安全的,而 StringBuilder 則沒有實現(xiàn)線程安全功能,所以性能略高。因此一般情況下,如果需要創(chuàng)建一個內(nèi)容可變的字符串對象,應(yīng)優(yōu)先考慮使用 StringBuilder 類。

那么如何定義?StringBuilder 類的對象呢? 我們來看下面的代碼:

// 創(chuàng)建一個StringBuilder對象,用來存儲字符串

StringBuilder hobby=new StringBuilder("java");

StringBuilder 類提供了很多方法來操作字符串:

例如:在下面的示例代碼中,創(chuàng)建了 StringBuilder 對象,用來存儲字符串,并對其做了追加和插入操作。這些操作修改了 str 對象的值,而沒有創(chuàng)建新的對象,這就是 StringBuilder 和 String 最大的區(qū)別。

運行結(jié)果:

示例代碼

1 //字符串 字符的序列2 //String類 創(chuàng)建后不再修改的字符串常量3 //StringBuffer 可以修改的字符串變量

4

5 public classStringTest{6

7 public static voidmain(String args[]){8

9 //定義字符串

10 String hello ="hello world!";11

12 //length() 獲取字符串的長度

13 System.out.println("字符串的長度是:"+hello.length());14

15 //charAt(int 索引) 獲取字符串中的指定的字符

16 char ch =hello.charAt(0);17 System.out.println("ch="+ch);18

19 //intdexOf(int ‘ch’) 返回指定字符在字符串中的首次出現(xiàn)的索引,如果不存在返回-1

20 int idx =hello.indexOf('l');21 while(idx!=-1){22

23 System.out.println("idx="+idx);24 idx = hello.indexOf('l',idx+1);25 }26

27 //toUpperCase() 全部轉(zhuǎn)大寫,結(jié)果以新的字符串返回,原字符串內(nèi)容不變

28 String hello_new=hello.toUpperCase();29 System.out.println("hello="+hello);30 System.out.println(hello_new);31

32 //toLowerCase() 全部轉(zhuǎn)小寫33

34 //trim 將字符串前后包含的空白字符去掉

35 String str2 = " test 1 ";36 String str2_new=str2.trim();37 System.out.println(str2);38 System.out.println(str2_new);39

40 //substring(int 起始索引,int 結(jié)束索引)

41 String str3=hello.substring(0,2);42 System.out.println(str3);43

44 //equals(String 另一個字符) 比較兩個字符串內(nèi)容是否相同

45 boolean b1=hello.equals("hello world!");46 System.out.println(b1);47

48 //valueOf() 其他類型數(shù)據(jù)轉(zhuǎn)換成字符串49 //split

50 String str5 = "Hello world java haha";51

52 String[] arr = str5.split(" ");53 for(int i=0;i

字符串1

1 //equals 和 ==比較

2 public classStringTest2{3

4 public static voidmain(String args[]){5

6 String a="hello";7 String b="hello";8 String str1=new String("hello");9 String str2=new String("hello");10 System.out.println(str1+"--"+str2);11

12 //equals(String 另一個字符) 比較內(nèi)容

13 System.out.println(str1.equals(str2));14

15 //== 比較是否為同一個對象,通過比較內(nèi)存地址是否相同來判斷是否為同一對象

16 System.out.println(a==b);17 }18 }

字符串2

新特性

在JDK5.0之后,Java中為了方便開發(fā),引入了大量的新特性,這次主要介紹:可變參數(shù)、foreach輸出。

一個方法在調(diào)用的時候必須根據(jù)其規(guī)定的參數(shù)傳遞參數(shù),規(guī)定了5個,就必須傳遞五個,但是在JDK5.0之后,為了讓方法更加具有靈活性,使用了可變參數(shù),在調(diào)用方法的時候可以給出任意個數(shù)的實參。

可變參數(shù)的方法定義:

返回值類型?? 方法名稱(參數(shù)類型…參數(shù)名稱){}

數(shù)組的輸出,一般都會使用for循環(huán)輸出,為了方便數(shù)組的輸出,提供了一種foreach語法,其語法 的使用格式如下,會遍歷數(shù)組的元素。

for(數(shù)據(jù)類型 變量名稱:數(shù)組名稱){

……….

}

示例代碼

1 //可變參數(shù)2 //foreach

3

4 public classTest{5

6 //可變參數(shù)

7 /*

8 方法名稱(參數(shù)類型...參數(shù)名){}9 */

10

11 //foreach輸出

12 /*

13 for(數(shù)據(jù)類型 變量名:數(shù)組名){14

15

16 }17 //注意數(shù)據(jù)類型和數(shù)組的數(shù)據(jù)類型一致18 */

19 public static void test(int... a){20 System.out.println(a.length);21 int sum=0;22 /*for(int i=0;i

26 for(inta1:a){27 sum+=a1;28 System.out.println(a1);29 }30 System.out.println("sum="+sum);31

32 }33

34 public static voidmain(String args[]){35 test(5,6,67,6767,78);36

37 }38 }

新特性

練習(xí)

輸入一句話,取反輸出,按以下兩種方式。例如:輸入的是hello java,輸出為java hello、avaj olleh。

1 //輸入一句話,取反輸出,按以下兩種方式。例如:輸入的是hello java,輸出為java hello、avaj olleh。

2 importjava.util.Scanner;3 public classHWday3Test1{4

5 public static voidmain(String args[]){6

7 System.out.print("請輸入一句話:");8

9 Scanner scan=newScanner(System.in);10

11 String a=scan.nextLine();12

13 out(a);14

15

16

17 }18 public static voidout(String number) {19

20 String[] numbers = number.split(" ");21

22 StringBuffer sb = newStringBuffer();23

24 for (int i = numbers.length -1; i >= 0; i--) {25

26 sb.append(numbers[i]);27

28 if(i > 0) {29

30 sb.append(" ");31 }32 }33 System.out.println(sb.toString());34

35 char[] ch = new char[number.length()];36

37 sb = newStringBuffer();38

39 for (int i =0 ; i

41 ch[i]=number.charAt(i);42 }43

44 for (int i = ch.length - 1; i >= 0; i--) {45

46 sb.append(ch[i]);47 }48 System.out.println(sb.toString());49 }50

51

52 }

第一題

定義一個整數(shù)數(shù)組并初始化,編寫兩個方法分別獲取這個數(shù)組的最大值和最小值。

1 //定義一個整數(shù)數(shù)組并初始化,編寫兩個方法分別獲取這個數(shù)組的最大值和最小值。

2

3 public classHWDay3Test2{4

5 public static voidmain(String args[]){6

7 int[] arr={3,23,45,65464,778};8

9 min(arr);10

11 max(arr);12 }13

14 public static void min(int[] arr){15

16 int min=arr[0];17 for(int i =0;i

19 if(arr[i]

26 public static void max(int[] arr){27

28 int max=arr[0];29 for(int i =0;i

31 if(arr[i]>max){32 max=arr[i];33 }34 }35 System.out.println("最大值為:"+max);36 }37 }

第二題

編寫方法,打印1-100之間所有的偶數(shù),每行顯示10個數(shù)字,每個數(shù)字之間用空格或“,”隔開。

1 //編寫方法,打印1-100之間所有的偶數(shù),每行顯示10個數(shù)字,每個數(shù)字之間用空格或“,”隔開。

2 public classHWDay3Test3{3

4 public static voidmain(String args[]){5

6 show();7 }8

9 public static voidshow(){10

11 int count=1;12

13 for(int i=1;i<=100;i++){14

15 if(count>10){16

17 System.out.println();18 count=1;19 }20 if(i%2==0){21

22 count++;23 System.out.print(i+"\t");24 }25

26 }27 }28 }

第三題

編寫方法,將數(shù)字字符('1')轉(zhuǎn)換成對應(yīng)的數(shù)字(1)。如果可以轉(zhuǎn)換,返回對應(yīng)的數(shù)字;如果不能轉(zhuǎn)換,則返回-1。

1 //編寫方法,將數(shù)字字符('1')轉(zhuǎn)換成對應(yīng)的數(shù)字(1)。如果可以轉(zhuǎn)換,返回對應(yīng)的數(shù)字;如果不能轉(zhuǎn)換,則返回-1。

2 importjava.util.Scanner;3 public classHWDay3Test4{4

5 public static int change(chara){6

7 if(a>='0'&&a<='9'){8

9 return a-48;10 }11 else{12

13 return -1;14 }15 }16

17 public static voidmain(String args[]){18

19 System.out.print("請輸入一個字符:");20

21 Scanner scan=newScanner(System.in);22

23 char a =scan.next().charAt(0);24

25 int b=change(a);26

27 System.out.println(b);28 }29 }

第四題

編寫方法,交換兩個變量的值。

1 //編寫方法,交換兩個變量的值。

2 importjava.util.Scanner;3 public classHWDay3Test5{4

5 public static voidmain(String args[]){6

7 Scanner scan=newScanner(System.in);8

9 System.out.print("輸入變量a:");10

11 String a =scan.next();12

13 System.out.print("輸入變量b:");14

15 String b =scan.next();16

17 change(a,b);18 }19

20 public static voidchange(String a,String b){21

22 String c =a;23

24 System.out.println("交換前:a="+a);25

26 System.out.println("交換前:b="+b);27

28 a=b;29

30 b=c;31

32 System.out.println("交換后:a="+a);33

34 System.out.println("交換后:b="+b);35 }36 }

第五題

總結(jié)

以上是生活随笔為你收集整理的零基础自学java_零基础学Java——小白的Java之路(4)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。