[回到版面]
回應模式
名 稱
E-mail
標 題
內 文
附加圖檔[] []
刪除用密碼(刪除文章用。英數字8字元以內)
  • 可附加圖檔類型:GIF, JPG, PNG, JPEG,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 10000 KB。當回文時E-mail填入sage為不推文功能
  • 當檔案超過寬 125 像素、高 125 像素時會自動縮小尺寸顯示
  • 程式碼可使用 [code][/code] 以 google-code-prettify 標亮 (程式自動判斷語言類別)

  • 公告、舉報、建議請向DB管理室辦理。
  • 本板討論遊戲製作為主,改造方面也可討論,但如果牽涉到版權,請自重。
  • 3D建模請至3D板, 3D遊戲製作(Ex.怎麼用DirectX跑3D?)則可在這討論。
  • 本板為一般向板面,禁止張貼上車圖。

檔名:1523872003550.jpg-(75 KB, 600x787) [以預覽圖顯示]
75 KBoop 名稱: 無名氏 [18/04/16(一)17:46 ID:mrs.TrWQ] No.13376 2推 
非本科系程式新手 請問島民太太
有沒有更便利的方法把一個class的數值指派給另一個相同class裡面?
情況如下:
public class Weapon
{
int attack;
int price;
}

public Weapon Sword = new Weapon()
{
attack = 3;
price = 50;
}

然後現在再新建一個Weapon叫Axe,
我想把Weapon的attack和price都指派給Axe,
可是如果用Weapon Axe = Sword的話會把Axe和Sword做連結,
後面把Axe升攻擊力的話Sword也會跟著一起升,該如何避免這情形發生?

雖然是可以寫一個函數來把武器的值照搬,像這樣
public void WeaponValueSubstitution(Weapon Main, Weapon Receiver)
{
Receiver.attack = Main.attack;
Receiver.price = Main.price;
}

public Weapon Axe = new Weapon();
WeaponValueSubstitution(Sword,Axe);

可是如果另外的class也要這個功能,就要另外再寫一個這樣的函數給此class用
請問還有另外的方法嗎? 謝謝
無名氏: 你需要的東西可能是Copy Constructer (r18GOwTs 18/04/17 02:25)
無名氏: ヽ(●´∀`●)ノ~♥查找了一下 就是這個 大感謝 (118wKgCI 18/04/17 22:35)
無標題 名稱: 無名氏 [18/04/18(三)13:53 ID:r5ilERbY] No.13381 1推  
可以修改成下面的樣子
----
public class Weapon
{
 int attack;
 int price;
 public Weapon(int _attack,int _price)
 {
  attack=_attack;
  price=_price;
 }
 public Weapon(Weapon _weapon)
 {
  attack=_weapon.attack;
  price=weapon.price;
 }

}
----
在new出Sword跟Axe就可以這樣
----
public Weapon Sword = new Weapon(3,50);
public Weapon Axe = new Weapon(Sword );
----
無名氏: price=weapon.price;這個少了個底線,改成price=_weapon.price; (r5ilERbY 18/04/18 13:55)

【刪除文章】[]
刪除用密碼:
第一頁[0] 最後一頁