01/10/2018, 14:23

Cho mình hỏi đoạn code sai ở đâu khi in ra kết quả toàn null với 0.0 vậy ạ

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package bai2;

import java.util.Scanner;

public class quanly {

    student[] sv = new student[50];
    int n;

    void inputmany() {
        String x1id;
        String x1major  ;
        String x1name;
        String x1address;
        double x1mark;
        int x1dob;
        Scanner sc = new Scanner(System.in);
        System.out.println("n=");
        n = sc.nextInt();
        sv= new student[n];
        for (int i = 0; i < n; i++) {
         sv[i]= new student();
            System.out.println("ID=");
            x1id=sc.next();
            sv[i].setid(x1id);
            System.out.println("Name=");
            x1name=sc.next();
            sv[i].setname(x1name);
            System.out.println("address=");
            x1address=sc.next();
            sv[i].setaddress(x1address);
            System.out.println("major=");
          x1major=sc.next();
          sv[i].setmajor(x1major);
            System.out.println("mark=");
           x1mark= sc.nextDouble();
           sv[i].setmark(x1mark);
        }
    }
    void viewmany(){
        for(int i=0;i<n;i++){
        System.out.println(sv[i].getid());
        System.out.println(sv[i].getname());
        System.out.println(sv[i].getaddress());
        System.out.println(sv[i].getmajor());
        System.out.println(sv[i].getmark());    
        }
    }
     public static void main(String[] args) {
         quanly ql= new quanly();
         ql.inputmany();
         ql.viewmany();
     }
    }
Hieu Hoang viết 16:24 ngày 01/10/2018

chắc sai trong hàm set trong student rồi

daothien viết 16:37 ngày 01/10/2018

Bạn xem lại Get và Set bên class student nhé.
Get và Set ở trong các IDE đều hỗ trợ cả nên bạn không cần tự code ra thế đâu. Phím tắt thường là: Alt + insert
Bạn thử dùng class student bên dưới và sửa lại tên các phương thức Get và Set bên class quanly được gọi vào cho đúng rồi chạy thử xem

public class student{
    String id;
    String adress;
    String name;
    String major;
    double mark;
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getAdress() {
        return adress;
    }

    public void setAdress(String adress) {
        this.adress = adress;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }
    
    public double getMark() {
        return mark;
    }

    public void setMark(double mark) {
        this.mark = mark;
    }
}
Chẵn viết 16:29 ngày 01/10/2018

Null với 0.0 là đúng rồi. Đối tượng ở 2 method input vs view nó đâu có liên quan gì đến nhau đâu mà gọi được ra kết quả chứ bạn.

Anh Vũ viết 16:24 ngày 01/10/2018

Thanks bác !! đúng rồi e sai chỗ hàm set

daothien viết 16:40 ngày 01/10/2018

Null với 0.0 là đúng rồi. Đối tượng ở 2 method input vs view nó đâu có liên quan gì đến nhau đâu mà gọi được ra kết quả chứ bạn.

Bác xem lại đi.

  • Mảng chứa các sinh viên kia được khai báo toàn cục chứ không phải cục bộ.
  • Hàm inputmany() dùng để nạp dữ liệu cho từng sinh viên.
  • Hàm viewmany() để hiển thị thông tin các sinh viên có trong mảng.
    Tất cả được gọi trong main(). Mà sao bác bảo không liên quan
Chẵn viết 16:38 ngày 01/10/2018

student[] sv = new student[50];
sv= new student[n];
2 new này bác.

Quân viết 16:36 ngày 01/10/2018

có dòng new đó chẳng sao cả, nếu vấn đề nằm ở dòng new đó thì lỗi bạn này nhận được sẽ là NullPointerException chứ không phải chỉ đơn giản in ra null với 0.0. Vấn đề thực sự nó nằm ở các hàm set của class Student thôi

Bài liên quan
0