Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Tại sao dùng this. ?

  1. #1
    Ngày gia nhập
    01 2010
    Bài viết
    9

    Mặc định Tại sao dùng this. ?

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


    Code:
     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);
    
        }
    Code:
     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 gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    819

    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)
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  3. #3
    Ngày gia nhập
    11 2012
    Bài viết
    29

    Trích dẫn Nguyên bản được gửi bởi tieugiang94 Xem bài viết
    Em có 2 đoạn 2 thế này


    Code:
     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);
    
        }
    Code:
     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.
    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.
    Code:
    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.
    Code:
    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; 
    }
    ....
    }
    Đã được chỉnh sửa lần cuối bởi pato24193 : 05-01-2013 lúc 08:40 PM.

  4. #4
    Ngày gia nhập
    04 2012
    Bài viết
    116

    Trích dẫn Nguyên bản được gửi bởi tieugiang94 Xem bài viết
    Em có 2 đoạn 2 thế này


    Code:
     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);
    
        }
    Code:
     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ì ?
    trường hợp này không cần dùng this vẫn được

Các đề tài tương tự

  1. Upload file dùng Ajax mà ko dùng Method Post của Form như thế nào?
    Gửi bởi hieupxd2cntt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 14-09-2014, 10:23 PM
  2. Lập trình C++ trong visual studio có cách nào để dùng winform mà vẫn dùng cách viết trên c++ được ?
    Gửi bởi homgiaouoc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-10-2013, 12:50 PM
  3. Bài toán quản lí nhân viên dùng dùng danh sách liên kết trong C++. Mong mọi người góp ý!
    Gửi bởi rataki trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 22-11-2012, 11:26 PM
  4. Bài tập C++ Dùng strtok cắt chuỗi và lỗi khi dùng atof() chuyển char sang float
    Gửi bởi salomontong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-03-2012, 05:18 PM
  5. Tại sao dùng const trong trường hợp dùng biến tham chiếu
    Gửi bởi dinhdoong trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 13
    Bài viết cuối: 04-02-2012, 10:45 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn