01/10/2018, 00:03

Em hỏi về scanner trong java ạ?

Em có một thắc mắc là sao em học thì khi tạo một đối tượng thuộc lớp scanner thì có thể viết : Scanner nhap = new Scanner(System.in);
>> code cụ thể em học:

         public class Helloword {

          	public static void main(String[] args) {
            		String ten;
        
         		Scanner nhap = new Scanner(System.in);// tạo đối tượng thuộc lớn scanner

            		ten = nhap.next();// tạo một biến thuộc đối tượng nhập
           		// nextline() in ra cả dòng
         		// next() in nhưng phần tử nằm trước khoảng trắng

             		System.out.println("tên tôi là: " + ten);
            	}

         }

nhưng khi viết lên thì chương trình báo lỗi và gọi ý viết lại thành:

package nguyenmanh;

import java.util.Scanner;

public class Helloword {

	private static Scanner nhap; 

	public static void main(String[] args) {
		
		String ten;
		
		nhap = new Scanner(System.in);// tạo đối tượng thuộc lớn scanner

		ten = nhap.next();// tạo một biến thuộc đối tượng nhập
		// nextline() in ra cả dòng
		// next() in nhưng phần tử nằm trước khoảng trắng

		System.out.println("tên tôi là: " + ten);
	}

}

Tức là thay vì khai báo Scanner nhap=new scanner(system.in); thì nó bắt có 1 cái private static Scanner nhap;

*grab popcorn* viết 02:20 ngày 01/10/2018

Do hàm main là static
nên nó yêu cầu các field muốn dùng được trong hàm static này cũng phải static theo.

Còn nếu ko thì bạn có thể làm như sau

public class JavaApplication10 {

    private Scanner scan;
    
    public static void main(String[] args) {
        JavaApplication10 a = new JavaApplication10();
        a.scan = new Scanner(System.in);
    } 
}
Trình Thái Huỳnh viết 02:05 ngày 01/10/2018

Mình cũng không biết nhiều về java …
Bạn thay dòng ten = nhap.next();// tạo một biến thuộc đối tượng nhập
thành ten=nhap.nextLine();
thay dòng nhap = new Scanner(System.in);
thành Scanner nhấp=new Scanner(System.in);rồi thử lại
có lẽ ổn

Nguyễn Mạnh viết 02:19 ngày 01/10/2018

mình đã thử nhưng chương trình toàn gợi í là phải có cái: private static Scanner nhap;

và dưới là: nhap = new Scanner(System.in);

trong khi mình học thì vẫn là: Scanner nhap=new scanner(system.in)

Anh Tuấn Vũ viết 02:04 ngày 01/10/2018

Có gì khác nhau đâu

Nguyễn Mạnh viết 02:16 ngày 01/10/2018

nhưng mà cái bên trên khi nhập vào nó báo lỗi

Anh Tuấn Vũ viết 02:13 ngày 01/10/2018

Nhét cái khai báo scanner xuống main là đc mà ^^

Bài liên quan
0