Gần đây tôi đã bắt đầu học Scala và cố gắng sử dụng mã Scala của tôi trong Java. Các tệp jar được nhập khẩu hoạt động và bao gồm các lớp và các phương thức của tôi; tuy nhiên, tôi thấy hơi ngạc nhiên khi tôi thấy rằng, trong số các lớp có sẵn để nhập, tôi có thể truy cập cả hai số DiceRoller và DiceRoller $ và tôi cũng có thể tiếp cận các phương pháp như attribute_ $ eq trong lớp bình thường .Nhập Scala bằng Java: các lớp và phương thức kỳ lạ hiển thị
DiceRoller được định nghĩa là đối tượng tại Scala, và phần còn lại của các lớp được định nghĩa là lớp, nếu điều đó có thể làm sáng tỏ vấn đề này. Tôi cũng biết lý thuyết cơ bản về các lớp và chức năng ẩn danh, và cách Scala xem xét các hoạt động như các hàm "==", vì vậy đó không phải là quan điểm của tôi, mặc dù nó có thể liên quan.
Khi tôi nhập gói Java, các lớp và phương thức đó không thể truy cập được. Vì vậy, tại sao tôi có thể gọi cho họ khi tôi đang nhập tệp tin Scala jar? Tôi có thể khai báo các lớp và phương thức ẩn danh đó là riêng tư không?