01/10/2018, 14:18
Tạo mảng n phần tử, mỗi phần tử là 1 phương trình đường thẳng d: y = ax+b
Anh chị cho em hỏi em viết như thế này thì sai ở chỗ nào à, khi em nhập 2 hệ số a, b của đường thẳng thì không được ạ! Em không biết em sai ở đâu?
import java.util.Scanner;
public class DuongThang {
public int a;
public int b;
DuongThang()
{
}
DuongThang(int a, int b)
{
this.a = a;
this.b = b;
}
Scanner sc = new Scanner(System.in);
public void NhapDT()
{
System.out.println("a = ");
a = sc.nextInt();
System.out.println("b = ");
b = sc.nextInt();
}
public String toString()
{
return "a: y = " +a+ "x "+b+" ";
}
}
// HAM MAIN
import java.util.Scanner;
public class Test {
public static void main(String[] args)
{
DuongThang []dt ;
Scanner sa = new Scanner(System.in);
int n;
System.out.println("Nhap vao so luong duong thang ");
n = Integer.parseInt(sa.nextLine());
dt = new DuongThang[n];
dt[n] = new DuongThang();
for(int i = 0 ;i < dt.length ; i++)
{
dt[i].NhapDT();
}
for(int i = 0 ; i < dt.length; i++)
{
System.out.println(dt[i]);
}
}
Bài liên quan
Đoạn
phải là this.a và this.b chứ?
Em chạy thì nó báo lỗi ở hàm main:
Nhap vao so luong duong thang
2
Exception in thread “main” java.lang.NullPointerException
at BT1.Test.main(Test.java:18)
có phải là do cách khai báo mảng và số phần tử của em bị sai không ạ?
Nhìn cho kĩ 2 dòng này vào.
Với lại vị trí đặt của dòng khởi tạo 1 object DuongThang() hiện tại đang bị sai.
à đúng rồi, khởi tạo phải ở trong vòng lặp for mới đúng! Em cảm ơn ạ!