Trong khi bạn có thể làm những gì bạn đang thử bằng một số ngôn ngữ kịch bản như PHP (và câu hỏi này thường được nhiều lập trình viên PHP khởi động Java yêu cầu), đây không phải là cách Java hoạt động. ít quan trọng hơn bạn có thể nhận ra và hầu như không tồn tại sau khi mã được biên dịch. Điều quan trọng hơn nhiều và khóa là biến số tham chiếu - khả năng truy cập vào một đối tượng cụ thể tại một điểm cụ thể trong chương trình của bạn, và bạn có thể tham chiếu các đối tượng một cách dễ dàng bằng cách sử dụng Bản đồ dưới dạng một chiều.
Ví dụ
Map<String, Dog> dogMap = new HashMap<String, Dog>();
dogMap.put("Fido", new Dog("Fido"));
Dog myPet = dogMap.get("Fido");
Hoặc bạn có thể đạt được tham chiếu đến đối tượng bằng nhiều cách khác như qua mảng, ArrayLists, LinkedLists, hoặc một vài collectinos khác.
Sửa
Bạn trạng:
Cái này là trong mã của tôi tôi sẽ được sử dụng một phương pháp để tạo các đối tượng, tên của đối tượng là tùy ý nhưng tôi cần nó để được năng động vì nó sẽ không được tạm thời, vì vậy tên thực sự của đối tượng phải thay đổi hoặc tôi sẽ viết trên đối tượng đã khai báo trước đó.
Đây chính là điều tôi muốn nói khi tôi nói tên của biến không quan trọng như bạn nghĩ. Tên biến là không "tên đối tượng" (điều này thực sự không tồn tại trên thực tế).
Ví dụ, nếu bạn tạo một con chó trong một biến có tên Fido, và sau đó gán nó vào một biến có tên chỗ mới, cả hai biến, mặc dù có tên gọi khác nhau sẽ tham khảo rất giống đối tượng:
Dog fido = new Dog;
Dog spot = fido; // now fido and spot refer to the same object
Nếu bạn muốn đặt biến "tên", hãy xem xét cung cấp cho lớp một thuộc tính tên:
class Dog {
private String name;
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Bây giờ bạn có thể cung cấp cho mỗi Dog tên riêng (bán) duy nhất nếu bạn muốn.
Tại sao bạn muốn thực hiện việc này? Chắc chắn có một cách tốt hơn để đạt được những gì bạn đang cố gắng làm. –
Bạn có thể nên tìm hiểu về API phản chiếu của Java nếu đó là những gì bạn muốn. – fge
Tôi nghĩ tiêu đề và nội dung của câu hỏi này không phù hợp. Có vẻ như bạn không * cố gắng tạo một biến có tên dựa trên giá trị của một chuỗi. Thay vào đó, có vẻ như bạn muốn đặt lớp của biến dựa trên giá trị chuỗi. Nếu trường hợp sau là trường hợp, mẫu 'Factory' có thể hữu ích. – Kavka