Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    lỗi java.lang.NullPointerException trong java

    em làm code thế này lúc chạy nó hiện ra lỗi java.lang.NullPointerException cả nhà giải thích hộ em cái nha.
    Mã:
    package baitap;
    import java.util.Scanner;
    /**
     *
     * @author HueCd.Com
     */
    class NhanVien
    {
        private String TenNhanVien;
        private double LuongCoBan;
        private double HeSoLuong;
        private double LuongMax;
        public NhanVien()
        {
            System.out.print("Ten nhan vien: ");
            Scanner input = new Scanner(System.in);
            TenNhanVien = input.nextLine();
            this.TenNhanVien = TenNhanVien;
            System.out.print("Luong Co Ban : ");
            LuongCoBan = input.nextInt();
            this.LuongCoBan =LuongCoBan;
            System.out.print("He so luong : ");
            HeSoLuong = input.nextInt();
            this.HeSoLuong =HeSoLuong;
            System.out.print("Luong Max : ");
            LuongMax = input.nextInt();
            this.LuongMax =LuongMax;
    
        }
        public String getName()
        {
            return TenNhanVien;
        }
        public double getLuongCoBan()
        {
            return LuongCoBan;
        }
        public double getHeSoLuong()
        {
            return HeSoLuong;
        }
        public double tinhLuong()
        {
            return HeSoLuong*LuongCoBan;
        }
        public boolean tangLuong()
        {
            if(LuongMax>(tinhLuong()))
                return true;
            return false;
        }
        public void inLuong()
        {
            System.out.print("Luong cua "+TenNhanVien+" la: "+tinhLuong());
        }
    }
    public class Baitvn {
        public static void main(String args[])
        {
            NhanVien[] nv = new NhanVien[2];
            System.out.println("Nhap trong tin nhan vien");
            for(NhanVien s : nv)
            {
                s=new NhanVien();
            }
            for(int i=0;i<3;i++)
            {
                System.out.println("Ten nhan vien: "+nv[i].getName());
                System.out.println("He so luong: "+nv[i].getHeSoLuong());
                System.out.println("Luong co ban: "+nv[i].getLuongCoBan());
                System.out.println("Co tang luong dc nua khong: "+nv[i].tangLuong());
                nv[i].inLuong();
            }
        }
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    theo mình ở hàm dựng bạn không thể làm biến this như vậy được, nếu muốn bạn phải sửa thành như thế này. bạn thử xem nha
    Mã:
     private String TenNhanVien;
        private double LuongCoBan;
        private double HeSoLuong;
        private double LuongMax;
        public NhanVien(String TenNhanVien, double LuongCoBan, double HeSoLuong, double LuongMax)
        {
            System.out.print("Ten nhan vien: ");
            Scanner input = new Scanner(System.in);
            TenNhanVien = input.nextLine();
            this.TenNhanVien = TenNhanVien;
            System.out.print("Luong Co Ban : ");
            LuongCoBan = input.nextInt();
            this.LuongCoBan =LuongCoBan;
            System.out.print("He so luong : ");
            HeSoLuong = input.nextInt();
            this.HeSoLuong =HeSoLuong;
            System.out.print("Luong Max : ");
            LuongMax = input.nextInt();
            this.LuongMax =LuongMax;
    
        }

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    em làm 1 bài đơn giản về mảng các phần tử nhưng cứ đến vòng lặp để in ra thì báo lỗi NullPointerException là sao vậy, ai biết chỉ e với, hình như trong thao tác nhập phần tử vào mảng cũng có sai sót, ai biết chỉ giúp em, em cảm ơn [IMG]images/smilies/biggrin.png[/IMG]
    Mã:
    import java.io.*;
    
    class SV{
    	private String Hoten;
    	private String MaSV;
    	public SV()
    	{
    		this.Hoten="\0";
    		this.MaSV="\0";
    	}
    	public void Input(String hoten,String masv)	{
    		this.MaSV = masv;
    		this.Hoten = hoten;
    	}
    	public String getHt()
    	{
    		return this.Hoten;
    	}
    	public String getMasv()
    	{
    		return this.MaSV;
    	}
    	public static void main(String args[]) throws IOException
    	{
    		SV[] sinhvien = new SV[10];		
    		String b, c;
    		int n=0;
    		do{	
    		System.out.println("Nhap vao ho ten sinh vien");
    		System.out.println(n);
    		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    		c = in.readLine();
    		System.out.println("Nhap vao ma sinh vien");		
    		b = in.readLine();
    		sinhvien[n] = new SV();
    		sinhvien[n].Input(b,c);					
    		n++;			
    		}while(n<4);		
    		for(int i=0; i<sinhvien.length; i++)
    		{			
    			System.out.println(sinhvien[n].getMasv()+"  "+sinhvien[n].getHt());
    		}
    	}
    }

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Lỗi do nhập dữ liệu cho 4 phần tử còn khi in lại in ra cả mảng 10 phần tử, những phần tử từ 4-10 sẽ gặp lỗi Null.

    p/s: không nên dùng "\0" vì trong java có hằng số "null", dùng "null" cho trong sáng.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi thonv
    Lỗi do nhập dữ liệu cho 4 phần tử còn khi in lại in ra cả mảng 10 phần tử, những phần tử từ 4-10 sẽ gặp lỗi Null.

    p/s: không nên dùng "\0" vì trong java có hằng số "null", dùng "null" cho trong sáng.
    mình đã sửa dc bài này, tks bạn [IMG]images/smilies/biggrin.png[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •