Các lớp cục bộ: các lớp bên trong các phương thức - 1

"Chào, Amigo!"

"Một chủ đề nhỏ nhỏ khác là các lớp học địa phương ."

"Như bạn đã thấy, bạn có thể tạo các lớp không chỉ trong các tệp riêng biệt mà còn bên trong các lớp khác. Nhưng đó không phải là tất cả. Các lớp cũng có thể được tạo trong các phương thức. Các lớp này được gọi là các lớp cục bộ. Chúng hoạt động giống như các lớp bên trong thông thường, nhưng chúng có thể được sử dụng trong các phương thức mà chúng được khai báo."

"Nhìn vào màn hình:"

Ví dụ
class Car
{
 public ArrayListcreatePoliceCars(int count)
 {
  ArrayList result = new ArrayList();

  class PoliceCar extends Car
  {
   int policeNumber;
   PoliceCar(int policeNumber)
  {
   this.policeNumber = policeNumber;
  }
 }

 for(int i = 0; i < count; i++)
     result.add(new PoliceCar(i));
  return result;
 }
}

"Và tại sao chúng ta cần những lớp học như vậy?"

"Đặt một lớp, với tất cả các hàm tạo và phương thức của nó, bên trong một phương thức không tạo ra mã rất dễ đọc, bạn có nghĩ vậy không?"

"Chính xác. Anh hoàn toàn đúng."

"Bạn cũng có thể sử dụng các lớp bên trong ẩn danh bên trong các phương thức. Nhưng các lớp này có một lợi thế nhỏ và do đó, chúng được sử dụng bên trong các phương thức khá thường xuyên."

"Một lớp được khai báo trong một phương thức có thể sử dụng các biến cục bộ của phương thức đó:"

class Car
{
 public ArrayListcreatePoliceCars(int count)
 {
  ArrayList result = new ArrayList();

  for(int i = 0; i < count; i++)
  {
   final int number = i;
   result.add(new Car()
  {
   int policeNumber = number;
  });
 }
  return result;
 }
}

"Nhưng có một hạn chế: các biến là «chỉ đọc»—chúng không thể thay đổi được."

"Đây là lý do tại sao hạn chế đó tồn tại:"

"Các lớp được khai báo trong một phương thức chỉ có thể truy cập các biến của phương thức được khai báo bằng từ khóa cuối cùng. Trong ví dụ trên, bạn có thể thấy rằng tôi không thể gán ngay giá trị của i cho PoliceNumber. Thay vào đó, trước tiên tôi lưu nó vào số biến cuối cùng."

"Có thể sử dụng các biến của một phương thức là điều cực kỳ tuyệt vời. Tôi hy vọng đánh giá cao điều đó. Thật tệ là bạn không thể thay đổi các biến."

"Hôm nay Ellie sẽ giải thích cho bạn lý do tại sao bạn không thể thay đổi chúng. Trong khi đó, tôi sẽ đi chợp mắt trong khoảng một giờ."

"Chúc ngủ ngon, Kim. Cảm ơn vì bài học thú vị."