java對象調用
Ⅰ 在java中一個對象調用某個方法需要滿足哪些條件
如果是調用自己的成員函數,沒什麼條件。
如果調用的別的類中的成員函數,如果是該函數是非靜態,需要先生成該類的對象再調用。
Ⅱ java如何調用一個方法內的對象
public int maybeNew(int index) {
if(index < 1) {
Mix4 m4 = new Mix4();
m4.counter = m4.counter + 1;
return 1
//System.out.println("m4.counter = " + m4.counter);
}
return 0;
}因為你是在這個方法里定義的m4,這里的m4為一個局部變數,意思是m4隻在maybeNew這個方法的 if(index < 1) {}內才有效,其它地方用不到的,及時是在同一個方法的if外面都引用不到,這是java為局部變數定義的規則,沒有為什麼,這是必須得。
Ⅲ java對象調用問題
首先你要看一下你運行時或者編譯時給你的錯誤信息,根據這個看自己的代碼出現的問題;下面是我的代碼,沒有問題可以正常輸出。
packagestring;
importstaticorg.junit.Assert.*;
importorg.junit.Test;
publicclassFxTest{
@Test
publicvoidtest(){
int[]arr1={2,3,5,9,6,6,9,9,56,65};
Fxfx=newFx(arr1);
fx.printArray(arr1);
}
}
packagestring;
publicclassFx{
privateint[]arr;
publicFx(int[]arr){
this.arr=arr;
}
voidprintArray(int[]arr){
for(inti=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
Ⅳ java對象數組如何調用
mian是程序的入口,如果你想在mian裡面初始化,之後在其他的方法裡面調用,要麼把這個數組聲明成static的,要麼在之後的方法裡面通過參數將數組對象傳遞。
Ⅳ 關於java中對象調用方法
內存里a和b指向的不是同一個對象,不是同一塊內存。代碼hh a=new hh();是表示在棧內存里分配一塊區域給a,同時在堆內存里創建一個hh類的對象,然後讓a指向這個對象。代碼hh b=new hh();是表示在棧內存里分配一塊區域給b,同時在堆內存里創建一個hh類的對象,然後讓b指向這個對象。看你的hh里沒有重寫toString(),直接列印a和b應該是調用Object裡面的toString(),列印出來的是類名和此對象的十六位哈希碼,應該是不同的。然後我把你的代碼自己運行了一下,列印出來的哈希碼也是不一樣的,不論是直接列印a和b由toString()方法默認返回的,還是調用兩個對象中的hashCode()方法出來哈希碼都是不相同的。a.equals(b)返回的是false說明a和b不相等,我查了一下API,根據API裡面寫的hashCode 的常規協定是:在 Java 應用程序執行期間,在對同一對象多次調用 hashCode 方法時,必須一致地返回相同的整數,前提是將對象進行 equals 比較時所用的信息沒有被修改。從某一應用程序的一次執行到同一應用程序的另一次執行,該整數無需保持一致。如果根據 equals(Object) 方法,兩個對象是相等的,那麼對這兩個對象中的每個對象調用 hashCode 方法都必須生成相同的整數結果。如果根據 equals(java.lang.Object) 方法,兩個對象不相等,那麼對這兩個對象中的任一對象上調用hashCode 方法不 要求一定生成不同的整數結果。但是,程序員應該意識到,為不相等的對象生成不同整數結果可以提高哈希表的性能。說明相同的對象,哈希碼必須相同。不同的對象,哈希碼不一定不同。我查了下資料,哈希碼的生成函數不能保證不同對象生成的哈希碼一定相同,有很小很小的幾率會相同,不會被你裝上了吧?還是其他class的干擾呢?你把重新建一個文件夾,把java文件復制進去,然後編譯運行看下還是不是一樣。我也是剛學java的,工作比較無聊我就學了下java,剛學了1個半月吧。能力有限,我把我懂得都寫出來,希望能幫到樓主。
請採納答案,支持我一下。
Ⅵ java創建對象需要調用什麼方法
對於一般的無參構造器,創建對象需要new,例如:Person p = new Person();
如果有帶參數的構造器,創建對象時不僅需要new,還需要傳入對應的參數
例如:Person p = new Person("id","name");
Ⅶ java對象是如何調用方法的(從內存方面解釋)
首先在內存中生成對象dog,然後根據dog的eat方法簽名找到方法區的eat方法。這個沒有類型轉換,相對來說比較簡單,如果有類型轉換的話,那麼會出現動態綁定,會復雜一些的,關於內存方面的內容可以查看strutshome網站。
Ⅷ java關於對象和調用方法
考的應該就是重載、覆蓋方法後調用的哪一個方法。像Beta類,它繼承Alpha類並重載essai方法,那麼Beta類就有兩個essai方法:essai(Alpha)和essai(Beta)。b.essai(b)調用的是essai(Beta),因為b申明的是Beta類型,列印的是"beta"。b.essai(c)應用的是調用的是essai(Alpha),因為c申明的是Alpha類型,列印的是"alpha"。
而Gamma類,它繼承Beta類,但它覆蓋了Alpha類的essai(Alpha)方法。那第它也就兩個essai方法:essai(Alpha)和essai(Beta)。但由於它覆蓋了essai(Alpha)方法,所以essai(Alpha)方法列印的不再是"alpha",而是"gamma"。d.essai(d)調用的是essai(Beta),列印的仍然是"beta"。e.essai(d)調用的是Gamma類的essai(Alpha)(而且只能調用essai(Alpha),因為e申明的是Alpha類型,Alpha類只有一個essai方法。 又因為d的類型是Alpha的子類,所以可以傳進去),因為它new的是Gamma類對象而不是Alpha類對象,而Gamma類的essai(Alpha)方法覆蓋了Alpha類的essai(Alpha)方法,所以列印的是"gamma"而不是"alpha"。同樣的d.essai(e)調用的也是Gamma類的essai(Alpha)方法,列印的是"gamma"。
呼,說得有點繞了...
Ⅸ java里對象調用函數是什麼意思,對象怎麼調用它。對象掉用函數之後,對象會和調用之前出現什麼不同
對象調用函數可以說這個對象引用這個方法(函數),方法就是對對象進行一定的處理然後可能返回一定的數據,對象一般可以通過。來調用eg:obe.go();
對象之後變成什麼樣,要看函數對他進行了什麼處理
Ⅹ Java怎麼調用對象的方法呀
一般來說要加包名
在第二個類里要import第一個類