Computer >> Máy Tính >  >> Lập trình >> Java

Một lớp bên trong của phương thức có thể truy cập các biến cuối cùng cục bộ trong Java không?

Có, chúng tôi có thể truy cập biến cuối cùng cục bộ bằng cách sử dụng phương thức local class bên trong vì các biến cuối cùng được lưu trữ trên heap và tồn tại miễn là lớp bên trong phương thức cục bộ đối tượng có thể sống.

Lớp bên trong của phương thức

  • Một phiên bản bên trong cục bộ có thể được gửi dưới dạng đối số và được truy xuất từ ​​các phương thức và nó có sẵn trong phạm vi hợp lệ.
  • Hạn chế duy nhất trong lớp bên trong của phương thức cục bộ là tham số cục bộ chỉ có thể được thực thi khi nó được xác định là cuối cùng .
  • Phương thức thực thi các tham số cục bộ có thể được gọi sau khi thực thi phương thức, trong đó lớp bên trong cục bộ đã được công bố. Do đó, các thông số cục bộ sẽ không còn giữ nguyên giá trị của chúng nữa.
  • Các giá trị phải được sửa trước khi tạo đối tượng lớp bên trong cục bộ. Nếu được yêu cầu, một biến không phải cuối cùng có thể được sao chép vào một biến cuối cùng mà sau đó được thực thi bởi local internal class .

Ví dụ

class MainClassTest {
   private int x = 10;
   public void sampleMethod() {
      final int y = 20;
      class MethodLocalInnerClassTest {
         public void accessMainClassVar() {
            System.out.println(x);
            // accessing the final variable
            System.out.println(c);
         }
      }
      MainClassTest mainTest = new MethodLocalInnerClassTest();
      mainTest.accessMainClassVar();
   }
}

// Test.java
public class Test {
   public static void main(String args[]) {
      MainClassTest test = new MainClassTest();
      test.sampleMethod();
   }
}

Đầu ra

10
20