Tại sao dù biến kiểu byte mà lúc nhập vẫn phải ép kiểu về byte?

public class test {
    public static void main(String[] args) {
        Student stud1 = new Student(1,"Jason",22,8.0);
        Student stud2 = new Student();
        System.out.println("Enter stud2 information: ");
        stud2.input();
        System.out.println("--STUDENT LIST--");
        System.out.println(stud1);
        System.out.println(stud2);
    }
}


Nó bảo sai ở chỗ age 22 đấy ạ. Em ko hiểu tại sao em khai báo age là byte rồi mà nhập 22 nó lại hiểu là int. Em mới học java, cũng định search gg trước rồi mà lại ko biết từ khoá để search :slight_smile: nên đành nên đây hỏi các anh :v:

Byte với số giống nhau sao?
Kiểu byte làm gì có số 22?

5 Likes

à oke anh, em hiểu rồi, trước giờ học đọc lướt lướt thấy nó nói giới hạn từ -127 -> 127 cứ ngỡ nó cũng gióng int chỉ là giới hạn bé hơn. Thank a !!!

Khi viết một con số bất kỳ mà không có dấu hiệu chỉ thị kiểu nào thì nó mặc nhiên hiểu là int.

5 Likes

Cho em hỏi kiểu byte không dùng cho số là sao anh? trong java dùng cho số từ -127 -> 127 được mà nhỉ?


Kiểu byte vẫn gán 22 vào được.
Cơ mà, như @Duong_Act đề cập, số 22 sẽ được mặc định là kiểu int, do đó cậu phải downcasting nó về byte trước khi gán.

Hope it helps!

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