1.普通方法:
定義:簡(jiǎn)單的說(shuō)方法就是完成特定功能的代碼塊。
普通方法定義格式:
修飾符 返回值類型 方法名 (參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2,.........) { 函數(shù)體; return 返回值; }
返回值類型用于限定返回值的數(shù)據(jù)類型。
普通方法分為:有明確返回值的方法和沒(méi)有明確返回值的方法。
A.有明確返回值的方法的調(diào)用
可以單獨(dú)調(diào)用(無(wú)意義)、輸出調(diào)用、賦值調(diào)用(推薦)。
1
2
3
4
5
6
7
8
9
10
11
|
public static int sum ( int a , int b) { int c =a+b; return c ; } public static void main(String[] args) { //sum(10,20); //單獨(dú)調(diào)用 //System.out.println(sum(10,20)); //輸出調(diào)用 int sum01 =sum( 10 , 20 ); //賦值調(diào)用 } |
B.沒(méi)有明確返回值的方法調(diào)用(void類型方法的調(diào)用)
只能單獨(dú)使用。
(如果一個(gè)方法沒(méi)有明確的返回值類型,方法定義中的“返回值類型”就用void代替,表示該方法無(wú)返回值類型。)
定義:簡(jiǎn)單的來(lái)說(shuō)是給對(duì)象的數(shù)據(jù)進(jìn)行初始化的。
構(gòu)造方法是類的一個(gè)特殊的成員,在類實(shí)例化時(shí)會(huì)自動(dòng)調(diào)用。
構(gòu)造方法定義格式:
修飾符 方法名() { }
注意:
1.方法名與類名相同。
2.沒(méi)有返回值類型。 3.沒(méi)有具體的返回值。
構(gòu)造方法分為:無(wú)參構(gòu)造方法和有參構(gòu)造方法。
A.無(wú)參構(gòu)造方法
1
2
3
4
5
6
7
8
9
10
|
public class Student{ public Student(){ //無(wú)參構(gòu)造方法 System.out.println( "無(wú)參方法被調(diào)用" ); } } public class Test { public static void main (String[] args){ Student stu = new Student(); //實(shí)例化Student對(duì)象 } } //該方法是無(wú)參的構(gòu)造方法,即構(gòu)造方法不接收參數(shù),執(zhí)行后輸出即可,無(wú)參的構(gòu)造方法被調(diào)用。 |
B.無(wú)參構(gòu)造方法
為一個(gè)屬性賦值有兩種方法:①、直接訪問(wèn)對(duì)象屬性 ②、通過(guò)setXxx()方法
如果想在實(shí)例化對(duì)象的同時(shí)就為這個(gè)對(duì)象的屬性進(jìn)行賦值,可以通過(guò)帶參數(shù)的構(gòu)造方法來(lái)實(shí)現(xiàn)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class Student{ private String name; private int age; public Student(String name, int age){ //有參構(gòu)造方法 this name = name; this age = age ; } public void show (){ System.out.println( "姓名:" +name+ "年齡:" +age); } } public class Test02(){ public static void main (String[] args) { Student stu = new Student( "王小五" , 25 ); //實(shí)例化對(duì)象的同時(shí)賦值 stu.show(); } } |
構(gòu)造方法注意事項(xiàng):
1.java中的每一個(gè)類都至少有一個(gè)構(gòu)造方法,如果我們沒(méi)有創(chuàng)建,系統(tǒng)會(huì)為我們創(chuàng)建一個(gè)默認(rèn)的無(wú)參構(gòu)造方法。(不顯示代碼)
2.但是如果我們定義了構(gòu)造方法,系統(tǒng)就不會(huì)再為我們提供默認(rèn)的無(wú)參構(gòu)造方法了。這個(gè)時(shí)候想使用無(wú)參構(gòu)造方法必須自己定義。因?yàn)閷?shí)例化對(duì)象時(shí),不一定會(huì)輸入?yún)?shù),那么沒(méi)有無(wú)參的構(gòu)造方法,又不輸入?yún)?shù),就會(huì)出錯(cuò)。
3.構(gòu)造方法需要用public來(lái)修飾,若使用private,在其他類中無(wú)法將其實(shí)例化。
4.構(gòu)造方法是可以重載的。
補(bǔ)充知識(shí):java中 concat()方法 , "+"和append()方法的區(qū)別?
由下面的例子可看出,"+"和append()方法都可以對(duì)任意類型數(shù)據(jù)進(jìn)行拼接,而concat()方法則需要將其他類型的數(shù)據(jù)則要轉(zhuǎn)化為字符串后才能拼接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package 練習(xí)題; import java.util.ArrayList; import java.util.List; public class 練習(xí)題 29 { public static void main(String[] args) { List<Object> list= new ArrayList<Object>(); list.add( 100 ); list.add( '日' ); list.add( "沖刺,決勝高考!" ); StringBuffer sb= new StringBuffer(); for ( char i= 0 ;i<list.size();i++){ sb.append(list.get(i)); } System.err.println(sb); String s1= "" ; for ( char i= 0 ;i<list.size();i++){ s1=s1+list.get(i); } System.err.println(s1); String s2= "" ; for ( char i= 0 ;i<list.size();i++){ s2=s2.concat( list.get(i).toString()); } System.err.println(s2); String str1= "" ; System.err.println(str1.concat( null )); //運(yùn)行后報(bào)空指針異常NullPointerException String str2= null ; System.err.println(str2.concat( "asdf" )); //運(yùn)行后報(bào)空指針異常NullPointerException } } |
輸出結(jié)果:
100日沖刺,決勝高考!
100日沖刺,決勝高考!
100日沖刺,決勝高考!
Exception in thread "main" java.lang.NullPointerException
concat()方法:String類的concat()方法(只能用于拼接字符串,不能拼接其他類型的數(shù)據(jù))將指定的字符串拼接到該字符串的末尾。并且字符串本身和拼接的字符串都不能為null,否則運(yùn)行程序后會(huì)報(bào)空指針異常NullPointerException(編譯時(shí)沒(méi)有報(bào)錯(cuò))。
"+":可以對(duì)字符,數(shù)字,字符串等數(shù)據(jù)類型的拼接
append()方法:可以對(duì)字符,數(shù)字,字符串等數(shù)據(jù)類型的拼接,結(jié)果返回一個(gè)StringBuffer類型的對(duì)象
以上這篇java中構(gòu)造方法和普通方法的區(qū)別說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/lrhya/p/10644338.html