Inner static class trong java

Inner statis class là một class được đặt bên trong một class nhưng có từ khóa static sau phạm vi truy cập, ta gọi đây là nested class trong java. Nested class trong java có hai dạng:

dạng đầu tiên là: inner class, tiếp theo đó là inner static class.

Bài hôm nay tôi sẽ hướng dẫn các bạn sử dụng inner static class.

Study code…

Để dễ hiểu và làm quen các bạn tìm hiểu ví dụ sau đây:

package demo;

public class InnerStaticDemo{
	
	protected static class Bunny{
		private int id;
		private String name;
		
		public int getId() {
			return id;
		}
		public void setId(int id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		
		public void eat() {
			System.out.println("Bunny eat \"shit\"");
		}
	}
}

Ở đây chúng ta để ý răng, để khai báo môt inner static class thì chỉ cần trong một class có sẵn, các bạn thêm vào như sau:

protected static class Bunny{

Ta thấy tạo một class như cách bình thường.

Các tham số cần biết biết với một inner statis class:

 

Tham số đầu tiên sẽ là access modifiers của class. Có 4 access modifiers cho class mà chúng ta đã được học: default, public, private, protected mà tôi sẽ không nhắc đến ở bài này.

Tham số thứ hai là static, đây là một từ khóa tĩnh. Nghĩa là thông quá lớp chúng ta sẽ truy cập được mà không cần tạo ra đối tượng.

Tham số thứ ba là class đại diện cho lớp.

Tham số cuối cùng là tên class.

Tuy vậy, các bạn hãy nhớ và hiểu phạm vi truy cập của class để tùy biến sử dụng các class này.

Kế thừa với một inner static class thì sao?

 

Để kế thừa chúng ta cũng sử dụng từ khóa extends để sử dụng và kế thừa một cách bình thường như những gì 2 class có thể extends với nhau. Các bạn có thể tìm hiểu extends là gì tại đây cũng như cách sử dụng.

package demo;

public class Ex1 extends InnerStaticDemo.Bunny{
	public static void main(String[] args) {
		Ex1 ex1 = new Ex1();
		ex1.eat();
				
	}
}

Như các bạn thấy, đoạn code trên khi cùng package với phạm vi truy cập của inner static class là protected thì hoàn toàn có thể kế thừa được.

Tuy nhiên nếu khác package?

Bị lỗi biên dịch khi không có quyền kế thừa
Bị lỗi biên dịch khi không có quyền kế thừa

Trên là cách sử dụng inner static class trong java.Chúc các bạn học vui!

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x