- Khóa học Offline tại Hà Nội
- Khóa học Java Online tại Udemy
- Giới thiệu Java
- Java là gì?
- Lịch sử Java
- Tổng quan
- Cài đặt Java
- Cách thiết lập Path
- Chương trình Hello World
- Phân tích chương trình Hello World
- Cú pháp Java cơ bản
- JDK, JRE và JVM
- Biến trong Java
- Kiểu dữ liệu
- Toán tử
- Các kiểu vòng lặp
- Lệnh if, switch
- Đối tượng Number
- Đối tượng Character
- Khái niệm OOP
- Lớp và Đối tượng
- Phương thức
- Nạp chồng phương thức (Overloading)
- Constructor
- Từ khóa static
- Từ khóa this
- Tính kế thừa (IS-A)
- Quan hệ (HAS-A)
- Ghi đè phương thức (Overriding)
- Kiểu trả về Covariant
- Từ khóa super
- Từ khóa final
- Tính đa hình
- Dynamic Binding
- Toán tử instanceof
- Tính trừu tượng
- Lớp abstract
- Interface
- Lớp abstract vs Interface
- Java Package
- Các kiểu Modifier
- Non-Access Modifier
- Access Modifier
- Tính bao đóng
- Lớp Object
- Nhân bản đối tượng
- Mảng (Array)
- Lớp Wrapper
- Gọi bởi giá trị
- Từ khóa strictfp
- Date & Time
- Regular Expression
- File và I/O
- ByteArrayInputStream
- DataInputStream
- ByteArrayOutputStream
- DataOutputStream
- Lớp File
- Lớp FileReader
- Lớp FileWriter
- Đối tượng String
- Immutable String
- So sánh chuỗi
- Nối chuỗi
- Chuỗi con
- Phương thức của lớp String
- Lớp StringBuffer
- Lớp StringBuilder
- String vs StringBuffer
- StringBuilder vs StringBuffer
- Phương thức toString()
- Lớp StringTokenizer
- Exception là gì
- Khối try-catch
- Khối finally
- Từ khóa throw
- Từ khóa throws
- ExceptionHandling vs MethodOverriding
- Custom Exception
- Cấu trúc dữ liệu
- Enumeration Interface
- Lớp BitSet
- Lớp Vector
- Lớp Stack
- Lớp Dictionary
- Lớp Properties
- Java Collection
- Collection Interface
- List Interface
- Set Interface
- SortedSet Interface
- MapEntry Interface
- Lớp ArrayList
Gọi bởi giá trị trong Java
Chỉ có gọi bởi giá trị trong Java, không có gọi bởi tham chiếu. Nếu chúng ta gọi một phương thức đang truyền một giá trị, thì đó là gọi bởi giá trị. Các thay đổi đang được thực hiện trong phương thức được gọi, sẽ không bị tác động trong phương thức đang gọi.
Ví dụ về gọi bởi giá trị trong Java
Trong trường hợp gọi bởi giá trị, giá trị ban đầu không bị thay đổi. Bạn theo dõi ví dụ đơn giản sau:
class Vidu{ int data=50; void change(int data){ data=data+100;//cac thay doi se chi o trong bien cuc bo } public static void main(String args[]){ Vidu op=new Vidu(); System.out.println("Truoc khi thay doi "+op.data); op.change(500); System.out.println("Sau khi thay doi "+op.data); } }
Chạy chương trình Java trên sẽ cho kết quả dạng:
Output:Truoc khi thay doi 50 Sau khi thay doi 50
Ví dụ khác về gọi bởi giá trị trong Java
Trong gọi bởi tham chiếu, giá trị ban đầu bị thay đổi nếu chúng ta tạo thay đổi trong phương thức được gọi. Nếu chúng ta truyền đối tượng thay cho bất cứ giá trị kiểu gốc nào, thì giá trị ban đầu sẽ bị thay đổi. Trong ví dụ này, chúng ta đang truyền đối tượng như là giá trị. Bạn theo dõi ví dụ đơn giản sau:
class Vidu2{ int data=50; void change(Vidu2 op){ op.data=op.data+100;//Cac thay doi se la trong bien instance } public static void main(String args[]){ Vidu2 op=new Vidu2(); System.out.println("Truoc khi thay doi "+op.data); op.change(op);//truyen doi tuong System.out.println("Sau khi thay doi "+op.data); } }
Chạy chương trình Java trên sẽ cho kết quả dạng:
Output:Truoc khi thay doi 50 Sau khi thay doi 150
Bài học Java phổ biến tại vietjack.com: