程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java代碼-java引用數據類型的問題,請大神解釋下標注的問題.....

java代碼-java引用數據類型的問題,請大神解釋下標注的問題.....

編輯:編程綜合問答
java引用數據類型的問題,請大神解釋下標注的問題.....

import java.util.Scanner;

public class Bank implements Runnable {
Acount acount;
public Bank(Acount a) -->這個構造方法的含義?

{
this.acount=a;
}
public void run()
{

    Scanner input=new Scanner(System.in);
    System.out.println("請輸入你的存款:");

    int temp=input.nextInt();
    acount.setMoney(temp);


 } 

}

import java.util.Scanner;

public class Customer implements Runnable {
Acount Acount;
public Customer(Acount Acount){ -->這個構造方法的含義?
this.Acount=Acount;
}
public void run()
{
System.out.println("請輸入你的取款金額:");
Scanner input=new Scanner(System.in);
int temp=input.nextInt();
Acount.getMoney(temp);

 }

}

public class Acount {
private int money;
public Acount(int money){
this.money=money;
}
Bank b=new Bank(this); -->this指的是什麼?
public synchronized void getMoney(int money)
{
while(this.money<money)
{
System.out.println("取款:"+money+" 余額:"+this.money+" 余額不足,正在等待存款......");
//當余額不足時 取款線程處於等待狀態

           try {
               Thread t2=new Thread(b);
               t2.start();

               wait();

            } catch (Exception e) {
                // TODO: handle exception
            }

      }
      this.money=this.money-money;
      System.out.println("取出:"+money+" 還剩余:"+this.money);

 }
 public synchronized void setMoney(int money)
 {
      this.money=this.money+money;
      System.out.println("新存入:"+money+" 共計:"+this.money);
      //將取款線程喚醒
      notify();

 }
 public static void main(String args[])
 {
      Acount Acount=new Acount(0);
      Customer c=new Customer(Acount);

      new Thread(c).start();
 }

}

最佳回答:


你的問題是構造函數的參數問題
面向對象編程中,學會通過構造函數傳參,以達到初始化相關變量為目的
前兩個Bank(Acount a)意思就是傳一個Acount對象來構造對象
從接下來的一行this.Acount=Acount;就能看出,為了初始化本類變量(對象)

Bank b=new Bank(this);
這個this是什麼的判定方法准則就是看作用域
this當前處於一個class的類內
所以,指的是當前實例對象//public class Acount{...}
當你實例化Acount的時候,這個this就會誕生
比如Acount myAcount = new Acount(100);

希望對你有幫助,如問題解決,煩請結貼,如有疑問請追問。
//0分貼子太多了,沒人回答就是因為0分的不愛結貼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved