✨Vòng đời đối tượng

Vòng đời đối tượng

Trong lập trình hướng đối tượng (OOP), vòng đời đối tượng (tiếng Anh: object lifetime hay life cycle) của một đối tượng là khoảng thời gian giữa việc tạo ra và hủy đi của đối tượng đó. Các quy tắc đối với vòng đời đối tượng có sự khác nhau đáng kể giữa các ngôn ngữ, trong một số trường hợp giữa sự hiện thực của một ngôn ngữ nhất định, và vòng đời của một đối tượng cụ thể có thể khác nhau tùy thời điểm chạy của chương trình.

Trong một số trường hợp, vòng đời của đối tượng trùng với vòng đời biến của một biến với đối tượng đó như giá trị (cho cả biến tĩnh và biến tự động), nhưng nhìn chung thì vòng đời đối tượng không được gắn với vòng đời của bất cứ biến nào. Trong nhiều trường hợp – và mặc định trong ngôn ngữ hướng đối tượng (OOL), đặc biệt với những ngôn ngữ dùng cơ chế thu gom rác (GC) – các đối tượng được cấp phát trong bộ nhớ heap, và vòng đời đối tượng không được xác định bởi vòng đời của một biến: giá trị của biến nắm giữ một đối tượng thật ra tương ứng với một tham chiếu đến đối tượng chứ không phải là đối tượng đó, và hủy đi một biến chỉ phá hủy tham chiếu chứ không phải là đối tượng bên dưới.

Ví dụ

C++

class Foo { // This is the prototype of the constructors public: Foo(int x); Foo(int x, int y); // Overloaded Constructor Foo(const Foo &old); // Copy Constructor ~Foo(); // Destructor };

Foo::Foo(int x) { // This is the implementation of // the one-argument constructor }

Foo::Foo(int x, int y) { // This is the implementation of // the two-argument constructor }

Foo::Foo(const Foo &old) { // This is the implementation of // the copy constructor }

Foo::~Foo() { // This is the implementation of the destructor }

int main() { Foo foo(14); // call first constructor Foo foo2(12, 16); // call overloaded constructor Foo foo3(foo); // call the copy constructo

return 0;
// destructors called in backwards-order
// here, automatically

}

Java

class Foo { public Foo(int x) { // This is the implementation of // the one-argument constructor }
public Foo(int x, int y)
{
    // This is the implementation of
    // the two-argument constructor
}

public Foo(Foo old)
{
    // This is the implementation of
    // the copy constructor
}

public static void main(String[] args)
{
    Foo foo = new Foo(14); // call first constructor
    Foo foo2 = new Foo(12, 16); // call overloaded constructor
    Foo foo3 = new Foo(foo); // call the copy constructor
    // garbage collection happens under the covers, and objects are destroyed
}

}

C

namespace ObjectLifeTime { class Foo { public Foo() { // This is the implementation of // default constructor }
public Foo(int x)
{
    // This is the implementation of
    // the one-argument constructor
}
 ~Foo()
{
    // This is the implementation of
    // the destructor
}

public Foo(int x, int y)
{
    // This is the implementation of
    // the two-argument constructor
}

public Foo(Foo old)
{
    // This is the implementation of
    // the copy constructor
}

public static void Main(string[] args)
{
    Foo defaultfoo = new Foo(); // call default constructor
    Foo foo = new Foo(14); // call first constructor
    Foo foo2 = new Foo(12, 16); // call overloaded constructor
    Foo foo3 = new Foo(foo); // call the copy constructor

}

} }

Objective-C

#import

@interface Point: Object { double x; double y; }

//These are the class methods; we have declared two constructors

  • (Point *) newWithX: (double) andY: (double);
  • (Point *) newWithR: (double) andTheta: (double);

//Instance methods

  • (Point *) setFirstCoord: (double);
  • (Point *) setSecondCoord: (double);

/* Since Point is a subclass of the generic Object

  • class, we already gain generic allocation and initialization
  • methods, +alloc and -init. For our specific constructors
  • we can make these from these methods we have
  • inherited. */ @end

@implementation Point

  • (Point *) setFirstCoord: (double) new_val { x = new_val; }

  • (Point *) setSecondCoord: (double) new_val { y = new_val; }

  • (Point *) newWithX: (double) x_val andY: (double) y_val { //Concisely written class method to automatically allocate and //perform specific initialization. return [[[Point alloc] setFirstCoord:x_val] setSecondCoord:y_val]; }

  • (Point *) newWithR: (double) r_val andTheta: (double) theta_val { //Instead of performing the same as the above, we can underhandedly //use the same result of the previous method return [Point newWithX:r_val andY:theta_val]; }

@end

int main(void) { //Constructs two points, p and q. Point p = [Point newWithX:4.0 andY:5.0]; Point q = [Point newWithR:1.0 andTheta:2.28];

//...program text....

//We're finished with p, say, so, free it. //If p allocates more memory for itself, may need to //override Object's free method in order to recursively //free p's memory. But this is not the case, so we can just [p free];

//...more text...

[q free];

return 0; }

Object Pascal

program Example;

type

DimensionEnum = ( deUnassigned, de2D, de3D, de4D );

PointClass = class private Dimension: DimensionEnum;

public X: Integer; Y: Integer; Z: Integer; T: Integer;

public ( prototype of constructors )

constructor Create();
constructor Create(AX, AY: Integer);
constructor Create(AX, AY, AZ: Integer);
constructor Create(AX, AY, AZ, ATime: Integer);
constructor CreateCopy(APoint: PointClass);

(* prototype of destructors *)

destructor Destroy;

end;

constructor PointClass.Create(); begin // implementation of a generic, non argument constructor Self.Dimension:= deUnassigned; end;

constructor PointClass.Create(AX, AY: Integer); begin // implementation of a, 2 argument constructor Self.X:= AX; Y:= AY;

Self.Dimension:= de2D; end;

constructor PointClass.Create(AX, AY, AZ: Integer); begin // implementation of a, 3 argument constructor Self.X:= AX; Y:= AY; Self.X:= AZ;

Self.Dimension:= de3D; end;

constructor PointClass.Create(AX, AY, AZ, ATime: Integer); begin // implementation of a, 4 argument constructor Self.X:= AX; Y:= AY; Self.X:= AZ; T:= ATime;

Self.Dimension:= de4D; end;

constructor PointClass.CreateCopy(APoint: PointClass); begin // implementation of a, "copy" constructor APoint.X:= AX; APoint.Y:= AY; APoint.X:= AZ; APoint.T:= ATime;

Self.Dimension:= de4D; end;

destructor PointClass.PointClass.Destroy; begin // implementation of a generic, non argument destructor Self.Dimension:= deUnAssigned; end;

var ( variable for static allocation ) S: PointClass; ( variable for dynamic allocation ) D: ^PointClass;

begin ( of program ) ( object lifeline with static allocation ) S.Create(5, 7);

( do something with "S" )

S.Destroy;

( object lifeline with dynamic allocation ) D = new PointClass, Create(5, 7);

( do something with "D" )

dispose D, Destroy; end. ( of program )

Python

class Socket: def __init__(self, remote_host): self.connection = connectTo(remote_host)
def send(self):
    # send data

def recv(self):
    # receive data;

def f(): s = Socket('example.com') s.send('test') return s.recv()

👁️ 0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
phải|Rạn san hô vòng Bokak ([[quần đảo Marshall) có đặc trưng là một vành san hô bao bọc lấy một vụng biển.]] **Rạn san hô vòng** (còn gọi là **rạn vòng**, **a-tôn** hoặc **ám tiêu
**_X-Men: Ngày cũ của tương lai_** (tựa gốc tiếng Anh: **_X-Men: Days of Future Past_**) là một bộ phim siêu anh hùng 2014 dựa tên nhân vật hư cấu X-Men xuất hiện trên Marvel Comics.
**Đội tuyển bóng đá quốc gia Việt Nam** là đội tuyển bóng đá quốc gia đại diện cho Việt Nam thi đấu tại các giải đấu bóng đá quốc tế do Liên đoàn bóng đá
nhỏ|Hình ảnh những người đang chào theo kiểu Quốc xã, trong khi một người không xác định danh tính tên August Landmesser từ chối làm như vậy. **Phong trào chống đối Hitler** gồm những hoạt
Các **biểu tượng Olympic** là biểu trưng, cờ và biểu tượng được sử dụng bởi Ủy ban Olympic Quốc tế (IOC) để nâng tầm Thế vận hội Olympic. Một số chẳng hạn như ngọn lửa,
**Quân đội Hoàng gia Phổ** () là lực lượng quân sự của Vương quốc Phổ (nguyên là lãnh địa Tuyển hầu tước Brandenburg trước năm 1701). Quân đội Phổ đóng vai trò quan trọng trong
thumb|Một [[hào quang 22° quanh Mặt Trăng ở Atherton, CA.]] **Hiện tượng quang học** là bất kỳ sự kiện nào quan sát được là kết quả của sự tương tác giữa ánh sáng khả kiến
là đội tuyển bóng đá quốc gia đại diện cho Nhật Bản tại các giải đấu khu vực, châu lục và thế giới. Đội được quản lý bởi Hiệp hội bóng đá Nhật Bản (JFA).
**Đội tuyển bóng đá quốc gia Thụy Sĩ** (; ; ; ), gọi tắt là "Nati", là đội tuyển của Liên đoàn bóng đá Thụy Sĩ và đại diện cho Thụy Sĩ trên bình diện
**Đội tuyển bóng đá quốc gia Đức** () là đội tuyển bóng đá nam quốc gia đại diện cho Đức tại các giải đấu bóng đá quốc tế kể từ năm 1908. Kể từ khi
**Đội tuyển bóng đá quốc gia Pháp** () là đội tuyển đại diện cho Pháp ở môn bóng đá nam quốc tế và được quản lý bởi Liên đoàn bóng đá Pháp. Biệt danh của
Cộng đồng đồng tính, song tính và chuyển giới..v.v..(LGBT) có những biểu tượng và vật tượng trưng để nhận biết rõ ràng mỗi cá thể, biểu hiện sự thống nhất, niềm tự hào và sự
Trong lập trình hướng đối tượng (OOP), **vòng đời đối tượng** (tiếng Anh: _object lifetime_ hay _life cycle_) của một đối tượng là khoảng thời gian giữa việc tạo ra và hủy đi của đối
thế=Một vầng hào quang 22° quanh Mặt Trời, được nhìn thấy trước trại cơ sở Annapurna, Annapurna, Nepal.|nhỏ|347x347px|Một vầng hào quang 22° quanh Mặt Trời, được nhìn thấy trước trại cơ sở Annapurna, [[Annapurna, Nepal.]]
**Đội tuyển bóng đá quốc gia Nga** (, _natsionalnaya sbornaya Rossii po futbolu_) là đội tuyển bóng đá cấp quốc gia của Nga do RFU quản lý và thuộc Liên đoàn bóng đá châu Âu
thumb|upright=1.35|right|alt=Bản đồ toàn cầu về sự tăng nhiệt độ nước biển từ 0,5 đến 300 độ Celsius; nhiệt độ đất liền tăng từ 10000 đến 20000 độ Celsius; và nhiệt độ vùng Bắc cực tăng
**Đội tuyển bóng đá quốc gia Tây Ban Nha** () là đội tuyển của Liên đoàn bóng đá Hoàng gia Tây Ban Nha và đại diện cho Tây Ban Nha trên bình diện quốc tế
**Đội tuyển bóng đá quốc gia Argentina** () là đội tuyển bóng đá đại diện cho Argentina tại các giải đấu bóng đá nam quốc tế và được quản lý bởi Hiệp hội bóng đá
**Đội tuyển bóng đá quốc gia Brasil** (tiếng Bồ Đào Nha: _Seleção Brasileira de Futebol_, **SBF**) là đội tuyển bóng đá quốc gia do Liên đoàn bóng đá Brasil quản lý và đại diện Brasil
thumb|alt=một dòng chữ được khắc bằng các ký tự của người Maya|Mặt phía đông của tấm bia C từ [[Quiriguá|Quirigua ghi ngày tháng khởi đầu của chu kỳ _b'ak'tun_ thứ 13 theo lịch Maya. Được
Trong toán học và xử lý tín hiệu, **biến đổi Z **chuyển đổi một tín hiệu thời gian rời rạc, là một chuỗi số thực hoặc số phức, thành một đại diện trong miền tần
Mùa thứ hai của chương trình **_Thần tượng đối thần tượng_** được phát sóng trên kênh VTV3 từ ngày 19 tháng 11 năm 2022 đến ngày 15 tháng 4 năm 2023. Phí Nguyễn Thùy Linh
Thí nghiệm kiểm tra lý thuyết tương đối tổng quát đạt độ chính xác cao nhờ tàu thăm dò không gian [[Cassini–Huygens|Cassini (ảnh minh họa): Các tín hiệu radio được gửi đi giữa Trái Đất
nhỏ|phải|Bánh xe Pháp luân **Biểu tượng Phật giáo** (_Buddhist symbolism_) là việc sử dụng các biểu tượng (_pratīka_) như một phương pháp thể hiện nghệ thuật nhằm trình bày các phương diện triết lý Phật
**Đội tuyển bóng đá quốc gia Ý** () là đội tuyển bóng đá quốc gia đại diện cho nước Ý thi đấu ở các giải bóng đá cấp châu lục và thế giới. Đội tuyển
Trong Chiến tranh Việt Nam, quân đội Hoa Kỳ và các lực lượng đồng minh đã gây ra hàng loạt tội ác như giết người, hãm hiếp, đánh đập tù nhân, ném bom vào thường
Trong vật lý hạt, **Siêu đối xứng** (SUSY) là một đề xuất mở rộng của không-thời gian đối xứng có liên quan hai lớp cơ bản của các hạt cơ bản: Boson, trong đó spin
[[Vòng cung tròn thiên đỉnh, vòng cung đối xứng bên trên, vòng cung Parry và vòng cung tiếp tuyến trên tại Salem, Massachusetts, ngày 27 tháng 10 năm 2012]] **Vòng cung đối xứng bên trên**
**Đội tuyển bóng đá quốc gia Úc** (tiếng Anh: _Australia national soccer team_) là đội tuyển bóng đá nam đại diện Úc tham gia thi đấu quốc tế. Từng là một thành viên của Liên
**Tưởng Kinh Quốc** (; POJ: ChiúⁿKeng-kok; phương ngữ Thượng Hải/phương ngữ Ninh Bá: tɕiã.tɕiŋ.ko?) (27 tháng 4 năm 1910 - 13 tháng 1 năm 1988) là một nhà chính trị người Đài Loan. Ông đã
**Thần tượng Bolero** là chương trình dựa trên format gốc Nation's best voice của Time Symphony (Anh Quốc) được Công ty Cát Tiên Sa mua bản quyền và lên sóng trên kênh VTV3 của Đài
thumb|upright=1.2|Tổng thống Donald đứng trước một phần của bức tường gần [[Yuma, Arizona, tháng 6 năm 2020]] **Bức tường Trump**, hay còn thường được gọi là "**bức tường**", là tên của đề xuất mở rộng
**Đội tuyển bóng đá quốc gia Iran** là đội tuyển bóng đá nam đại diện cho Iran ở các giải đấu quốc tế kể từ trận đấu đầu tiên vào năm 1941. Đội được quản
**Phó Thủ tướng Chính phủ** là một chức vụ trong Chính phủ Việt Nam, được quy định ngay từ Hiến pháp 1946. Kể từ năm 1981, theo Hiến pháp 1980, chức vụ này được gọi
nhỏ|300x300px|Bức ảnh của cầu vồng Mặt Trăng **Cầu vồng Mặt Trăng**, là một cầu vồng làm từ ánh Mặt Trăng chứ không phải là ánh sáng Mặt Trời. Ngoài sự khác biệt về nguồn sáng
**Vòng loại Giải vô địch bóng đá thế giới** hay **vòng loại World Cup**, là quá trình mà một đội tuyển bóng đá đại diện cho một quốc gia phải trải qua để đạt đủ
**Văn Thiên Tường** (, 6 tháng 6, 1236 - 9 tháng 1, 1283) là thừa tướng trung nghĩa lẫm liệt nhà Nam Tống, một thi sĩ nổi tiếng mà tư tưởng yêu nước đã thấm
**Đội tuyển bóng đá quốc gia Syria** () là đội tuyển cấp quốc gia của Syria do Liên đoàn bóng đá Syria quản lý. Trận thi đấu quốc tế đầu tiên của đội tuyển Syria
## Sự hình thành thuyết tương đối tổng quát ### Những khảo sát ban đầu Albert Einstein sau này nói rằng, lý do cho sự phát triển thuyết tương đối tổng quát là do sự
**Thủ tướng Chính phủ nước Cộng hòa xã hội chủ nghĩa Việt Nam** (thường được gọi tắt là **Thủ tướng**, **Thủ tướng Chính phủ**) là người đứng đầu Chính phủ của nước Cộng hòa xã
nhỏ|Những nghiên cứu phủ nhận quá trình ấm lên toàn cầu do con người gây nên được kiểm duyệt bởi hội đồng chuyên gia là gần như không tồn tại trong khoảng 2013-14. Hơn 99.99%
**_Khát vọng đổi đời_** (tên gốc , nghĩa là cần nước, còn được biết đến với tên: **_Minari_**) là phim điện ảnh chính kịch của Mỹ năm 2020 do Lee Isaac Chung đảm nhiệm vai
Một sơ đồ mô tả cách hoạt động của màn hình võng mạc ảo Một **Màn hình võng mạc ảo**, hay **máy chiếu võng mạc**, **màn hình quét võng mạc** là một kỹ thuật hiển
**Vòng cung đối xứng bên dưới** (hoặc **vòng cung _bên_ tiếp tuyến dưới**, hay **vòng cung hạ đối xứng**) là một hào quang hiếm gặp, một hiện tượng quang học xuất hiện tương tự như
**Vòng loại nữ** cho nội dung **khúc côn cầu trên cỏ** tại **Thế vận hội** diễn ra từ tháng 8 năm 2023 đến tháng 1 năm 2024, từ giải đấu này sẽ xác định 12
Đây là **danh sách những trường hợp được cho là đã nhìn thấy vật thể bay không xác định (UFO) đáng chú ý ở Vương quốc Liên hiệp Anh**. Nhiều vụ chứng kiến hơn đã
nhỏ|phải|Biểu tượng chữ Vạn trong Phật giáo ở Nepal **Các biểu tượng may mắn** (_Lucky symbols_) là một số sự vật, hiện tượng, đồ vật, hình dáng hoặc các chỉ dấu, điềm báo mà khi
phải|nhỏ|380x380px| Hệ thực vật núi cao tại Đèo Logan, [[Vườn quốc gia Glacier (Hoa Kỳ)|Vườn quốc gia Glacier, ở Montana, Hoa Kỳ: Thực vật núi cao là một nhóm được cho là rất dễ bị
Các trận đấu thuộc **vòng 3** của **vòng loại Giải vô địch bóng đá thế giới 2022** **khu vực châu Á** diễn ra từ ngày 2 tháng 9 năm 2021 đến ngày 29 tháng 3
**Sân vận động Tưởng niệm Robert F. Kennedy** (, thường được gọi là **Sân vận động RFK**, ban đầu có tên gọi là **Sân vận động District of Columbia**) là một sân vận động đa