Vì vậy, trong hầu hết các ngôn ngữ OOP biến tĩnh cũng có thể được gọi lớp biến, tức là giá trị của họ là chia sẻ trong số tất cả các trường hợp của lớp này. Ví dụ: trong trò chơi của tôi, tôi có một lớp học Bullet
được mở rộng thêm GreenBullet
và PinkBullet
. Tôi muốn các lớp con này có biến "class" hoặc "static" được gọi là ammo
để tôi có thể theo dõi số lượng đạn cho loại đạn cụ thể đó. Nhưng đây là bắt: Tôi muốn có thể truy cập thuộc tính này thông qua một thể hiện của lớp con.biến nguyên cảo Truy cập tĩnh Sử dụng Instances
Ví dụ:
var bullet: GreenBullet = new GreenBullet()
if (bullet.ammo <= 0)
return;
bullet.shoot();
bullet.ammo --;
Tôi muốn tất cả các trường hợp của GreenBullet
phải nhận thức được sự thay đổi này để đếm đạn của họ.
Bí quyết tuyệt vời với các thành viên tĩnh riêng biệt. Làm thế nào bạn có được "this.constructor.ammo" để biên dịch? chuyển sang Bất kỳ? – MichaelS
@MichaelS hoặc thực hiện 'this.constructor [" ammo "]'. Ngoài ra, tôi sẽ đề nghị để làm cho 'tĩnh đạn' tư nhân vì không cần bất cứ điều gì bên ngoài lớp để truy cập nó. –
Đã cập nhật câu trả lời với phiên bản miễn phí cảnh báo của trình biên dịch (như đã đề cập bởi @DavidSherret). – zlumer