Objective-C: Mọi thứ bạn cần biết về ngôn ngữ chính của Apple

Cập nhật lần cuối: 19 Tháng Sáu 2025
  • Objective-C là ngôn ngữ hướng đối tượng được tạo ra như một phần mở rộng của C và được sử dụng trong nhiều thập kỷ để phát triển ứng dụng cho Apple.
  • Nó nổi bật nhờ tính linh hoạt, sự kết hợp giữa mã C và hướng đối tượng, khả năng tương thích với các API và khuôn khổ cũ, cùng hệ thống nhắn tin động.
  • Ngôn ngữ này hiện cùng tồn tại với Swift trong các dự án của Apple và vẫn cần thiết cho việc bảo trì và khả năng tương tác của các ứng dụng và thư viện cũ.

Ngôn ngữ lập trình Objective-C

Objective-C là một trong những ngôn ngữ lập trình, mặc dù gần đây có phần bị lu mờ bởi sự nổi lên của Swift, vẫn là một công cụ quan trọng trong lịch sử và hiện tại của lập trình cho các hệ thống của Apple. Nếu bạn đã từng nghe về việc tạo ứng dụng cho iOS hoặc macOS , chắc chắn bạn đã bắt gặp ngôn ngữ này, vì nó đã là nền tảng của quá trình phát triển trong hệ sinh thái của Apple trong hơn hai thập kỷ.

Trong bài viết này, chúng ta sẽ cùng khám phá mọi thứ bạn cần biết để hiểu Objective-C : những đặc điểm nổi bật nhất, nguồn gốc, nơi nó đang được sử dụng và cách so sánh với các ngôn ngữ thay thế như Swift. Bạn cũng sẽ được xem các ví dụ thực tế để giúp bạn hiểu cú pháp, cấu trúc và khả năng của nó, cũng như các khía cạnh quan trọng của quản lý bộ nhớ, mô hình hướng đối tượng, giao thức và nhiều hơn nữa. Hãy sẵn sàng, vì chúng ta sẽ đi sâu vào mọi ngóc ngách của ngôn ngữ hấp dẫn này.

Objective-C là gì?

Objective-C là một ngôn ngữ lập trình hướng đối tượng được thiết kế để mở rộng ngôn ngữ C, mang lại cho nó những khả năng điển hình của các ngôn ngữ lập trình hướng đối tượng, đặc biệt là những ngôn ngữ lấy cảm hứng từ Smalltalk. Nguồn gốc của nó bắt nguồn từ những năm 1980, nhờ Brad Cox và tập đoàn StepStone, với mục tiêu cung cấp cho C một hệ thống nhắn tin kiểu Smalltalk, cho phép lập trình linh hoạt và có tính mô đun cao hơn.

Khác với ngôn ngữ C thuần túy , Objective-C cho phép bạn tạo và thao tác với các đối tượng, nghĩa là bạn có thể cấu trúc mã của mình xung quanh các thực thể sở hữu cả dữ liệu và các hàm liên kết. Điều này đặc biệt hữu ích trong việc phát triển các ứng dụng phức tạp, vì nó thúc đẩy việc tổ chức mã, khả năng tái sử dụng và khả năng bảo trì.

Một trong những thành tựu lớn của Objective-C là cú pháp và hoạt động của nó cho phép kết hợp mã được viết bằng C với các chức năng hướng đối tượng , do đó tạo điều kiện thuận lợi cho việc chuyển đổi từ các dự án C hiện có và tích hợp các tính năng mới, tiên tiến hơn nhiều.

Lịch sử và sự phát triển của Objective-C

Nguồn gốc của Objective-C có thể bắt nguồn từ những năm 80, khi Brad Cox và Tom Love, các nhà phát triển phần mềm tại StepStone, nhận thấy cần phải bổ sung các khả năng cho C tương tự như Smalltalk, ngôn ngữ hàng đầu cho lập trình hướng đối tượng vào thời điểm đó. Mục đích của họ là kết hợp sức mạnh, tốc độ và sự phổ biến của C với tính linh hoạt của Smalltalk, tạo ra một ngôn ngữ lai mang lại những ưu điểm tốt nhất của cả hai.

Phiên bản đầu tiên được phát hành vào năm 1984 và sau đó được các công ty như NeXT, công ty do Steve Jobs thành lập sau khi ông tạm thời rời Apple, áp dụng. NeXT đã tích hợp Objective-C làm ngôn ngữ chính cho hệ điều hành NeXTSTEP của mình, đặt nền móng cho những gì sau này trở thành macOS và iOS khi Apple mua lại NeXT vào cuối những năm 90.

Kể từ đó, và trong gần ba mươi năm, Objective-C đã trở thành tiêu chuẩn không thể tranh cãi để phát triển phần mềm trên hệ điều hành của Apple. Năm 2014, Apple đã công bố Swift là ngôn ngữ tham chiếu mới để phát triển ứng dụng, nhưng Objective-C vẫn là một phần thiết yếu của hệ sinh thái, đặc biệt là để duy trì các ứng dụng hiện có và truy cập các API và khuôn khổ cũ chưa được di chuyển.

Hiện nay , mặc dù Swift đang chiếm ưu thế trong việc phát triển các ứng dụng mới, Objective-C vẫn rất cần thiết cho các nhóm làm việc trên các codebase cũ, các framework chưa được chuyển đổi sang Swift, và như một cầu nối cho một số dự án đa nền tảng.

Objective-C được sử dụng để làm gì?

Objective-C nổi bật đặc biệt với vai trò là ngôn ngữ lập trình chính được Apple sử dụng cho hệ điều hành macOS và iOS, cũng như cho các framework gốc phổ biến nhất của hãng: Cocoa và Cocoa Touch. Từ giao diện đồ họa của máy Mac đến các ứng dụng di động phức tạp nhất dành cho iPhone và iPad, Objective-C đã tạo điều kiện thuận lợi cho việc tạo ra phần mềm mạnh mẽ, hiệu quả và dễ bảo trì.

Một trong những ưu điểm chính của nó là cho phép kết hợp mã C và mã hướng đối tượng , tạo điều kiện thuận lợi cho việc sử dụng các thư viện C trong các dự án hiện đại, điều này đặc biệt hữu ích trong các ứng dụng yêu cầu hiệu suất tối đa hoặc tích hợp với mã nguồn cũ.

Một số ứng dụng nổi bật nhất của Objective-C bao gồm:

  • Phát triển ứng dụng gốc cho iOS và macOS: Cho đến ngày nay, một số lượng lớn ứng dụng trên App Store được viết, một phần hoặc toàn bộ, bằng Objective-C.
  • Truy cập các API cũ của Apple: Nhiều tính năng hệ thống chỉ có sẵn bằng ngôn ngữ này, khiến nó trở nên cần thiết để duy trì và cải thiện các dự án lâu dài.
  • Khung và thư viện riêng: Các nhóm phát triển lớn thường tiếp tục duy trì các thư viện Objective-C để đảm bảo hiệu quả và khả năng tương thích.
  • Khả năng tương thích với GNUstep và các nền tảng khác: Ngoài Apple, các triển khai khác như GNUstep cho phép sử dụng Objective-C trên các hệ thống không phải của Apple.
  Ngôn ngữ lập trình Algol: 10 khía cạnh chính

Các tính năng chính của Objective-C

Objective-C cung cấp một số tính năng được các lập trình viên đánh giá cao, đặc biệt là những người đến từ thế giới lập trình C. Dưới đây, chúng ta sẽ xem xét những tính năng quan trọng nhất để hiểu điều gì làm cho nó trở nên độc đáo so với các ngôn ngữ khác:

  • Ngôn ngữ hướng đối tượng: Mọi thứ đều xoay quanh các đối tượng, cho phép định nghĩa các lớp, kế thừa, đa hình và đóng gói, cũng như phân chia mã rõ ràng.
  • Siêu tập của C: Nó bảo toàn tất cả các chức năng của C, cho phép đưa vào các bộ hướng dẫn truyền thống (chẳng hạn như while, for, do-while) và thao tác dữ liệu nguyên thủy cùng với các đối tượng.
  • Nhắn tin theo kiểu Smalltalk: Việc gọi phương thức được thực hiện bằng cách gửi tin nhắn đến các đối tượng, mang lại tính linh hoạt và năng động cao cho quá trình phát triển.
  • Quản lý bộ nhớ rõ ràng: Không giống như các ngôn ngữ hiện đại có quản lý bộ nhớ tự động, Objective-C yêu cầu lập trình viên phải kiểm soát việc tạo và phát hành từng đối tượng, mặc dù kể từ năm 2011 với sự ra đời của ARC (Automatic Reference Counting), nhiệm vụ này đã được đơn giản hóa đáng kể.
  • Hỗ trợ thư viện C: Nó cho phép bạn tái sử dụng các thư viện được viết bằng C, tạo điều kiện tích hợp mã cũ và tăng hiệu suất khi cần thiết.
  • Hỗ trợ cho các giao thức và danh mục: Bạn có thể định nghĩa các giao diện trừu tượng bằng giao thức và thêm các phương thức bổ sung vào các lớp hiện có bằng cách sử dụng danh mục.

Cú pháp và cấu trúc cơ bản của Objective-C

Cú pháp của Objective-C là một trong những đặc điểm nổi bật của nó, và mặc dù thoạt nhìn có vẻ lạ (đặc biệt là cú pháp ngoặc vuông để gửi thông báo), nhưng nó khá logic và dễ hiểu một khi bạn đã quen với nó. Dưới đây là hướng dẫn chi tiết về các yếu tố chính:

  • Khai báo biến và kiểu dữ liệu nguyên thủy: Giống như trong C, bạn có thể khai báo các biến đơn giản như int, float o char. Đối với các đối tượng, dấu hoa thị được sử dụng trước tên biến (MyClass *objeto;).
  • Gửi tin nhắn: Để gọi phương thức của một đối tượng, bạn sử dụng cú pháp ngoặc vuông: ;
  • Các lớp và phương thức: Định nghĩa của một lớp bao gồm hai tệp: giao diện (.h) và việc thực hiện (.m). Các chỉ thị được sử dụng @interface y @implementation.
  • Tính chất: Chúng được định nghĩa với @property và thường đi kèm với @synthesize để triển khai các phương thức getter và setter một cách tự động.
  • Kiểm soát lưu lượng: Các câu lệnh C cổ điển có mặt: if, else, switch, while, for.
  • Các loại bộ sưu tập: Có các đối tượng cho danh sách (NSArray, NSMutableArray), từ điển (NSDictionary, NSMutableDictionary) và tập hợp (NSSet, NSMutableSet).

Hệ thống này cho phép các nhà phát triển kế thừa một số logic C nhưng bổ sung thêm một lớp trừu tượng và tính mô-đun được đánh giá cao trong các dự án lớn.

Ví dụ thực tế: Hello World trong Objective-C

Chúng ta hãy xem một ví dụ cơ bản trong Objective-C sẽ trông như thế nào khi in "Hello World" ra bảng điều khiển:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSLog(@"Hola Mundo");
    }
    return 0;
}

Trong đoạn trích này chúng ta thấy một số yếu tố:

  • #nhập khẩu : Nhập khuôn khổ đối tượng cốt lõi của Apple.
  • @autoreleasepool: Cần thiết cho việc quản lý bộ nhớ đối tượng, đặc biệt là khi không sử dụng ARC.
  • Nhật ký NS: Chức năng hiển thị thông tin trong bảng điều khiển, tương đương với printf bằng C nhưng được điều chỉnh cho Objective-C.

Mô hình hướng đối tượng trong Objective-C

Objective-C hoàn toàn áp dụng mô hình hướng đối tượng , cho phép bạn làm việc với các lớp, đối tượng, kế thừa, đóng gói và đa hình. Mỗi lớp có thể định nghĩa các biến thể hiện, các phương thức và thuộc tính riêng, và có thể được mở rộng thông qua các lớp con để kế thừa và sửa đổi hành vi.

Hơn nữa, một tính năng độc đáo là khả năng gửi thông báo động đến các đối tượng, điều này tạo điều kiện thuận lợi cho việc phát triển các chương trình có tính linh hoạt cao với khả năng thích ứng trong thời gian chạy, một ý tưởng được kế thừa trực tiếp từ Smalltalk.

Một điểm đáng chú ý khác là khả năng tổ chức mã bằng cách sử dụng các danh mục , cho phép thêm chức năng bổ sung vào các lớp hiện có mà không cần tạo lớp con, và các giao thức , giúp định nghĩa các hợp đồng phương thức mà các lớp có thể áp dụng, tương tự như giao diện trong các ngôn ngữ khác.

Các danh mục và phần mở rộng trong Objective-C

Các thể loại (Categories) là một trong những công cụ mạnh mẽ nhất để mở rộng chức năng của một lớp mà không cần sửa đổi mã gốc hoặc tạo lớp con. Chúng cho phép bạn thêm các phương thức bổ sung vào bất kỳ lớp nào, ngay cả khi bạn không có quyền truy cập vào phần triển khai của nó, điều này cực kỳ hữu ích để tổ chức các cơ sở mã lớn hoặc triển khai các chức năng riêng tư.

  Cách sử dụng Markdown nhanh chóng trên GitHub và Reddit

Về phần mình, các phần mở rộng (hay “phần mở rộng lớp”) dùng để khai báo các phương thức và thuộc tính riêng tư bên trong chính phần triển khai của lớp, từ đó cho phép đóng gói tốt hơn và che giấu các chi tiết nội bộ.

Giao thức trong Objective-C

Các giao thức hoạt động như những hợp đồng trừu tượng định nghĩa các phương thức mà các lớp có thể áp dụng và thực thi. Do đó, bất kỳ lớp nào cũng có thể chỉ ra sự tuân thủ của mình đối với một giao thức cụ thể và cam kết thực thi các phương thức của giao thức đó. Điều này mang lại sự linh hoạt tuyệt vời và giúp đáp ứng các mô hình như ủy quyền, vốn rất phổ biến trong phát triển ứng dụng iOS và macOS.

Ví dụ, một giao thức có thể chỉ định các phương pháp như turnOnEngine o beNiceToSister:và các lớp khác nhau có thể áp dụng các giao thức này nếu chúng quan tâm đến chức năng đó.

Quản lý bộ nhớ: Giữ lại, Giải phóng và ARC

Trong Objective-C, quản lý bộ nhớ theo truyền thống là một trong những thách thức lớn nhất đối với các lập trình viên. Trước khi có sự ra đời của ARC ( Automatic Reference Counting ), việc kiểm soát thủ công việc giữ lại và giải phóng bộ nhớ của từng đối tượng là cần thiết, điều này làm tăng nguy cơ rò rỉ bộ nhớ và các lỗi khó phát hiện.

Chu trình cơ bản bao gồm:

  • Tạo đối tượng (alloc).
  • Sử dụng đối tượng.
  • Thả vật thể (release o autorelease).

Với ARC, được tích hợp trong Xcode 4.2 và iOS 4, trình biên dịch tự động chèn các lệnh retain , release và autorelease , giúp đơn giản hóa đáng kể công việc của nhà phát triển và đưa Objective-C đến gần hơn với trải nghiệm của các ngôn ngữ khác có cơ chế thu gom rác tự động.

Thuộc tính và thuộc tính: kiểm soát truy cập và bộ nhớ

các Thuộc tính trong Objective-C được tuyên bố bởi @property và việc quản lý của nó được củng cố thông qua nhiều thuộc tính khác nhau, kiểm soát cách lưu trữ và truy cập từng giá trị. Các thuộc tính chính là:

  • giao phó: Gán giá trị trực tiếp, không giữ lại hoặc giải phóng đối tượng (thường được sử dụng cho các kiểu nguyên thủy hoặc tham chiếu yếu).
  • giữ lại: Duy trì tham chiếu mạnh đến đối tượng, tăng bộ đếm mỗi lần nó được gán.
  • sao chép: Tạo một bản sao của đối tượng được chỉ định, hữu ích cho chuỗi văn bản hoặc các đối tượng không thay đổi.
  • yếu đuối: Được giới thiệu với ARC, định nghĩa một tham chiếu yếu được tự động thiết lập thành nil khi vật ban đầu được thả ra.
  • mạnh: Tham chiếu mạnh đảm bảo rằng chừng nào thuộc tính còn tồn tại thì đối tượng sẽ có sẵn trong bộ nhớ.

Mức độ chi tiết này cho phép các nhà phát triển tối ưu hóa mức tiêu thụ tài nguyên và tránh lỗi truy cập bộ nhớ.

So sánh: Objective-C và Swift

Từ năm 2014, quá trình phát triển cho hệ sinh thái của Apple được đặc trưng bởi sự cùng tồn tại của Objective-C và Swift . Cả hai ngôn ngữ đều có điểm mạnh và điểm yếu riêng, và sự lựa chọn phụ thuộc rất nhiều vào loại dự án và kinh nghiệm của nhóm phát triển.

Những ưu điểm chính của Objective-C bao gồm:

  • Khả năng tương thích trực tiếp với C và C++: Nó cho phép bạn kết hợp mã lệnh và mã hướng đối tượng, điều này được đánh giá cao trong các ứng dụng yêu cầu hiệu suất thô.
  • Sự trưởng thành và ổn định: Đây là ngôn ngữ đã được thử nghiệm trong nhiều năm, có cộng đồng lớn và tài liệu phong phú.
  • Năng động: Hệ thống nhắn tin và phản ánh cho phép bạn sửa đổi hành vi của ứng dụng khi chạy.

Về phần mình, Swift đóng góp:

  • Đảm bảo an ninh tốt hơn: Nhờ vào kiểu dữ liệu tĩnh, khả năng xử lý lỗi và quản lý bộ nhớ hiện đại.
  • Cú pháp rõ ràng và súc tích hơn: Nó giúp việc viết và duy trì mã dễ dàng hơn, đặc biệt là đối với những người không đến từ thế giới C.
  • Công cụ hiện đại: Hỗ trợ tuyệt vời cho không gian tên, phát triển tương tác với Sân chơi và các mẫu chức năng.

Nhìn về phía trước, mọi dấu hiệu đều cho thấy Swift sẽ tiếp tục phát triển mạnh mẽ, nhưng Objective-C vẫn sẽ giữ vai trò quan trọng trong các dự án lớn dựa trên hệ thống cũ và trong khả năng tương tác với các framework cũ hơn.

Ưu điểm và nhược điểm của Objective-C so với Swift

Cần xem xét lại một số điểm quan trọng có thể ảnh hưởng đến việc lựa chọn ngôn ngữ này hay ngôn ngữ khác:

  • Mục tiêu-C:
    • Cho phép bạn làm việc hiệu quả với các thư viện C và C++.
    • Nó cung cấp các tính năng động, chẳng hạn như thay đổi phương thức, cho phép bạn sửa đổi hành vi khi chạy.
    • Tương thích với các khung nhị phân hiện có và thư viện của bên thứ ba.
    • Tuy nhiên, nó có không gian tên nhỏ, có thể dẫn đến xung đột trong các dự án lớn và lỗi khó gỡ lỗi.
    • Cú pháp có vẻ phức tạp và lỗi thời đối với những lập trình viên mới.
  • Nhanh:
    • Kiểu tĩnh và cú pháp hiện đại giúp tăng cường tính bảo mật và năng suất.
    • Hỗ trợ nâng cao cho các mẫu chức năng và quản lý mã tương tác với Playgrounds.
    • Biên dịch chậm hơn trên các dự án lớn và có một số bất ổn trong định dạng mô-đun hoặc khả năng tương tác với C++.

Những điều cơ bản thực tế và ví dụ về mã

Đối với những người mới làm quen với Objective-C, có thể hữu ích khi xem lại một số ví dụ thực tế về cách sử dụng Objective-C trong các dự án thực tế. Sau đây là một số cấu trúc và khái niệm chính:

  Khung CSS: Hướng dẫn đầy đủ để chọn khung CSS tốt nhất cho dự án của bạn

Khai báo các lớp và phương thức

// Archivo de cabecera: MyClass.h
#import <Foundation/Foundation.h>

@interface MyClass : NSObject
@property int contador;
- (void)incrementar;
@end
// Archivo de implementación: MyClass.m
#import "MyClass.h"

@implementation MyClass
- (void)incrementar {
    self.contador++;
}
@end

Trong ví dụ này, MyClass kế thừa từ NSObject , lớp gốc của hầu hết các đối tượng trong Cocoa.

Sử dụng mảng và từ điển

NSArray *array = @;
NSString *elemento = array; // "dos"

NSDictionary *diccionario = @{ @"clave1": @"valor1", @"clave2": @"valor2" };
NSString *valor = diccionario; // "valor1"

Vòng lặp và cấu trúc điều khiển

for (int i = 0; i < 5; i++) { NSLog(@"Iteración %d", i); } if (array.count > 2) {
    NSLog(@"El array tiene más de dos elementos");
}

Quản lý bộ nhớ cổ điển (không có ARC)

MyClass *objeto =  init];
// Se usa el objeto
; // Liberar cuando termine de usarse

Khả năng tương thích và nền tảng được hỗ trợ

Mặc dù Objective-C không thể tách rời khỏi hệ sinh thái của Apple, nhưng các công cụ như GNUstep cho phép phát triển bằng ngôn ngữ này trên các nền tảng khác, bao gồm Linux và Windows. Tuy nhiên, việc sử dụng nó bên ngoài môi trường macOS và iOS rất hạn chế và thường gắn liền với các dự án chuyên biệt hoặc khả năng tương tác với mã nguồn cũ. Objective-C là gì?

Tại Apple, Objective-C vẫn được hỗ trợ trên tất cả các phiên bản hiện đại của macOS, iOS, iPadOS, tvOS và watchOS, đồng thời là một lựa chọn khả thi trong cả công cụ Xcode và dòng lệnh.

Tài nguyên và Học tập Objective-C

Đối với những ai muốn học hoặc nâng cao kỹ năng Objective-C, có rất nhiều tài liệu, hướng dẫn và khóa học trực tuyến sẵn có. Từ các nền tảng của trường đại học và trường đào tạo kỹ thuật đến các kênh video và tài liệu chính thức của Apple, việc học trở nên dễ dàng và đa dạng. Hãy tìm hiểu cách trở thành một nhà phát triển ứng dụng di động thành công.

Trong số các lựa chọn đào tạo phổ biến nhất là:

  • Video giải thích.
  • Sách điện tử và hướng dẫn thực hành.
  • Hướng dẫn từng bước, cả bằng văn bản và video.
  • Cộng đồng nhà phát triển trực tuyến và diễn đàn kỹ thuật.
  • Các khóa học trên nền tảng chuyên biệt từ trình độ cơ bản đến nâng cao.

Ngoài ra, nhiều nền tảng này còn cấp chứng chỉ cho những người hoàn thành chương trình đào tạo, đây có thể là một điểm cộng khi tìm kiếm việc làm trong lĩnh vực này.

Tại sao nên học Objective-C ngay hôm nay?

Ngày nay, việc học Objective-C có vẻ không cần thiết, đặc biệt nếu mục tiêu chính của bạn là bắt tay vào các dự án mới. Tuy nhiên, việc thành thạo ngôn ngữ này vẫn rất được khuyến khích nếu bạn làm việc tại các công ty có hệ thống mã nguồn cũ, bảo trì các ứng dụng đang hoạt động hoặc nếu bạn quan tâm đến cách thức hoạt động bên trong của các nền tảng Apple. Khả năng tương thích giữa Objective-C và Swift cho phép cả hai ngôn ngữ cùng tồn tại trong cùng một dự án, tạo điều kiện thuận lợi cho việc chuyển đổi ứng dụng dần dần mà không cần phải xây dựng lại mọi thứ từ đầu.

Hơn nữa, việc Objective-C vẫn là chuẩn mực kỹ thuật trong nhiều khía cạnh phát triển iOS và macOS đảm bảo tầm quan trọng của nó trên thị trường việc làm, đặc biệt là đối với các vị trí cấp cao và các vai trò lãnh đạo về kiến ​​trúc hoặc kỹ thuật.

Trong suốt hành trình này, bạn đã thấy ngôn ngữ Objective-C đánh dấu một bước ngoặt trong phát triển phần mềm của Apple như thế nào, và triết lý của nó, dựa trên việc mở rộng C và kết hợp các mô hình hướng đối tượng, đã cho phép tạo ra các ứng dụng mạnh mẽ, linh hoạt và có khả năng thích ứng cao. Mặc dù sự phổ biến của Swift đã phần nào làm giảm bớt việc sử dụng Objective-C, nhưng việc thành thạo Objective-C vẫn là một lợi thế cơ bản đối với bất kỳ nhà phát triển nào muốn dễ dàng điều hướng hệ sinh thái của Apple và giải quyết những thách thức của lập trình hiện đại cũng như bảo trì các dự án lớn. Cho dù vì lý do tương thích, kiến ​​trúc cũ hay đơn giản chỉ là do tò mò về kỹ thuật, việc học Objective-C sẽ mở ra cánh cửa đến lịch sử và hiện tại của điện toán người tiêu dùng.

kế thừa trong OOP
Bài viết liên quan:
Ngôn ngữ lập trình được sử dụng nhiều nhất năm 2024