Ngày xưa mình hình dung thế này, không biết có giúp bạn dễ hiểu hơn không :p. Tham trị là khi truyền nó vào hàm, nó tạo ra một biến khác rồi gán giá trị truyền vào cho biến đó, sau khi kết thúc hàm thì biến mình truyền dữ liệu vào chả thay đổi gì cả. Tham biến là khi mình truyền một biến vào thì nó dùng biến đó để tính toán các kiểu trong hàm luôn, khi ra khỏi hàm thì biến được truyền vào đó bị thay đổi giá trị (do mình xài nó để tính toán trong hàm luôn mà :p)
Khi học lập trình hạn chế dịch ra tiếng Việt, gây bối rối lúc khi học.
Đang xem: Phân biệt tham trị là gì, Ý nghĩa tham số, tham trị, tham biến
Mình xin giải thích 1 số khái niệm dựa trên kiến thức JavaTham số (parameter): là biến được khai báo trong signature phương thức. VD:
public void say(String message){ System.out.println(message); // in message ra màn hình}Ở đây: message là tham số
Tham trị (Agrument): là giá trị khi truyền vào tham số của phương thức khi được gọi. VD:
String message = “Hello”;say(message);Hoặc
say(“Hello”);message và “Hello” là tham trị
Tham biến và Tham chiếuthì có lẽ thiên về C và C++ nên mình tạm dừng ở đây, mong các cao nhân khác giúp đỡ
2 Likes
noz1995 (Trần Hoàn) April 25, 2017, 2:01am #4
một phương thức có tham số sẽ có cấu trúc tối thiểu giống như một hàm số f(x) mà bạn học hồi cấp 3:
(, ….)//trong toán THPT thì kiểu dữ liệu lúc nào cũng hiểu ngầm định là số thực hoặc số phức nên không giải thích :)){ …code… return ();//Nếu kết quả đã thuộc kiểu dữ liệu T rồi thì không cần ép kiểu}ví dụ, phương thức luỹ thừa Pow(x,y) của class System.Math được khai báo như sau:
double Pow(double x, double y){ …double KetQua = x ^ y;… return KetQua;}Và khi đó, ta có thể dùng phương thức này kiểu như
double a;a = System.Math.Pow(2, 5);Trong trường hợp sử dụng phương thức có tham số, các tham số có thể là “tham chiếu địa chỉ”/“tham chiếu biến” (tham biến) hoặc “tham chiếu giá trị” (tham trị).
Khi sử dụng tham số dưới dạng tham trị, bản thân biến không được truyền vào phương thức mà chỉ có giá trị của biến đó được sử dụng làm tham số của phương thức (ví dụ phương thức Pow mình vừa nói ở trên). Một ví dụ khác thể hiện rõ đặc tính của tham trị:
void swap(int A, int B){ var TrungGian = A; A = B; B = TrungGian;}Nếu X == 5 và Y == 7 thì sau khi swap(X, Y); ta vẫn có X == 5 và Y == 7 vì phương thức swap viết như thế kia thì A và B chỉ là các biến tạm, có giá trị đầu vào của X và Y, ta chỉ đổi giá trị của các biến cục bộ, chạy phương thức xong thì các biến cục bộ bị xoá, X và Y hoàn toàn không bị ảnh hưởng.
Xem thêm: Thuốc Tân Dược Là Gì ? Liều Dùng Và Cách Sử Dụng Thuốc Đúng Cách
Muốn đổi giá trị của X và Y thì tham số của phương thức phải là tham biến (ví dụ dùng từ khoá ref-referrence):
void swap(int ref A, int ref B){ var TrungGian = A; A = B; B = TrungGian;}Như vậy khi gọi phương thức swap(ref X, ref Y); thì X và Y sẽ được sử dụng làm tham số phương thức và phương thức này sẽ thực sự đổi giá trị của X và Y
Tổng kết lại:“Tham số” là dữ liệu đầu vào của phương thức.“Tham chiếu” là cách để phương thức lấy dữ liệu.“Tham trị” là cách tham chiếu để sử dụng khi không có nhu cầu thay đổi giá trị của biến đầu vào.“Tham biến” là cách tham chiếu để sử dụng khi có nhu cầu thay đổi giá trị của biến đầu vào.
Xem thêm: Định Nghĩa Của Trophy Là Gì, Định Nghĩa Của Từ Trophy Trong Từ Điển Lạc Việt
7 Likes
Nó liên quan đến việc truyền giá trị của một biến bên ngoài hàm vào trong hàm(function)/ phương thức (method) để xử lý.để truyền được vào hàm thì phải khai báo các kiểu dữ liệu và tên biến đầu vào. Và các biến ầu vào đó gọi là Tham số
Khi truyền tham số cho hàm có 2 kiểu:
Truyền trực tiếp giá trị của biến vào hàm. Trước khi sử dung, dữ liệu đó được copy ra một bản sao và mọi tác động đều không thể ảnh hưởng tới dữ liệu gốc. Kiểu truyền đó là Truyền tham trị và biến khi truyền vào hàm gọi là Tham trị.
void Func(int input); // khai báo để truyền tham trịint a =0;Func(a)// Truyền tham trị. a là tham trị2.Truyền bí danh (alias – nickname
). Kiểu truyền này không có copy cái gì cả mà chơi thẳng với dữ liệu của biến gốc-> có thể thay đổi dữ liệu gốc.Tham số khi khai báo hàm lúc này gọi là Tham biến , giá trị truyền vào hàm lúc này là Tham chiếu
void Func(int *intput); // khai báo tham số vào là *input gọi là tham biến, chú ý có thêm dấu *)int a=0;void Func(&a); // biến truyền vào lúc này gọi là &a là một tham chiếu- bí danh/nickname của a :smile:Chém gió một hồi chắc là sai