01/10/2018, 11:55

Constants in java

mn có thể trả lời giúp mình khi nào nên khai báo hắng số trong interface (Case 2) thay cho class (Case 1) không ?
vd :

public class A{    //case 1
public static final NUM_BER =100;
} 
public interface B{  //case 2
public static final NUM_BER = 100;
}
Trần Đức Vương viết 14:09 ngày 01/10/2018

Thì khi cái thông tin đấy nó liên quan đến cái interface B thì cho vào B còn khi nó liên quan đến A thì cho vào A.
PS bạn viết thiếu type và NUMBER viết liền nhé.

Hung Nguyen viết 13:55 ngày 01/10/2018

Như nhau thôi, dùng cách nào cũng được. Nhưng mình hay dùng cách 1, cách 2 cũng thấy có người dùng và cũng ko vấn đề gì. Đợt trước có search google thì thấy có chỗ bảo cách 2 là “bad practice”

Ben Nguyen viết 14:11 ngày 01/10/2018

Chào bạn!
Mặc định các biến của Interface là static final , bạn không cần phải khai báo 1 cách tường minh là static và finale. Bởi vì Interface không thể khởi tạo được đối tượng với từ khóa new nên static final để đảm bảo rằng các biến này sẽ được gán 1 giá trị duy nhất tại thời điểm Interface được nạp. và không thể thay đổi giá trị. Khi nào nên dùng static final ở case 1 và case 2, thì điều đó tùy thuộc vào nghiệp vụ bài toán bạn cần giải quyết; nếu bạn chỉ cần khai báo các constants như các các thông tin cấu hình dùng chung cho hệ thống , bạn có thể sử dụng case1 ; còn case 2 sẽ được sử dụng khi nghiệp liên quan đế các vấn kế thừa và triển khai ở các lớp dẫn xuất Interface.

Bài liên quan
0