Sự khác biệt giữa biến thể và biến cục bộ

Anonim

Ví dụ biến với biến địa phương

Một biến thể là một loại biến có trong chương trình định hướng đối tượng. Nó là một biến được định nghĩa trong một lớp, và mỗi đối tượng của lớp đó giữ một bản sao riêng của biến đó. Mặt khác, việc sử dụng các biến địa phương không giới hạn đối với các ngôn ngữ lập trình hướng đối tượng. Đó là một biến chỉ có thể được đánh giá trong một khối mã đặc biệt (ví dụ: chức năng, khối vòng lặp, …), trong đó nó được định nghĩa. Do đó, các biến địa phương được cho là có một phạm vi địa phương.

Biến thể Ví dụ là gì?

Ví dụ biến được sử dụng trong lập trình hướng đối tượng để lưu trữ trạng thái của mỗi đối tượng trong một lớp. Chúng còn được gọi là các biến thành viên hoặc các biến trường. Các biến thể thể được khai báo mà không sử dụng từ khoá tĩnh trong Java. Các giá trị được lưu trữ trong các biến instance là duy nhất cho mỗi đối tượng (mỗi đối tượng có một bản sao riêng biệt), và các giá trị lưu trữ trong chúng đại diện cho trạng thái của đối tượng đó. Không gian cho một biến thể được phân bổ trong heap, khi đối tượng đó được cấp phát trong heap. Vì vậy, các biến dụ được giữ trong bộ nhớ miễn là đối tượng đang sống. Ví dụ, màu sắc của một chiếc xe hơi độc lập với màu sắc của một chiếc xe khác. Vì vậy, màu sắc của một đối tượng xe hơi có thể được lưu trữ trong một biến thể. Trong thực tế, các biến thể dụ được khai báo bên trong lớp học, và các phương thức bên ngoài. Thông thường, các biến thể dụ được khai báo là tư nhân để chúng có thể được truy cập chỉ trong lớp được khai báo.

Biến địa phương là gì?

Các biến cục bộ là các biến có phạm vi cục bộ và chúng được khai báo trong một khối mã cụ thể. Các biến địa phương có thể được xem như các biến được sử dụng bởi một phương thức để lưu trữ trạng thái tạm thời. Phạm vi của một biến địa phương được xác định bằng cách sử dụng vị trí mà biến được khai báo và các từ khoá đặc biệt không được sử dụng cho mục đích này. Thông thường, truy cập vào một biến địa phương bị giới hạn trong khối mã mà nó được khai báo (tức là giữa mở và đóng dấu ngoặc của khối mã đó). Các biến địa phương thường được lưu trữ trong ngăn xếp cuộc gọi. Điều này sẽ cho phép các cuộc gọi chức năng đệ quy để duy trì bản sao của riêng mình của các biến địa phương được lưu trữ trong không gian địa chỉ bộ nhớ riêng biệt. Khi phương pháp hoàn thành việc thực hiện của nó, thông tin về phương thức đó được xuất hiện từ ngăn xếp cuộc gọi, cũng phá hủy các biến cục bộ đã được lưu trữ.

Sự khác nhau giữa Biến thể và Biến địa phương là gì?

Các biến thể được khai báo trong lớp bên ngoài các phương thức, và lưu trữ trạng thái của một đối tượng, trong khi các biến cục bộ được khai báo trong các khối mã và chúng được sử dụng để lưu trữ trạng thái của một phương thức.Một biến thể tồn tại miễn là đối tượng có chứa biến đó là live, trong khi một biến cục bộ đang hoạt động trong quá trình thực hiện của phương pháp / khối mã đó. Một biến thể (được khai báo công khai) có thể được truy cập trong lớp, trong khi một biến địa phương chỉ có thể được truy cập trong khối mã mà nó được khai báo. Sử dụng các biến dụ chỉ giới hạn trong lập trình hướng đối tượng, trong khi các biến cục bộ không có giới hạn như vậy.