import java.util.*;
import java.io.*;
//đây là class hs
class hs {
private int ms;//ngoài class hs (a.ms = 5) là gán giá trị
private String ten;
private float dtb;
public void nhap_info() {
Scanner nhap=new Scanner(System.in);//biến tên nhập
ms=nhap.nextInt();
nhap.nextLine();//cách để ignore bộ đệm
ten=nhap.nextLine();
dtb=nhap.nextFloat();
}
public void xuat_info() {
System.out.println("mssv " + ms);
System.out.println("hoten " + ten);
System.out.println("dtb " + dtb);
}
public void rank() {
if(dtb<4)
System.out.println("diem F");
else if(dtb<5)
System.out.println("diem D");
else if(dtb<6.5)
System.out.println("diem C");
else if(dtb<8)
System.out.println("diem B");
else if(dtb<8.75)
System.out.println("diem A");
else
System.out.println("diem A+");
}
}
//private -> bạn chỉ có thể sử dụng trong class của nó thôi(trong class hs)
//public -> các class khác đều sử dụng đc
public class info_hs {
public static void main(String[] args) {
hs a = new hs();//a chỉ là tên định danh của class đó
a.nhap_info();//từ class hs lấy ra hàm nhập
a.xuat_info();
a.rank();
}
}
khi ta tạo biến hs a thì ở bộ nhớ stack có 1 vùng nhớ có kích thước tương đương với class hs vậy tại sao trong java phải khởi tạo 1 đối tượng sao ko khai báo rồi dùng luôn như struct và viêc khởi tạo như vậy thì tác động đến vùng nhớ như thế nào ? hay đó chỉ là giao thức phải có khi tạo 1 class ko riêng class mà mảng cũng thế đó có phải là cấp phát động ? và nếu đó là cấp phát động thì tại sao ko nó lại ko cần giải phóng khi ra khỏi hàm.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?