java對象的調用
① 如何在java中子類中父類的對象如何調用父類的方法
對於有繼承關系的類,子類可以通過這個關鍵字調用父類中的方法。
比如:super.query();
此句話的意思是調用父類中的非私有方法query。
一般的用super關鍵字,調用類中的父類中重載構造方法。
比如:父類有個構造方法public
A(){},同時又寫了一個重載的構造方法public
A(String
name);那麼,在子類中可以使用super(name)指明調用父類的哪個構造方法進行實例化父類對象。
大概就是這樣的!
② java里對象調用函數是什麼意思,對象怎麼調用它。對象掉用函數之後,對象會和調用之前出現什麼不同
對象調用函數可以說這個對象引用這個方法(函數),方法就是對對象進行一定的處理然後可能返回一定的數據,對象一般可以通過。來調用eg:obe.go();
對象之後變成什麼樣,要看函數對他進行了什麼處理
③ Java對對象採用的是值調用還是引用調用
您好:
Java中參數的傳遞方式有兩種:傳值和傳引用。按值傳遞(call by value)表示方法接受的是調用者提供的值;按引用調用(call by reference)表示方法接受的是調用者提供的變數地址。
傳值,參數為基本類型時,是採用傳值的方式,示例如下:
供參考,希望對你有幫助!
④ 在java中一個對象調用某個方法需要滿足哪些條件
如果是調用自己的成員函數,沒什麼條件。
如果調用的別的類中的成員函數,如果是該函數是非靜態,需要先生成該類的對象再調用。
⑤ java對象是如何調用方法的(從內存方面解釋)
首先在內存中生成對象dog,然後根據dog的eat方法簽名找到方法區的eat方法。這個沒有類型轉換,相對來說比較簡單,如果有類型轉換的話,那麼會出現動態綁定,會復雜一些的,關於內存方面的內容可以查看strutshome網站。
⑥ 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調用so方法如何返回對象
雖然Java 嚴格按照值傳遞,但是精確的效果在傳遞基本類型還是引用類型之間是不同的。
當我們將一個原始類型傳遞給一個方法時,它將按值傳遞。但是當我們將一個對象傳遞給一個方法時,情況會發生巨大的變化,因為對象是通過有效調用的方式傳遞的。Java做這個有趣的事情,這是一種混合傳遞值和傳遞引用。基本上,函數不能更改參數,但函數可以通過調用其中的某些方法來讓參數自行更改。
在創建類類型的變數時,我們只創建一個對象的引用。因此,當我們將此引用傳遞給方法時,接收它的參數將引用與參數引用的對象相同的對象。
這實際上意味著對象的行為就好像通過使用引用調用來傳遞給方法一樣。
方法內部對象的改變確實反映在用作參數的對象中。
在Java中,我們可以將對象傳遞給方法。例如,請考慮以下程序:
// Java program to demonstrate objects
// passing to methods.
class ObjectPassDemo
{
int a, b;
ObjectPassDemo(int i, int j)
{
a = i;
b = j;
}
// return true if o is equal to the invoking
// object notice an object is passed as an
// argument to method
boolean equalTo(ObjectPassDemo o)
{
return (o.a == a && o.b == b);
}
}
// Driver class
public class Test
{
public static void main(String args[])
{
ObjectPassDemo ob1 = new ObjectPassDemo(100, 22);
ObjectPassDemo ob2 = new ObjectPassDemo(100, 22);
ObjectPassDemo ob3 = new ObjectPassDemo(-1, -1);
System.out.println("ob1 == ob2: " + ob1.equalTo(ob2));
System.out.println("ob1 == ob3: " + ob1.equalTo(ob3));
}
}
輸出:
ob1 == ob2:true
ob1 == ob3:false
創建了三個對象'ob1','ob2'和'ob3':
ObjectPassDemo ob1 = new ObjectPassDemo(100,22);
ObjectPassDemo ob2 = new ObjectPassDemo(100,22);
ObjectPassDemo ob3 = new ObjectPassDemo(-1,-1);
在方法方面,聲明了一個名為a的Foo類型的引用,並且它的初始值為null。
boolean equalTo(ObjectPassDemo o);
當我們調用方法equalTo時,引用'o'將被分配給作為參數傳遞的對象,即'o'將引用'ob2'作為以下語句執行。
System.out.println(「ob1 == ob2:」+ ob1.equalTo(ob2));
現在我們可以看到,'ob1'上調用了equalTo方法,'o'指的是'ob2'。由於'a'和'b'的值對於兩個引用都是相同的,所以如果(條件)為真,那麼將返回布爾值true。
if(oa == a && ob == b)
執行以下語句時,'o'將重新分配給'ob3'。
System.out.println(「ob1 == ob3:」+ ob1.equalTo(ob3));
現在我們可以看到,'ob1'上調用了equalTo方法,'o'指的是'ob3'。由於'a'和'b'的值對於兩個引用都不相同,所以如果(條件)為假,那麼else塊將執行並且將返回false。
定義一個將其類的對象作為參數的構造函數
對象參數最常見的用途之一是構造函數。通常,在實踐中,需要構建一個新對象,以便它最初與某個現有對象相同。為此,我們可以使用Object.clone()方法或定義一個將其類的對象作為參數的構造函數。下面的例子說明了第二個選項:
// Java program to demonstrate one object to
// initialize another
class Box
{
double width, height, depth;
// Notice this constructor. It takes an
// object of type Box. This constructor use
// one object to initialize another
Box(Box ob)
{
width = ob.width;
height = ob.height;
depth = ob.depth;
}
// constructor used when all dimensions
// specified
Box(double w, double h, double d)
{
width = w;
height = h;
depth = d;
}
// compute and return volume
double volume()
{
return width * height * depth;
}
}
// driver class
public class Test
{
public static void main(String args[])
{
// creating a box with all dimensions specified
Box mybox = new Box(10, 20, 15);
// creating a of mybox
Box myclone = new Box(mybox);
double vol;
// get volume of mybox
vol = mybox.volume();
System.out.println("Volume of mybox is " + vol);
// get volume of myclone
vol = myclone.volume();
System.out.println("Volume of myclone is " + vol);
}
}
輸出:
Volume of mybox is 3000.0
Volume of myclone is 3000.0
返回對象
在java中,一個方法可以返回任何類型的數據,包括對象。例如,在以下程序中,incrByTen()方法返回一個對象,其中(整數變數)的值比調用對象中的值大10。
// Java program to demonstrate returning
// of objects
class ObjectReturnDemo
{
int a;
ObjectReturnDemo(int i)
{
a = i;
}
// This method returns an object
ObjectReturnDemo incrByTen()
{
ObjectReturnDemo temp =
new ObjectReturnDemo(a+10);
return temp;
}
}
// Driver class
public class Test
{
public static void main(String args[])
{
ObjectReturnDemo ob1 = new ObjectReturnDemo(2);
ObjectReturnDemo ob2;
ob2 = ob1.incrByTen();
System.out.println("ob1.a: " + ob1.a);
System.out.println("ob2.a: " + ob2.a);
}
}
輸出:
ob1.a:2
ob2.a:12
⑧ 關於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對象數組如何調用
mian是程序的入口,如果你想在mian裡面初始化,之後在其他的方法裡面調用,要麼把這個數組聲明成static的,要麼在之後的方法裡面通過參數將數組對象傳遞。