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 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Tại sao dùng this. ?

    Em có 2 đoạn 2 thế này


    Mã:
     public void cong() {
            Scanner input = new Scanner(System.in);
            
            System.out.print("Nhập số thứ nhất: ");
            num1 = input.nextByte();
            System.out.println(num1);
    
        }
    Mã:
     public void cong() {
            Scanner input = new Scanner(System.in);
            
            System.out.print("Nhập số thứ nhất: ");
            this.num1 = input.nextByte();
            System.out.println(this.num1);
    
        }
    Nhau ở ở biến num1 có this. và không có this.

    Khi em chạy em thấy nó chạy đều giống nhau không thấy báo lỗi gì cả.
    Vậy mục đích của this. trước tên field là gì ?

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Lợi ích 1: Để phân biệt với biến cục bộ nếu như có cùng tên.
    Lợi ích 2: Mã lệnh rõ nghĩa hơn. Đọc cái ví dụ số 2 dễ hiểu hơn số 1
    Ngoài ra nó còn 1 số lợi ích như trong Anonymous Class (thường thấy khi tạo các listener muốn tham chiếu trở lại class bên ngoài)

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi tieugiang94
    Em có 2 đoạn 2 thế này


    Mã:
     public void cong() {
            Scanner input = new Scanner(System.in);
            
            System.out.print("Nhập số thứ nhất: ");
            num1 = input.nextByte();
            System.out.println(num1);
    
        }
    Mã:
     public void cong() {
            Scanner input = new Scanner(System.in);
            
            System.out.print("Nhập số thứ nhất: ");
            this.num1 = input.nextByte();
            System.out.println(this.num1);
    
        }
    Nhau ở ở biến num1 có this. và không có this.

    Khi em chạy em thấy nó chạy đều giống nhau không thấy báo lỗi gì cả.
    Vậy mục đích của this. trước tên field là gì ?
    "This" chỉ tới đối tượng hiện thời.
    [IMG]images/smilies/thinking.gif[/IMG]Bạn học class rồi, thì sẽ dễ thấy công dụng của "this" hơn.
    Ví dụ đoạn code này nhá. Mình có class Student có các thuộc tính là name, age, mark.
    Mã:
    class Student {
    String name;
    int age;
    float mark;
    
    public Student(String name, int age, float mark) { //khởi tạo
    this.name = name; //ở đây this.name chỉ thuộc tính của Student, còn name là tham số.
    this.age = age;     // nt
    this.mark = mark;  // nt
    }
    ....
    }
    Thực ra, đoạn code trên với đoạn code này là giống nhau.
    Mã:
    class Student {
    String name;
    int age;
    float mark;
    
    public Student(String name1, int age1, float mark1) { //khởi tạo
    name = name1; 
    age = age1;     
    mark = mark1; 
    }
    ....
    }

 

 

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
  •