java傳遞對象
A. java 需要傳遞類對象為參數的時候,幾種方法
1、直接抽象類 對象 = new 抽象類(){ //重寫此抽象類的抽象方法};例子:privateTimerTask t1=newTimerTask(){@Overridepublicvoidrun() {//TODO Auto-generated method stub //在此實現該抽象方法}};外層 {/**Called when the activity is first created.*/publicTimer timer=newTimer();privateTimerTask t1=newTimerTask(){@Overridepublicvoidrun() {//TODO Auto-generated method stub}};@OverridepublicvoidonCreate(Bundle savedInstanceState) { ..}}2、抽象類 對象 = new 子類(); 介面/實現類 對象= new 實現類() class 子類 extends 抽象類{ //實現此抽象類的抽象方法即可。}class 實現類 implements 介面{ //實現此介面的抽象方法即可}例子: {/**Called when the activity is first created.*/publicTimer timer=newTimer();privateTimerTask tTask=newMyTimerTask();@OverridepublicvoidonCreate(Bundle savedInstanceState) {super .onCreate(savedInstanceState); setContentView(R.layout.main);}//子類classMyTimerTaskextendsjava.util.TimerTask {@Overridepublicvoidrun() {//TODO Auto-generated method stub //在此實現該抽象方法}} .......}介面時: ......//某處//MySensorEventListener mSensorEventListener; SensorEventListener mSensorEventListener; .....//某處 ,定義和賦值可以寫在一句話裡面 mSensorEventListener=newMySensorEventListener(); .......//某處 {@(Sensor sensor, intaccuracy) {//TODO Auto-generated method stub}@(SensorEvent event) {//TODO Auto-generated method stub //在此做方法的實現即可}}3、直接把對象創建出來,比如在參數中需要用到某個類對象的時候,除了上述方法以外,也可以直接把此對象創建出來。 public void method(class obiect,,); ()中就可以這么寫 (new (抽象類/介面(){ //在這實現抽象方法}))例子: b1.setOnClickListener(newButton.OnClickListener() {@OverridepublicvoidonClick(View arg0) {//定義計時器timer=newTimer();timer.schele(newTimerTask() {//TimerTask 是個抽象類,實現的是Runable類@Overridepublicvoidrun() {}}, 1000, 200);}});此例子中,newButton.OnClickListener()是一個介面對象,實現onClick這個介面的抽象方法。記住!不需要這個要讓外部activity實現介面。 是一個抽象類對象,裡面也要實現run()這個抽象類的抽象方法。
B. java如何進行進行對象傳遞
你所說的「B文件中的a' =null,報異常,」
不能說明「a沒有傳遞過來」而是B文件中:
A a' = new A();「 a' 」 對象就沒有創建成功。
解決方法:你可將 A文件中的public A aa;「aa」設置成靜態(static)的。
C. java 靜態方法里傳對象
要看你靜態方法里的內部實現.
傳對象是一個地址引用的傳遞.一般來說是執行完方法後就不關靜態方法的事了.那麼這個對象是否存在內存當中就看對象自己的生命周期.
但是,如果你在靜態方法里做了固定引用,那就不好說了.比如,你在靜態方法中創建了一個集合,傳過來的對象引用你加入到了集合中,而一且也沒清空集合.這樣,對於那個對象來說,不管什麼時候,都會至少有一個引用指向他,也就是靜態方法中的集合,那麼即使對象已經無用處,可垃圾收集器也不會收集它,它就一直存在內存了
D. Java 中實例化後的對象間如何交互傳遞數據
一般用傳參來解決的,示例如下:
package test20210106;
/**燈泡類*/
public class Bulb {
//發光量
private double glowAmount;
//get、set方法
public double getGlowAmount() {
return glowAmount;
}
public void setGlowAmount(double glowAmount) {
this.glowAmount = glowAmount;
}
}
package test20210106;
/**開關類*/
public class Switch {
/**設置發光量30%*/
public void glowAmount30(Bulb bulb){
bulb.setGlowAmount(0.3);
System.out.println("當前燈泡的發光量是: "+(int)(bulb.getGlowAmount()*100)+"%");
}
/**設置發光量60%*/
public void glowAmount60(Bulb bulb){
bulb.setGlowAmount(0.6);
System.out.println("當前燈泡的發光量是: "+(int)(bulb.getGlowAmount()*100)+"%");
}
/**設置發光量100%*/
public void glowAmount100(Bulb bulb){
bulb.setGlowAmount(1);
System.out.println("當前燈泡的發光量是: "+(int)(bulb.getGlowAmount()*100)+"%");
}
}
package test20210106;
//
public class Test {
public static void main(String[] args) {
Bulb bulb = new Bulb();
Switch s = new Switch();
s.glowAmount30(bulb);
s.glowAmount60(bulb);
s.glowAmount100(bulb);
}
}
E. java對象傳遞問題
haha a1 中haha代表你要傳入的參數類型,也就是你的haha類
a1 表示的是變數名,這個沒什麼解釋的,有了變數名後面才好
進行調用,變數名是可以隨便起的。
F. java中的參數(對象)是怎樣傳遞的
基本類型傳值,比如int,float,char,double
引用類型傳引用,也就是地址,比如數組,自己創建的類的對象,
傳值對原來的值沒有影響,傳引用有影響。傳值直接把原來的數拷貝一份,和原來的數沒有關系了。傳引用,比如對象是a,a指向一個地址,這個地址里放它的各種屬性,你把a傳過去就相當於告訴程序要修改那個地址里的東西,不改變a的值(a本身是個地址),a還是指向那個地址,不過地址里的數據會發生改變,會影響到a.屬性的值。
最後,有一個特殊的,String,它雖然是引用類型,傳的是地址,但是對它進行操作不影響原來的字元串,因為它定義的時候是用final修飾的,一修改就自動創建新的副本。
G. java 需要傳遞類對象為參數的時候,幾種方法
下面給你舉例3種方法:
1、直接抽象類
對象 = new 抽象類()
{
//重寫此抽象類的抽象方法
};
2、抽象類
對象 = new 子類();
介面/實現類 對象= new 實現類()
class 子類 extends 抽象類{
//實現此抽象類的抽象方法即可。
}
class 實現類 implements 介面{
//實現此介面的抽象方法即可
}
3、直接把對象創建出來,比如在參數中需要用到某個類對象的時候,除了上述方法以外,也可以直接把此對象創建出來。
public void method(class obiect,,);
()中就可以這么寫
(new (抽象類/介面(){
//在這實現抽象方法
}))
H. java可否引用傳遞一個對象
嚴格來說java是沒有引用傳遞的,所謂的傳對象和數組,實際上是通過原變數的副本指向原變數而修改的,所以都叫值傳遞,不過給人的感覺是引用傳遞,建議搜索一些博客講解,這樣更容易理解