java方法傳遞參數
❶ java 方法 傳參
要是想傳字面量的話 就這樣
public class D {
public static void main(String[] args) throws Exception {
byte a = 45;
t(a);
t((byte)45);
}
public static void t(byte a) {
System.out.println(a);
}
}
正確的傳參方式
❷ java 方法傳參時,不是必須傳的參數如何設置
1、java是強匹配的,調用方法,對應的參數必須要有值,如果不是必須傳的,意思是你可能不需要用的,可以傳null
2、或者改造原有的方法參數,把多餘的參數去掉
3、或者另外寫一個方法,少參數的,然後該方法內部,調用原來的方法
4、代碼截圖如下:
5、看代碼,13行的,就相當於調用少一個參數的
拓展資料:
如題,有一個方法里兩個形參,我另一個文件類中一個方法想要那個方法的返回值,可是第二個參數在這里用不到,能否只傳第一個參數 如何實現,前提這個類不能繼承後重寫方法,因為多人合同寫的。
解決方案
不可以,變通的辦法是再寫一個只有一個參數的函數重載形式,在其中給另一個參數一個預設值,間接調用。
解決方案二:
一個Action調用兩個不同的方法
解決方案三:
調用的時候給一個無影響的值
解決方案四:
講道理的話是不能這樣做的,不過如果你傳的第二個參數如果對於當前調用時沒有意義也是可以傳一個值的。
解決方案五:
首先,Java語法規定了方法的參數列表,那麼調用的時候就需要按照方法定義傳遞給足夠的參數,你那種需要少傳參的話可以重載方法,不要定義那麼多參數就可以了。
解決方案六:
你一個方法傳入兩個參數,但如果你只調用一個,那麼另外一個參數你讓人家多尷尬,你讓人家尷尬了,人家也不會讓你好過的,因此就給你報錯啊,當然你可以像樓上所說,傳入一個無影響的參數進去,但這又有什麼意義,還造成代碼的浪費,你這個方法每調用一次,就造成一次浪費,因此,最好的方法就是傳入一個參數,寫一個重載方法。初學者經驗不足,互相指教~
解決方案七:
既然用不到第二個參數,最簡單的,給個無關痛癢的初始值。
解決方案八:
方法定義2個參數,在方法體內提供判斷參數,看傳入的參數是否為null,調用方法時,只傳入一個值,另一個是null就行。
解決方案九:
方法 重載一下 就好了。
❸ java 怎麼傳遞參數
傳對象,之後通過反射,getClass()獲得對應的類,具體代碼如下
Class<?>type=object.getClass();
Method method=type.getMethod("getId",null);//getId為getId()方法
Object id=method.invoke(object,null);
❹ 在java中,如何將方法作為參數傳遞
可以利用java反射機制中的Method對象 該對象類似於C++裡面的函數指針
示例如下:
String methodName
Method method = oneProtein.class.getMethod(methodName);
for (oneProtein e:Cell)
method.invoke(e);
❺ Java的參數傳遞是值傳遞還是引用傳遞
java中方法參數傳遞方式是按值傳遞。所謂值傳遞,就是將實際參數值的副本(復製品)傳入方法內,而自己本身不會受到任何影響。
如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。
❻ 關於java方法參數是值傳遞還是地址傳遞
JAVA傳遞參數有兩種方式:值傳遞和引用傳遞值傳遞是傳遞數據:如基本數據類型都是值傳遞引用傳遞是把形參和實參的指針指向了堆中的同一對象,對象的引用和數組的引用。實參,Java的基本數據類型,如int,double等在函數的參數傳遞時,傳遞的是
❼ java 中 如何通過命令行來傳遞參數
可以在命令行運行java程序時加上程序的參數。
例子如下:
public class HelloWorld{
public static void main(String args[]){
System.out.println("temp=" + args[0]);
}
}
源代碼截圖:
解釋一下: String[ ] args
該參數,是一個字元串數組,用來接收從命令行輸入的參數
1. 參數之間用空格隔開
2. java解釋器會自動處理,把用空格隔開的每一個參數通過args數組傳遞給買呢()方法。
3. 參數的下標從0開始,args[0]表示第一個參數,例如java HelloWorld 10 20 30
4.可以有多個空格,多個空格會被忽略。
(7)java方法傳遞參數擴展閱讀:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。
❽ 用Java方法的參數怎麼傳遞
在 Java 應用程序中永遠不會傳遞對象,而只傳遞對象引用。因此是按引用傳遞對象。Java應用程序按引用傳遞對象這一事實並不意味著 Java 應用程序按引用傳遞參數。參數可以是對象引用,而 Java 應用程序是按值傳遞對象引用的。
❾ java中參數傳遞方式
當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這里到底是值傳遞還是引用傳遞? 是值傳遞。Java 編程語言只由值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
❿ Java參數傳遞
Java的方法參數傳遞都是值傳遞。這個問題需要樓主慢慢理解,如果基礎薄弱(C、C++基礎弱)就記住就好。如果基礎好可以從內存角度理解。
從語法和簡單層面理解:str是一個String類型的對象,傳遞給changeStr方法,傳遞的是str的引用內容,方法內的changeStr(String value),value變數和str指向了同一個對象,但是value重新賦值後,它的指向改變了,但是str的指向不會發生,所以str的輸出還是「Hello」,而changeObjValue方法傳入的TEST的對象pt給changeObjValue(TEST ref),ref變數和pt變數指向了同一對象,之後通過改變了對象的內容,pt變數的指向沒變,但是執行的對象的變數變了。所以pt的ptValue值變了。
進一步理解,Java對字元串進行了特殊處理,因為字元串這種數據類型太常用了,為了節省內容提高效率。Java把字元串放入了常量池,所以我們沒辦法在運行時修改一個字元串對象的內容。也就是對value變數的賦值操作是重寫建立了一個對象。樓主可以測試經典的java String的代碼:
Stringa="a";
Stringb="a";
Stringc=newString("a");
Stringd=newString("a");
System.out.println(a==b);
System.out.println(a==c);
System.out.println(b==c);
System.out.println(d==c);
再深入,Java沒有C和C++的指針概念,可以粗暴的理解Java的引用是一種特殊的指針(實際上Java盡量把程序猿從指針中解放出來,或者說避免直接操作內存對象)。有一種不負責的說法:Java的基本類型傳遞傳遞的是值,也就是值的副本,引用類型傳遞的時引用。但是要注意String對象的內容不可變,而且傳遞的引用指向不可變。運行時Java的局部變數在棧空間中(線程私有),對象在堆內存中(線程公有),changeStr方法相當於在堆內存中又開辟了一塊兒空間重寫分配了一個對象,但是str沒有指向這個新new出來的對象。而changeObjValue方法修改的pt指向的對象的內容也就是修改的是堆內存的數據,ref和pt指向的是一塊兒內存。所以pt的對象數據會變化。