Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 15
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Trong Objective C có Abstract class và Reflection hay không ?

    Hi all !
    Em là người đang bắt đầu tìm hiểu về Obj C , và không biết trong ObjC có Abstract Class và Reflection hay ko ? Em cũng đã có đọc 1 vài tài liệu thì thấy bảo Abstract class thì ko có , chỉ có thể giả lập 1 abstract class . Vậy có đúng hay ko .
    Còn về Reflection thì em cũng chưa rõ nó có trong ObjC hay ko và nó ntn . Anh chị nào biết thì giúp em với ậ . Nếu được thì mọi ng cho em ví dụ về nó thì càng tốt ạ . Thanks a lot .

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Abstract class là khái niệm trong lập trình hướng đối tượng, vì thế nếu bạn hỏi Objective-C có Abstract class thì câu trả lời là: Có, giống như cách thể hiện ở C++.

    Trong Objective-C có hỗ trợ Reflection thông qua NSObject class. NSObject giống với Object trong Java hoặc C#. Ví dụ bạn gọi method [self class] sẽ trả về thông tin của một object mà bạn đang xử lý.

  3. #3
    Theo tớ thì không có cách nào để tạo ra 1 Abstract class trong Objective-C trừ khi sử dụng thêm exception.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Có thể sử dụng "return nil" hoặc empty implementation được mà. Chỉ khác Java là nếu không implement thì nó không báo lỗi hay warning gì thôi. [IMG]images/smilies/biggrin.png[/IMG]

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi CIMinuv
    Theo tớ thì không có cách nào để tạo ra 1 Abstract class trong Objective-C trừ khi sử dụng thêm exception.

    Có thể sử dụng "return nil" hoặc empty implementation được mà. Chỉ khác Java là nếu không implement thì nó không báo lỗi hay warning gì thôi.
    Vậy là vẫn chưa có câu trả lời cuối cùng cho em Abstract Class và Reflection trong Objective-C sao [IMG]images/smilies/Cry.gif[/IMG] .
    Thật sự là em cũng đã google nhiều về cái Abstract class nhưng cũng chỉ thấy ng thì bảo có , ng thì bảo ko và có thì cũng chỉ là cố gắng tạo ra cho giống , chứ ko fai khái niệm chính thống như bên C# hay Java . haizz

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Objective-C không có Abstract class như C# hay Java, nó không hỗ trợ đối với Abstract class. Objective-C chỉ được phổ biến khi các dòng sản phẩm của Apple chiếm lĩnh thị trường. Objective-C được đánh giá là Complex mà...

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình thấy dùng 1 lớp với cài đặt các hàm rỗng, ko làm gì cả thì cũng là abstract class rồi mà? :-/ các lớp kế thừa phụ trách override các phương thức đó cho phù hợp.

    Reflection thì nghe nói objc mạnh hơn java, vì objc là ngôn ngữ dynamic hơn, thậm chí trong lúc chạy mình có thể tìm hiểu lớp nào đó có cài đặt phương thức mình cần gọi ko, lớp có thỏa mãn 1 protocol nào đó ko, hay lấy về địa chỉ nơi cài đặt một phương thức bấy kỳ.

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Kevin Hoang
    Objective-C không có Abstract class như C# hay Java, nó không hỗ trợ đối với Abstract class. Objective-C chỉ được phổ biến khi các dòng sản phẩm của Apple chiếm lĩnh thị trường. Objective-C được đánh giá là Complex mà...
    Vâng , thanks a về vấn đề Abstract Class này .


    Trong Objective-C có hỗ trợ Reflection thông qua NSObject class. NSObject giống với Object trong Java hoặc C#. Ví dụ bạn gọi method [self class] sẽ trả về thông tin của một object mà bạn đang xử lý.
    Còn về cái vấn đề Reflection này thì anh có thể cho em thêm chút thông tin về nó được không anh , em cũng đã tìm hiểu về Ref trong Obj-C và cũng đã mất kha khá time nhưng vẫn còn rất mơ hồ , nếu được anh có thể cho em một vài khái niệm về Ref in Obj-C và code sample đc ko anh . Nếu được em rất cảm ơn anh .

  9. #9
    Trích dẫn Gửi bởi miaxanhvn
    Mình thấy dùng 1 lớp với cài đặt các hàm rỗng, ko làm gì cả thì cũng là abstract class rồi mà? :-/ các lớp kế thừa phụ trách override các phương thức đó cho phù hợp.

    Reflection thì nghe nói objc mạnh hơn java, vì objc là ngôn ngữ dynamic hơn, thậm chí trong lúc chạy mình có thể tìm hiểu lớp nào đó có cài đặt phương thức mình cần gọi ko, lớp có thỏa mãn 1 protocol nào đó ko, hay lấy về địa chỉ nơi cài đặt một phương thức bấy kỳ.
    Vậy nếu class con bạn không override tất cả các message ?? nó còn ý nghĩa của abstract class không ?

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi miaxanhvn
    Mình thấy dùng 1 lớp với cài đặt các hàm rỗng, ko làm gì cả thì cũng là abstract class rồi mà? :-/ các lớp kế thừa phụ trách override các phương thức đó cho phù hợp.
    Em ko dám khẳng định nhưng theo em nghĩ , ý anh nói ở trên thì thằng Obj-C nó xem như class đó là 1 Interface (.h) , còn cái override kia thì là class implement (.m) . Chứ hình như nó ko có khái niệm Abstract Class thật .

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •