2013-04-20 63 views
7

Điều đầu tiên tôi muốn làm rõ ở đây, câu hỏi này là do sự tò mò. Tôi không phải đối mặt với bất kỳ vấn đề nào.Có thể tạo một kiểu dữ liệu nguyên thủy mới trong Java

Có rất nhiều loại nguyên thủy có sẵn trong Java byte, short, int, vv Bây giờ giả sử tôi muốn tạo ra một loại nguyên thủy mới (ví dụ mediumint hoặc bất cứ điều gì khác). Chúng ta có thể làm điều đó? Nếu có thì làm cách nào?

Trả lời

8

Loại nguyên thủy là loại được xác định bởi chính ngôn ngữ đó. Trong Java bạn chỉ có thể xác định các loại mới là Classes tất cả bắt nguồn từ lớp cơ sở chung được gọi là Object.

+1

điều gì ngăn anh ấy chơi với mã gốc? –

+8

Bạn có thể gây rối với nguồn của một JVM, nhưng nó sẽ không được Java như Java được xác định bởi đặc tả ngôn ngữ Java (http://docs.oracle.com/javase/specs/) – dtech

+1

Ngoài câu trả lời: trong một số ngôn ngữ tương tự (ví dụ C#), bạn có thể xác định các đối tượng của riêng bạn được truyền theo giá trị (http://msdn.microsoft.com/en-us/library/s1ax56ch(v=vs.110).aspx), tương tự nguyên thủy theo một số cách. Nhưng trong Java bạn không thể. – dtech

1

Đơn giản chỉ cần Không, Bạn có thể không tạo ra kiểu dữ liệu nguyên thủy.

Kiểu dữ liệu nguyên thủy có nghĩa là được cung cấp và tồn tại trong tính năng ngôn ngữ. Về cơ bản Java hỗ trợ điều này vì lý do hiệu năng và thực hiện phép toán số học.

Bạn có thể tạo kiểu dữ liệu do người dùng xác định bằng cách sử dụng khái niệm classobject.

4

Bạn có thể, nhưng sau đó nó sẽ không còn là Java nữa.

0

Tất cả các bạn đều sai. Có. Bạn có thể. Theo quy định, bạn không cần loại nguyên thủy hoàn toàn mới. Vì vậy, bạn không cần phải xây dựng lại JVM. Thông thường, bạn chỉ cần "đóng gói" hoặc "bỏ" kiểu nguyên thủy mới của bạn cho một kiểu hiện có và xác định một số thao tác như "+" với trình bao bọc của nó.

Bạn có thể làm điều đó tương đối đơn giản với JVM gốc, nhưng với trình biên dịch Java của riêng bạn. Chúc may mắn!

Các vấn đề liên quan