Làm thế nào để triển khai lớp lồng nhau trong Java?



Bài viết này về lớp lồng nhau trong java sẽ giúp bạn hiểu cách triển khai các lớp lồng nhau với sự trợ giúp của chương trình ví dụ.

Trong Java, một lớp có thể được định nghĩa bên trong một lớp khác và các lớp đó được gọi là các lớp lồng nhau. Các lớp này giúp bạn nhóm các lớp chỉ được sử dụng ở một nơi một cách hợp lý. Điều này làm tăng việc sử dụng đóng gói và tạo ra một mã dễ đọc và dễ bảo trì hơn. Blog này về “Lớp lồng nhau trong Java” sẽ cung cấp cho bạn phần giới thiệu nhanh về các lớp lồng nhau trong . Dưới đây là các chủ đề được đề cập trong blog này:

Lớp lồng nhau trong Java

Các lớp học được viết bên trong một lớp được gọi là lớp lồng nhau trong khi lớp chứa lớp bên trong được gọi là lớp ngoài. Dưới đây là một số điểm cần nhớ đối với các lớp lồng nhau trong Java:





  • Phạm vi của một lớp lồng nhau được giới hạn bởi lớp bao quanh của nó.
  • Một lớp lồng nhau có quyền truy cập vào các thành viên của lớp mà nó được lồng vào nhau. Tuy nhiên, lớp bao quanh không thể truy cập các thành viên của lớp lồng nhau.
  • Một lớp lồng nhau là thành viên lớp bao quanh nó.
  • Một lớp lồng nhau có thể được khai báo là công khai, riêng tư, được bảo vệ hoặc gói-riêng.

Các loại lớp lồng nhau

Lớp lồng nhau bên trong / không tĩnh: Trong Java, các lớp không tĩnh là một cơ chế bảo mật. Một lớp không thể được liên kết với truy cập chỉnh sửa private, nhưng nếu bạn có lớp là thành viên của lớp khác, thì lớp non-static có thể được đặt ở chế độ riêng tư.

Các loại lớp bên trong & lớp trừ



  • Lớp bên trong
  • Lớp bên trong phương thức cục bộ
  • Lớp bên trong ẩn danh

Lớp bên trong

Để tạo một lớp bên trong, bạn chỉ cần viết một lớp trong một lớp. Một lớp bên trong có thể là riêng tư mà không thể được truy cập từ một vật ngoài lớp. Dưới đây là chương trình tạo một lớp bên trong. Trong ví dụ này, lớp bên trong được đặt ở chế độ riêng tư và là lớp được truy cập thông qua một phương thức.

class Outer_Test {int num // lớp bên trong private class Inner_Test {public void print () {System.out.println ('Đây là lớp bên trong của chúng ta')}} // Truy cập lớp bên trong từ phương thức void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// Khởi tạo lớp ngoài Outer_Test ngoài = new Outer_Test () // Truy cập phương thức display_Inner () . ngoài.display_Inner ()}}

Đầu ra
Lớp lồng nhau bên trong- Edureka

cách khởi tạo một lớp trong python

Lớp bên trong phương thức cục bộ

Trong Java, một lớp có thể được viết trong một và nó là một loại địa phương. Tương tự như các biến cục bộ, phạm vi của một lớp bên trong bị hạn chế trong phương thức. Một lớp bên trong phương thức-cục bộ chỉ được kết hợp trong phương thức mà lớp bên trong được định nghĩa. Chương trình dưới đây cho thấy cách sử dụng một lớp bên trong phương thức cục bộ.



public class Outerclass {// phương thức thể hiện của lớp bên ngoài void my_Method () {int num = 1001 // phương thức-local class bên trong lớp StarInner_Test {public void print () {System.out.println ('Đây là lớp bên trong ngôi sao' + num)}} // kết thúc lớp bên trong // Truy cập lớp bên trong StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass external = new Outerclass () bên ngoài. my_Method ()}}

Đầu ra

biểu đồ bánh rán so với biểu đồ hình tròn

Lớp bên trong ẩn danh

Lớp bên trong ẩn danh là lớp bên trong được khai báo mà không có tên lớp. Trong một lớp bên trong ẩn danh, chúng ta khai báo và khởi tạo nó cùng một lúc. Chúng thường được sử dụng khi bạn cần ghi đè phương thức của một lớp hoặc một giao diện. Chương trình dưới đây cho thấy cách sử dụng một lớp bên trong ẩn danh -

lớp trừu tượng AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest inner = new AnonymousInnerTest () {public void mytest () {System.out.println ('Đây là một ví dụ về lớp kiểm tra nội bộ ẩn danh ')}} inner.mytest ()}}

Đầu ra-

Lớp lồng nhau tĩnh: ĐẾN là một lớp lồng nhau là một thành viên tĩnh của lớp ngoài. Không giống như lớp bên trong, lớp lồng nhau tĩnh không thể truy cập các biến thành viên của lớp bên ngoài vì lớp lồng nhau tĩnh không yêu cầu một thể hiện của lớp bên ngoài. Do đó, không có tham chiếu đến lớp bên ngoài với OuterClass.this. Cú pháp của một lớp lồng nhau tĩnh là:

lớp MyOuter {static class Nested_Test {}}

Ví dụ về lớp lồng nhau tĩnh

public class Outer {static class Nested_Test {public void my_method () {System.out.println ('Đây là lớp kiểm tra lồng nhau của Edureka')}} public static void main (String args []) {Outer.Nested_Test lồng nhau = new Outer. Nested_Test () nested.my_method ()}}

Đầu ra

Sự khác biệt giữa các lớp lồng nhau tĩnh và không tĩnh

Các lớp lồng nhau tĩnh không có quyền truy cập trực tiếp vào các thành viên khác của lớp bao quanh. Là tĩnh, nó phải truy cập các thành viên không tĩnh của lớp bao của nó thông qua một đối tượng, có nghĩa là nó không thể tham chiếu trực tiếp đến các thành viên không tĩnh của lớp bao của nó. Và do hạn chế này, các lớp lồng nhau tĩnh hiếm khi được sử dụng.

Các lớp lồng nhau không tĩnh có quyền truy cập vào tất cả các thành viên của lớp ngoài của nó và có thể tham chiếu trực tiếp đến chúng theo cách mà các thành viên không tĩnh khác của lớp ngoài làm.

Trước khi đến với phần cuối của bài viết này, chúng ta hãy xem xét một vài điểm chính.

Những điểm chính cần nhớ

  • Lớp bên trong được coi như một thành viên bình thường của một lớp.
  • Vì lớp bên trong là thành viên của lớp bên ngoài, bạn có thể áp dụng các công cụ sửa đổi quyền truy cập khác nhau như bảo vệ, riêng tư cho lớp bên trong của bạn.
  • Vì lớp lồng nhau là một thành viên của lớp bao quanh nó, bạn có thể sử dụng. (dấu chấm) để truy cập lớp lồng nhau và các thành viên của nó.
  • Sử dụng một lớp lồng nhau làm cho mã của bạn dễ đọc hơn và cung cấp tốt hơn sự đóng gói .
  • Lớp bên trong có quyền truy cập vào các thành viên khác của lớp bên ngoài, ngay cả khi chúng được khai báo là private.

Với điều này, chúng ta sẽ kết thúc blog này về Các lớp lồng nhau trong Java. Nếu bạn muốn tìm hiểu thêm về Java, hãy xem của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo và cấp chứng chỉ về Java J2EE và SOA của Edureka được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

kiểu dữ liệu ngày tháng trong sql

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến vấn đề này trong phần nhận xét của blog “Lớp học lồng nhau trong Java” này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.