Lỗi khi nhập dữ liệu từ console với method Scanner.nextLine()

các bác xem e bị sai chỗ nào mà khi nhập nó toàn báo lỗi vậy, e có 2 class

// class SanPham

package QuanLiChiTieu;

public class SanPham {
	private String ten;
	
	public void setTen(String ten){
		this.ten = ten;
	}
	
	public String getTen(){
		return this.ten;
	}
	
}

// class MotNgay

package QuanLiChiTieu;

import java.util.Scanner;

public class MotNgay {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		SanPham [] sp = new SanPham [5];
		
		for(int i = 1; i <= 3; i++){
			System.out.println("---------- San pham thu " + i + " ----------");
			
			System.out.println("Nhap ten: ");
			sp[i].setTen(sc.nextLine());
			
			System.out.println("Ten: " + sp[i].getTen());
		}
	}
}

Khi bạn chạy chương trình sẽ nhận được lỗi “java.lang.NullPointerException”
Bởi vì bạn đã tạo một Arrays SanPhan với 5 unit SanPhan trống…
SanPham [] sp = new SanPham [5];
Bạn phải thêm dòng khai báo đối tượng cho các unit arrays:
VD: Khai báo cho unit 1 của arrays
sp[0] = new SanPhan();
Làm tương tự với các unit còn lại :slight_smile:

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