Tự định nghĩa kiểu dữ liệu trong java

Mình có 1 mảng

Aptech [] apt=new Aptech [5];

Tiếp đó mình gán cho index 0 của mảng:

Aptech a1=new Aptech();

apt[0]=a1.getBookAuthor();

Kiểu trả về của method getBookAuthor là String;
trình biên dịch báo lỗi là cannot convert from String to Aptech

Mình muốn hỏi ở đây là có cách nào định nghĩa kiểu Aptech theo ý mình không, tức là có thể chứa tất cả kiểu mà mình muốn vd như String và Int;

Aptech [] apt = new Aptech [5];

Bạn dùng câu lệnh bên trên có nghĩa là bạn tạo mới 1 mảng gồm có 5 phần tử, mà mỗi phần tử là 1 Object Aptech.

apt[0]=a1.getBookAuthor();

apt[0] chính là Object Aptech đầu tiên, do đó nên bạn gán String cho Object thì lỗi là đương nhiên.
có thể sửa lại như bên dưới cho hết lỗi.

apt[0].BookAuthor = a1.getBookAuthor();

lưu ý BookAuthor là 1 thuộc tính của class Aptech, nó có thể được định nghĩa như bên dưới:

class Aptech{
public String BookAuthor;
}

p/s: Bạn nên học kỹ thêm lý thuyết về OOP nhé. Chúc bạn thành công.

7 Likes

Ơ bạn viết class Aptech cũng giống như định nghĩa kiểu Aptech rồi.

Tùy bạn định nghĩa chứa là thế nào. Java 1 class chỉ có thể chứa theo kiểu bỏ vào field.như câu trả lời của bạn trên.

Còn nếu bạn muốn “chứa” theo kiểu biến Aptech có lúc gán được cho String, lúc gán được cho int,… thì Java không có. Mình biết có Typescript là có union type là có thể làm được việc này.

type Aptech = string | int;
let a: Aptech;
a = 'Hello';
a = 10;
6 Likes

Dùng ArrayList mà không đặt generic nhé.

4 Likes

Mình tự học nên những kiến thức ntn quý lắm=…
Cảm ơn các b nhiều

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?