Advertisements
YellowCode.Books

Java Bài 38: Exception Tập 2 – Bắt (Bẫy) Exception Thông Qua Try Catch

Ở bài hôm trước các bạn đã làm quen với khái niệm Exception, và thử tạo một vài Exception để cùng “xem chơi”. Tuy nhiên, cái chính mà Exception ra đời không phải để chúng ta chỉ đứng nhìn một cách “bất lực” như vậy đâu. Chúng ta hoàn toàn có thể đối mặt với Exception, bằng cách bắt lấy chúng, chặn chúng lại không để chương trình bị lỗi, và làm những gì chúng ta mong muốn, như bài trước mình có dùng từ “bẻ luồng”.

Như vậy, phần thứ hai của chuỗi bài về Exception hôm nay chúng ta nói đến các kỹ thuật để bắt các Exception này.

Java Bài 37: Exception Tập 1 – Làm Quen Với Exception

Trước khi bắt đầu đi chi tiết vào bài học, mình muốn các bạn biết rằng, ở đời không ai là hoàn hảo cả. Khi con người ta đủ lớn khôn, họ sẽ bắt đầu mắc lỗi. Điều quan trọng trong cuộc sống này là, không phải lúc nào bạn cũng cứ tránh xảy ra lỗi (vì nói thẳng ra là chẳng ai muốn dây vào lỗi hết), mà là nên học cách như thế nào đó để khi mắc lỗi rồi thì sẽ khắc phục và vượt qua lỗi lầm như thế nào thôi.

Ôi sao bài học hôm nay nặng triết lý quá vậy. Thực ra mình dẫn dụ tí cho vui. Đại ý của bài học hôm nay cũng sẽ gần như triết lý trên vậy. Tức là chúng ta sẽ xem xét đến một khía cạnh LỖI. LỖI ở đây là LỖI xảy ra trong các đoạn code mà chúng ta viết ra, một cách nghiêm túc và chuyên sâu.

Quay lại triết lý một chút, rằng một khi mà ứng dụng của chúng ta đủ lớn (cả về số dòng code lẫn tính năng), thì chắc chắn khi đó chúng ta sẽ khó kiểm soát được tính ổn định của logic ứng dụng. Và đến một lúc nào đó sẽ có LỖI xảy ra, LỖI nhẹ sẽ khiến hệ thống tung ra một số thông báo lạ lẫm đến người dùng, làm họ hoang mang, lỗi nặng hơn nữa sẽ làm cho ứng dụng bị kết thúc một cách đột ngột. Và cũng như triết lý trên kia, bạn không mong muốn LỖI xảy ra, nhưng bạn nên hiểu và phân biệt được các dạng LỖI trong Java, để có thể cung cấp cho ứng dụng một kịch bản đủ mạnh để vượt qua được LỖI mà không bị kết thúc một cách đột ngột, chí ít là cũng có thể thông báo một nội dung rõ ràng về tình trạng LỖI, hơn là để họ loay hoay với cái chức năng mà ứng dụng của bạn đã mất khả năng kiểm soát.

Java Bài 36: Lớp Wrapper

Bài học hôm nay đưa chúng ta ngược về quá khứ, để bổ sung thêm kiến thức còn khá “mộc mạc” ở một bài học khi đó. Quá khứ ở đây là lúc mà chúng ta còn đang làm quen với các kiểu dữ liệu nguyên thủy của Java. Lúc bấy giờ bạn đã biết Java có 8 kiểu nguyên thủy, chúng bao gồm int, short, long, byte, float, double, char và boolean. Bạn có thể xem lại toàn bộ bài học số 4 để biết rõ thông tin về các kiểu dữ liệu này.

Hôm nay bạn sẽ được làm quen với các lớp có tên là Wrapper. Để xem các lớp này giúp bổ sung gì cho các kiểu dữ liệu nguyên thủy vừa được liệt kê trên đây nhé.

Java Bài 35: Lớp Vô Danh (Anonymous Class)

Bài học hôm nay chúng ta sẽ đến với một cách sử dụng lớp và đối tượng bên trong Java một cách thú vị hơn. Thông qua bài học bạn sẽ biết được rằng, không phải lúc nào cũng cứ phải khai báo một lớp rõ ràng rồi sử dụng nó thông qua các khai báo đối tượng từ lớp đó. Bạn có thể tạo ra đối tượng thoải mái từ một lớp mà chẳng ai biết là đối tượng đó thuộc lớp nào cả.

Sau bài học, bạn sẽ biết cách sử dụng lớp trong Java một cách linh động hơn, ngắn gọn hơn, và nếu nhìn quen mắt thì sẽ còn thấy dễ hiểu hơn đấy. Mời các bạn cùng đến với bài học hôm nay.

Java Bài 34: Lớp Lồng

Đọc đến tiêu đề chắc hẳn bạn đã biết nội dung mà bài học hướng đến rồi. Đó chính là kiến thức về việc khai báo một lớp ở bên trong một lớp khác. Đây không phải là quan hệ cha-con gì nhé, do đó nó không phải là kế thừa, nó chỉ là một lớp được khai báo bên trong lớp khác mà thôi. Vậy chúng ta cùng nhau tìm hiểu xem việc lồng các lớp vào với nhau là gì và tại sao lại làm như vậy nhé.

Java Bài 33: Interface

Vâng, hôm nay chúng ta sẽ nói về interface. Nhưng bạn hãy dừng việc tưởng tượng rằng chúng ta đang nói đến việc làm sao xây dựng một giao diện cho ứng dụng Java. Tuy interface có nghĩa là giao diện, nhưng giao diện mà bạn đang nghĩ tới thì người ta gọi là UI cơ.

Vậy interface là gì nếu nó không phải là giao diện? Mời bạn đọc tiếp bài học hôm nay. Trước hết, để có thể hiểu bài viết về interface này, bạn nhất định phải đọc và hiểu khái niệm trừu tượng (abstraction) là gì trước.

Vì kiến thức về interface khá nhiều, mình cũng không chắc có thể nói hết tất cả các vấn đề của interface vào một bài viết hay không. Mình sẽ cố gắng trình bày nhiều nhất và rõ ràng nhất có thể, để bạn nắm được khái niệm và cách khai báo, sau này khi bạn bước qua lập trình ứng dụng Android, bạn sẽ hiểu rõ hơn về công dụng thực tế của interface.

Java Bài 32: Tính Trừu Tượng (Abstraction)

Với việc đi qua bài học hôm nay thì chúng ta cũng đã nói đủ bốn đặc tính cốt lõi trong lập trình hướng đối tượng. Bốn đặc tính đó là:

– Tính Gói ghém dữ liệu, hay còn gọi là Encapsulation. Bạn có thể xem lại tính chất này ở các bài: khả năng truy cập, getter/setter.
– Tính Kế thừa, hay còn gọi là Inheritance. Bạn có thể xem lại tính chất này ở các bài: kế thừa, overriding, overloading.
– Tính Đa hình, hay còn gọi là Polymorphism. Bạn có thể xem lại tính chất này ở bài về polymorphism.
– Và hôm nay. Tính Trừu tượng, hay còn gọi là Abstraction.

Nghe qua thì thấy rất trừu tượng. Liệu kiến thức này có khó hiểu không và nó giúp ích gì cho việc tổ chức code trong OOP? Chúng ta cùng đi vào bài học luôn nhé.

Java Bài 31: Ép Kiểu Trong OOP

Chắc các bạn còn nhớ, chúng ta đã nói về ép kiểu ở bài học số 6. Và hiển nhiên bạn đã biết đến khái niệm ép kiểu là gì rồi, bài này chúng ta không cần nhắc đến.

Và ép kiểu ở bài học đó chính là ép kiểu trên các dữ liệu nguyên thủy. Việc ép kiểu lúc bấy giờ được phân biệt làm hai trường hợp riêng biệt, đó là ép kiểu ngầm định và ép kiểu tường minh. Xem ra thì ép kiểu mà bạn đã biết cũng không có gì phức tạp lắm nhỉ. Vậy thì hôm nay, khi biết về OOP, chúng ta sẽ xem việc ép kiểu trên các dữ liệu không-phải-nguyên-thủy sẽ trông như thế nào nhé.

Java Bài 30: Đa Hình (Polymorphism)

Bài hôm nay chúng ta sẽ nói sâu về tính Đa hình trong Java. Nghe qua đặc tính này thì có vẻ khó. Một phần vì ứng dụng của chúng không nhiều. Với cái tên nghe chẳng có cố định gì cả, như là biến hình gì gì đó. Cộng với khá ít tài liệu viết rõ về công năng này của OOP. Vậy thì chúng ta cùng đi sâu vào bài học để xem Đa hình là gì và nó có thực sự khó không nhé.

overloading - ảnh feature

Java Bài 29: Nạp Chồng Phương Thức (Overloading)

Nếu bạn nhớ, chúng ta đã học về overriding. Hôm nay bạn lại được biết thêm về overloading. Cẩn thận coi chừng nhầm lẫn nha bạn. Overriding, overloading, over, and over… Mình đùa tí thôi, mình giúp các bạn nhớ lại một tí như sau. Overriding là cái sự lớp con ghi đè phương thức của lớp cha. Overloading là nạp chồng phương thức. Mời các bạn cùng đến với bài học hôm nay. Bài học sẽ giúp bạn nắm được khái niệm overloading là gì. Bên cạnh đó nó còn giúp bạn đừng bị nhầm lẫn giữa overriding và overloading nữa đấy.