JavaRush /Blog Java /Random-VI /Nghỉ giải lao #166. Tại sao cần đóng gói trong Java? Ba c...

Nghỉ giải lao #166. Tại sao cần đóng gói trong Java? Ba cách để sử dụng chức năng in trong Java

Xuất bản trong nhóm

Tại sao cần đóng gói trong Java?

Nguồn: Sử dụng Ghi chú của tôi Trong bài đăng này, bạn sẽ tìm hiểu lý do tại sao tính đóng gói lại cần thiết trong lập trình hướng đối tượng. Bài viết thảo luận về khái niệm hoạt động và phương pháp triển khai của nó bằng ngôn ngữ Java. Nghỉ giải lao #166.  Tại sao cần đóng gói trong Java?  Ba cách sử dụng hàm Print trong Java - 1

Đóng gói trong Java là gì

Đóng gói là một khái niệm trong ngôn ngữ Java kết hợp dữ liệu và các phương thức hoạt động trên nó thành một gói hoặc trình bao bọc duy nhất. Nói một cách đơn giản, đóng gói kết hợp các biến và phương thức trong một lớp.

Tại sao chúng ta cần đóng gói trong Java?

  • Để giữ cho mã của bạn sạch sẽ và có tổ chức.
  • Để kiểm soát truy cập tốt hơn cho các thành viên được đóng gói.
  • Để hiểu rõ hơn về mã.
Hãy hiểu khái niệm này bằng một ví dụ nhỏ:
class MyBankAccount {
    private int acc_number;
    private int acc_balance;

    public MyBankAccount(int acc_number, int acc_balance) {
        this.acc_number = acc_number;
        this.acc_balance = acc_balance;
    }

    public int printAccountBalance() {
        System.out.println("Balance: " + acc_balance);
    }

    public int printAccountNumber() {
        System.out.println("Account Number: " + acc_number);
    }

    public void depositMoney(int money) {
        acc_balance = acc_balance + money;
    }
}
Ở đây chúng ta có một lớp MyBankAccount với một hàm tạo, hai biến và ba phương thức. Các thành viên trong lớp này có quan hệ họ hàng với nhau nên họ ở cùng một lớp. Lớp MyBankAccount đóng gói hoặc kết hợp các nội dung của lớp và tất cả mã này hoạt động như một đơn vị duy nhất. Bây giờ, chỉ cần nhìn vào tên lớp, tức là “MyBankAccount”, chúng ta có thể giả định rằng nó có số dư tài khoản và số tài khoản (có các biến). Tài khoản ngân hàng gắn liền với các giao dịch tiền tệ như gửi tiền, liệt kê số dư tài khoản, v.v. Các giao dịch này được thực hiện bằng các phương thức tương ứng với lớp trên. Như chúng ta có thể thấy, điều này đã cải thiện khả năng đọc và bảo trì mã. Giả sử chúng ta có 100 lớp và mỗi lớp có 5 đến 10 phương thức và số lượng biến gần như giống nhau. Với tính năng đóng gói, chúng ta sẽ dễ dàng tìm thấy các phương thức hoặc biến cụ thể hơn bằng cách đoán xem chúng thuộc về lớp nào.

Khái niệm đóng gói có thể giúp ích gì cho bạn trong công việc?

Đóng gói trong lập trình có một số lợi thế, chúng ta chỉ không nhận ra chúng cho đến khi thấy chúng hoạt động. Trong thế giới hiện đại, mọi thứ đều là kỹ thuật số và phần mềm theo cách này hay cách khác. Có nhiều ngôn ngữ lập trình trong đó một lượng mã khổng lồ được tạo ra khi phát triển phần mềm hoặc thư viện lập trình. Tất cả chúng đều được gói gọn theo cách này hay cách khác. Nếu không có tính năng đóng gói, việc lập trình sẽ trở thành một mớ hỗn độn (đặc biệt là trong ngành phần mềm). Đóng gói trong Java:
  • Giúp tổ chức mã tốt hơn và rõ ràng hơn.
  • Cho phép bạn tốn ít công sức hơn khi duy trì một lượng lớn mã.
  • Giảm độ phức tạp của việc quản lý mã.
  • Chia mã thành nhiều phần.
  • Cải thiện khả năng đọc.

Nếu không có sự đóng gói thì sao?

Có những ngôn ngữ lập trình không có khái niệm đóng gói. Một trong số đó là ngôn ngữ lập trình C. Nó không có khái niệm đóng gói. Mã có thể nằm rải rác trên các tệp và mỗi tệp có thể có bất kỳ biến hoặc hàm nào có thể liên quan hoặc không liên quan với nhau. Điều này tạo ra sự nhầm lẫn trong việc quản lý mã và làm tăng độ phức tạp. Không có đóng gói:
  • Mã có thể trở nên vô tổ chức hoặc lộn xộn.
  • Sự phức tạp của việc bảo trì mã tăng lên.
  • Việc gỡ lỗi mã trở nên khó khăn hơn.
  • Khả năng đọc giảm.
Tôi hy vọng bây giờ bạn đã hiểu rõ hơn về tính đóng gói và cách sử dụng nó trong lập trình Java. Cảm ơn bạn đã đọc.

Ba cách để sử dụng chức năng in trong Java

Nguồn: FreeCodeCamp Không phải tất cả các nhà phát triển đều biết về ba hàm/toán tử In khác nhau trong Java. Tác giả của bài viết này sẽ nói về chúng và chỉ ra cách chúng hoạt động bằng các ví dụ. Nghỉ giải lao #166.  Tại sao cần đóng gói trong Java?  Ba cách sử dụng hàm Print trong Java - 2

Cách sử dụng hàm println() trong Java

Hàm println() thêm một dòng mới sau khi in giá trị/dữ liệu bên trong nó. Ở đây hậu tố ln hoạt động giống như ký tự dòng mới \n . Hãy xem mã mẫu:
public class Main{
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
Nếu vẫn chưa rõ chính xác điều gì đang xảy ra thì có thể giải thích ngắn gọn như sau. Khi bạn chỉ in một dòng, đây là kết quả bạn nhận được:
Chào thế giới!
Bây giờ, nếu bạn thử in một số biểu thức khác nhau bằng cách sử dụng println() , bạn có thể thấy rõ sự khác biệt!
public class Main{
    public static void main(String[] args) {
        System.out.println("Hello World!");
        System.out.println("Welcome to freeCodeCamp");
    }
}
Như bạn có thể thấy, sau khi câu lệnh in đầu tiên được thực thi, một ký tự dòng mới ( \n ) sẽ được thêm vào. Vậy là bạn nhận được câu lệnh in thứ hai Chào mừng đến với freeCodeCamp ở dòng tiếp theo. Toàn bộ đầu ra sẽ như sau:
Chào thế giới! Chào mừng đến với freeCodeCamp
Nhưng không có cách nào để thoát khỏi dòng mới được tạo tự động trong chức năng in ? Ăn! Trong trường hợp này, bạn cần sử dụng câu lệnh print() .

Cách sử dụng hàm print() trong Java

Để minh họa cho đặc điểm này, tôi xin dùng một ví dụ sẽ giúp bạn thấy ngay sự khác biệt:
public class Main{
    public static void main(String[] args) {
        System.out.print("Hello World!");
        System.out.print("Welcome to freeCodeCamp");
    }
}
Như bạn thấy, tôi đã sử dụng print thay vì sử dụng println như trước. Câu lệnh in không thêm \n bổ sung làm ký tự dòng mới sau khi thực hiện một tác vụ trong đó. Nghĩa là, bạn sẽ không nhận được một dòng mới nào khác trong đầu ra, nhưng có nội dung như thế này:
Chào thế giới! Chào mừng đến với freeCodeCamp
Nếu muốn, bạn có thể giải quyết vấn đề \n như sau:
public class Main{
    public static void main(String[] args) {
        System.out.print("Hello World!\n");
        System.out.print("Welcome to freeCodeCamp");
    }
}
Lần này \n sẽ hoạt động như một ký tự dòng mới và bạn sẽ nhận được dòng thứ hai. Đây là kết quả:
Chào thế giới! Chào mừng đến với freeCodeCamp
Bạn cũng có thể in hai dòng chỉ bằng một câu lệnh in , như hiển thị bên dưới:
public class Main{
    public static void main(String[] args) {
        System.out.print("Hello World!\nWelcome to freeCodeCamp");
    }
}
Đầu ra sẽ giống nhau:
Chào thế giới! Chào mừng đến với freeCodeCamp

Cách sử dụng hàm printf() trong Java

Hàm printf() hoạt động giống như hàm in được định dạng . Để hiểu rõ hơn, đây là hai kịch bản: Kịch bản 1 . Bạn của bạn, Tommy muốn bạn gửi cho anh ấy một tệp PDF qua email. Bạn có thể chỉ cần tạo một email với dòng chủ đề bạn chọn (ví dụ: xin chào Tommy, đây là Jim). Bạn thậm chí có thể bỏ nội dung email và gửi email trống chỉ với tệp đính kèm PDF. Kịch bản 2 . Hôm qua bạn không thể đến lớp được. Giáo viên của bạn đã yêu cầu bạn cung cấp bằng chứng về lý do vắng mặt và gửi tài liệu qua email. Ở đây, bạn không thể gửi thư cho giáo sư như cách bạn đã làm cho bạn Tommy. Bạn cần phải duy trì một số hình thức và phép xã giao phù hợp. Nghĩa là, trong thư bạn phải chỉ ra một chủ đề trang trọng và viết những thông tin cần thiết vào phần thân. Cuối cùng nhưng không kém phần quan trọng, bạn nên đính kèm tài liệu vào email của mình sau khi đổi tên theo đúng quy ước đặt tên. Vấn đề là bạn cần định dạng email của mình theo cách bạn yêu cầu. Hàm printf() giúp chúng ta thực hiện kịch bản thứ hai. Nếu chúng ta muốn chỉ định một định dạng/kiểu in cụ thể, chúng ta sử dụng hàm printf() . Đây là một ví dụ nhanh về cách thức hoạt động của nó:
public class Main{
    public static void main(String[] args) {
        double value = 2.3897;
        System.out.println(value);
        System.out.printf("%.2f" , value);
    }
}
Ở đây tôi khai báo một biến kép gọi là value và gán giá trị 2,3897 cho nó . Bây giờ khi tôi sử dụng hàm println(), nó sẽ in toàn bộ giá trị có bốn chữ số sau dấu cơ số. Đây là kết quả:
2,3897 2,39
Sau đó, khi sử dụng hàm printf() , tôi có thể thay đổi luồng đầu ra để hàm in ra một giá trị. Ở đây tôi nói với hàm rằng tôi muốn xuất ra chính xác hai chữ số sau điểm cơ số. Vì vậy, hàm in giá trị được làm tròn thành hai chữ số sau điểm cơ số. Và đây chỉ là một cách để sử dụng hàm printf() . Hãy nhớ rằng nó có nhiều cách sử dụng trong ngôn ngữ Java.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION