Hướng đối tượng là gì, cách thức khai báo, setting và truy xuất đối tượng.

Thảo luận trong 'Rao Vặt Toàn Quốc' bắt đầu bởi caohongquang, 9/7/16.

  1. caohongquang

    caohongquang Thành Viên Mới

    Tham gia ngày:
    3/3/15
    Bài viết:
    39
    Đã được thích:
    0
    Điểm thành tích:
    6
    Phần 1 : Hướng đối tượng nghĩa là gì, phương pháp khai báo, cài đặt và truy xuất đối tượng, thuộc tính, phương thức

    [​IMG]
    Trong nhiều năm, PHP đã bị coi là một ngôn ngữ nghèo nàn, và đứng hạng thấp trong bảng xếp hạng ngôn ngữ lập trình bởi ví nó không hỗ trợ tính hướng đối tượng. tới năm 2004, phiên bản PHP 5 ra đời đã tạo ra bước ngoắc mới cho ngôn ngữ lập trình PHP, giúp PHP bắt kịp với xu thế và trở nên một trong nhiều đối thủ nặng ký therefore với những ngôn ngữ lập trình khác. Vậy thì hướng đối tượng là gì? và tại sao nó lại đóng một tác dụng béo lớn như vậy ? Hít một hơi thật sâu, làm vài động tác thể dục, ngồi thẳng lưng và chúng ta bắt đầu phân tích và tìm hiểu về hướng đối tượng (OOP) trong PHP nào

    Theo như khái niệm của Wikipedia thì :
    Object-oriented programming Magento Marketplace At the time one ‘programming paradigm that represents concepts Once “objects” that Have data fields with associated procedures known Once “methods”.

    Hướng đối tương là môt mô hình lập trình phân tích nội dụng của chương trình theo hướng cổ đại (thủ tục) và nhóm những tính chất, phương thức (properties, methods) giống nhau thành một đối tượng (class), giúp rút ngắn , tránh việc dôi thừa, và giữ vững được nguyên lýDRY – DONT REPEAT YOURSELF, dễ trong vấn đề báo trì, tăng hiệu quả công tác.
    Hãy thử hình dung bạn thiết kế 1 trang web hoặc một system lên cả nghìn, thậm chí hàng triệu dòng code, các mã lệnh đươc viết theo hướng cổ điển, một trang web (page) chứa nào là html, php,js, xử lý xen lẫn, trà trộn với nhau. Và Thế là mỗi lần xuất hiện lỗi, gặp phải một vấn đề nào đó hay chỉ đơn thuần là sửa vài chỗ bé khi có chỉnh sửa yêu cầu thì bạn phải lục tung cả mớ code, đi sửa từng chỗ này chỗ kia vì các đoạn code trùng lặp, điều này quả thật là một cơn cường bạo mộng đối với một developer. Chính bởi vậy OOP ra đời nhằm giúp bạn giải quyết vấn đề này.

    1. Cấu trúc course

    Để khai báo một lesson trong PHP, ta sử dụng từ khóa lesson, theo sau là tên lesson và một cặp ngoắc nhọn
    <?php
    course KungfuClass
    // những phương thức và tính chất của lesson được đặt ở đây

    ?>

    Sau khi tạo lesson xong, chúng ta có thể lưu trữ lesson vào một biến, và dùng biến này truy xuất những phương thức , thuộc tính của course
    Để lưu trữ class vào biến, ta sử dụng từ khóa ne
    <?php
    $object = recent KungfuClass();
    ?>


    Để xem cấu trúc và nội dung của class như thế nào, bạn sử dụng từ khóa var_dump() ,
    <?php
    var_dump($object);
    ?>


    imitate toàn bộ nội dung :
    <?php course KungfuClass
    // các phương thức và tính chất của class được đặt ở đây
    // Lưu trức course vào biến
    $object = novel KungfuClass();
    var_dump($object);
    ?>


    Vào một dossier đặt tên là bai1.php và lưu vào thư mục gốc của site, chạy đường dẫn localhost/bai1.php và xem kết quả. Thế là xong, chúng ta đã hoàn tất đoạn mã hướng đối tượng đầu tiên một cách đơn giản nhất, tiếp theo hãy tìm hiểu cách thức khai báo tính chất và phương thức trong class.
    2) Khai báo phương thuộc tính của course

    tính chất của course hiểu một cách đơn giản là chỉ như là một biến chứa dữ liệu thông thường của PHP, chỉ có khác biệt là nó được đặt vào class và có mối liên quan khắn khít với lesson chưa nó, và muốn truy xuất được thuộc tính của class thì phải thông qua một object . cách thức khai báo tính chất của course như sau
    <?php
    course KungfuClass

    public $property1 = "Mình là thuộc tính của class KungfuClass !";

    // Đưa course KungfuClass vào object $object
    $object = recent KungfuClass;
    // Xem nội dung object
    var_dump($object);
    ?>

    3.) Truy xuất thuộc tính trong class

    Để có thể truy xuất thuộc tính trong lesson, ta dùng con trỏ “->” của đối tượng thing. giả tỉ chúng ta muốn truy xuất thuộc tính $property1 và xuất ra ngoài màng hình dòng chữ “Mình là tính chất của lesson KungfuClass!”, hãy xem đoạn code dưới đây
    <?php
    $object = new KungfuClass();
    echo $object->property1;
    ?>

    4.) Khai báo phương thức trong class

    Cũng như thuộc tính, phương thức của class hiểu đơn giản chính là function được đặt trong class, và có mối liên can mật thiết với lesson. Để tạo phương thức trong course, chúng ta làm như sau
    <?php
    lesson KungfuClass

    public $property1 = "Mình là thuộc tính của course KungfuClass !";
    function myMethod()
    echo "Xin chào, tôi là phương thức của course KungfuClass !";


    // Đưa lesson KungfuClass vào object $object
    $object = recent KungfuClass;
    // Xem nội dung object
    var_dump($object);
    ?>

    5 .) Truy xuất phương thức trong class

    Để truy xuất phương thức trong class, cũng như truy xuất thuộc tính, dễ dàng chúng ta sử dụng con trỏ ->
    <?php
    class KungfuClass

    public $property1 = "Mình là thuộc tính của course KungfuClass !";
    function myMethod()
    echo "Xin chào, tôi là phương thức của course KungfuClass !";


    // Đưa class KungfuClass vào object $object
    $object = current KungfuClass();
    // Xuất ra màng hình dòng chữ "Xin chào, tôi là phương thức của class KungfuClass !";
    $object -> myMethod();
    ?>

    Ngoài ra, hướng đối tượng cho phép chúng ta setup và truy xuất tính chất, phương thức bên trong lesson thông qua con trỏ $this
    <?php
    lesson KungfuClass

    public $property1 = "Mình là thuộc tính của lesson KungfuClass !";
    function myMethod()
    echo "Xin chào, tôi là phương thức của class KungfuClass !";

    function myMethod2()
    //truy xuất đến thuộc tính $property1
    echo $this->property1;
    echo "<br />";
    $this->myMethod();


    // Đưa class KungfuClass vào thing $object
    $object = current KungfuClass();
    // Xuất ra màng hình dòng chữ "Mình là thuộc tính của lesson KungfuClass !" và "Xin chào, tôi là phương thức của course KungfuClass !"
    $object -> myMethod2();
    ?>

    Chạy lại đoạn script trên, chúng ta sẽ thấy hiện ra ra ngoài trình duyệt 2 dòng chữ đó là “Mình là thuộc tính của lesson KungfuClass !” và “Xin chào, tôi là phương thức của lesson KungfuClass !”.
    Bằng cách thức nhóm các đối tượng có điểm tương đồng về tính chất và phương thức trong một course, ta gọi là lớp thân phụ, và được các lớp khác kế thừa lại (lớp con). Chúng ta sẽ không phải mất thời kì cho việc phải khai báo đi , khai báo lại những đặc tính chung đó. chả hạn như khi nói về xe, chúng ta có nào là xe hơi, xe máy, xe ô tô, xe tăng,…Chúng ta nhận thấy tất cả chúng đều có những đặc điểm chúng như là : vận tốc màu dung nhan, trọng lương, có thể chạy được,…chúng ta sẽ quy chúng về một lớp chung, tạm gọi là lớp Xe, trong lớp Xe này sẽ có các tính chất là vận tốc, màu sắc đẹp, kích cỡ và phương thức chung đó là chạy
    <?php
    lesson XeClass

    public $verhicle = "10km/h";
    public $weight= "1 tấn";
    public $color = "đỏ";
    function run()
    echo "Xe đang chạy";

    // Đưa class XeClass vào object $xe
    $xe= current XeClass();
    ?>

    Ở thí dụ trên, lớp xe là lớp thân phụ, chứa các đặc điểm chung của những kiểu xe và những kiểu xe như xe hơi, xe máy, xe tăng,.. là các lớp con sẽ mang nhưng mà đặc điểm của lớp phụ thân, nhưng mà không giống nhau ở các chi tiết như xe hơi thì có tốc độ chạy cao hơn xe máy, xe máy thì chạy nhanh hơn xe tăng,.. hoặc sự khác biệt về màu sắc như xanh, đỏ, tím, đá quý,…
    <?php

    course XeClass

    public $verhicle = "10km/s";

    public $weight= "1 tấn";

    public $color = "đỏ";

    function setVerhicle($verhicle_param)

    $this -> verhicle =$verhicle_param;



    function getVerhicle()

    return $this -> verhicle;



    function run()
    echo "Xe đang chạy";


    // Khởi tạo đối tượng xe hơi
    $xehoi = current XeClass();

    // Khởi tạo đối tượng xe máy
    $xemay = current XeClass();

    // Khởi tạo đối tượng xe tăng
    $xetang = new XeClass();

    //xe hơicó vận tốc 100km/h

    $xehoi -> setVerhicle ("100km/h");

    //xe máy có vận tốc 60km/h

    $xemay -> setVerhicle("60km/h");

    //xe tăngcó vận tốc 50km/h

    $xetang -> setVerhicle("50km/h");

    //Xuất ra vận tốc những kiểu xe khác nhauy

    //Vận tốc xe hơi

    echo $xehoi->getVerhicle();

    //Vận tốc xe máy

    echo $xemay->getVerhicle();

    //Vận tốc xe tăng

    echo $xetang->getVerhicle();
    ?>

    Ở những ví dụ trên, cả nhà có để ý thấy từ khóa “public” ko ? Đó chính là tầm vực của biến, bài viết đến mình sẽ nói cụ thể hơn về vấn đề này. Thân !
     
    Cảm ơn đã xem bài:

    Hướng đối tượng là gì, cách thức khai báo, setting và truy xuất đối tượng.

    Đang tải...


Like và Share ủng hộ ITSEOVN