1. Xin lưu Ý! Các thành viên vui lòng kiểm tra lại bài trùng lặp của mình và xóa chúng ngay khi đó. (Mỗi thành viên hãy dành 5 phút thời gian của mình để kiểm tra lại các lỗi đăng bài trùng lặp trước đây và xóa chúng khỏi diễn đàn). BQT xin được gửi lời cám ơn trân thành tới các thành viên!

Toàn Quốc Hướng đối tượng có nghĩa là thế nào, phương pháp khai báo, setting và truy xuất đối tượng.

Thảo luận trong 'Linh Tinh' bắt đầu bởi vuthaiquang25, 9/7/16.

Lượt xem: 37

  1. vuthaiquang25

    vuthaiquang25 Thành Viên Mới

    Tham gia:
    28/12/15
    Bài viết:
    140
    Được thích:
    0
    Tín dụng:
    16
    Giới tính:
    Nam
    Part 1 : Hướng đối tượng là thế nào, cách khai báo, setting và truy xuất đối tượng, tính chất, phương thức

    [​IMG]
    Trong nhiều năm, PHP đã bị cho là một ngôn ngữ nghèo nàn, và đứng thứ 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, version 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ở thành một trong những đối phương nặng ký thus với các ngôn ngữ lập trình khác. Vậy thì hướng đối tượng là gì? và vì sao nó lại đóng một vai trò to béo 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à mày mò 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 When the ‘programming paradigm that represents concepts As “objects” that Having data fields with associated procedures known As “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ổ truyền (thủ tục) và nhóm những thuộc tính, 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 tắcDRY – DONT REPEAT YOURSELF, dễ trong vấn đề báo trì, tăng hiệu quả công việc.
    Hãy thử hình dung bạn xây dựng 1 trang web hoặc một system lên cả nghìn, thậm chí hàng triệu dòng code, những 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à Vậy 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ỗ nhỏ xíu khi có thay đổi 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 bởi vì những đoạn code trùng lặp, điều này quả tình là một cơn ác độc mộng đối với một developer. Chính vì vậy OOP ra đời nhằm giúp bạn giải quyết vấn đề này.

    1. Cấu trúc lesson

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

    ?>

    Sau khi tạo course 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 các phương thức , thuộc tính của class
    Để lưu trữ lesson vào biến, ta 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 dùng từ khóa var_dump() ,
    <?php
    var_dump($object);
    ?>


    reflect toàn bộ nội dung :
    <?php lesson 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 = modern KungfuClass();
    var_dump($object);
    ?>


    Vào một dossier đặt tên là bai1.php và lưu vào folder gốc của trang web, 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 trước tiên một phương pháp dễ dàng nhất, tiếp theo hãy khám phá bí quyết khai báo thuộc tính và phương thức trong class.
    2) Khai báo phương tính chất của course

    tính chất của lesson hiểu một bí quyết đơn giản là chỉ như là một biến chứa dữ liệu bình thường của PHP, chỉ có khác nhau là nó được đặt vào course và có mối liên quan khăng khít với class 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 thing . phương pháp khai báo thuộc tính của lesson như sau
    <?php
    lesson KungfuClass

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

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

    3.) Truy xuất tính chất trong course

    Để có thể truy xuất tính chất trong course, ta dùng con trỏ “->” của đối tượng object. giả thử chúng ta muốn truy xuất tính chất $property1 và xuất ra ngoài màng hình dòng chữ “Mình là tính chất của class 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 course

    Cũng như thuộc tính, phương thức của class hiểu dễ dàng chính là function được đặt trong course, và có mối liên can khắn khít với class. Để tạo phương thức trong lesson, chúng ta làm như sau
    <?php
    course 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 lesson KungfuClass !";


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

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

    Để 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 dùng con trỏ ->
    <?php
    class 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 lesson KungfuClass !";


    // Đưa lesson KungfuClass vào thing $object
    $object = new 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();
    ?>

    Bên cạnh đó, 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 class thông qua con trỏ $this
    <?php
    lesson KungfuClass

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

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


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

    Chạy lại đoạn script trên, chúng ta sẽ thấy sinh ra ra ngoài trình duyệt 2 dòng chữ đó là “Mình là thuộc tính của course KungfuClass !” và “Xin chào, tôi là phương thức của lesson KungfuClass !”.
    Bằng cách nhóm những đố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 cha, và được những lớp khác kế thừa lại (lớp con). Chúng ta sẽ ko phải mất thời kì cho việc phải khai báo đi , khai báo lại những đặc điểm 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 tính chúng như là : vận tốc màu sắc đẹp, 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, kích cỡ và phương thức chung đó là chạy
    <?php
    class XeClass

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

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

    Ở tỉ dụ trên, lớp xe là lớp phụ vương, chứa các đặc tính chung của các loại xe và các loại xe như xe hơi, xe máy, xe tăng,.. là những lớp con sẽ mang nhưng đặc điểm của lớp phụ thân, nhưng mà không giống nhau ở những 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ông giống nhau về màu dung nhan như xanh, đỏ, tím, vàng,…
    <?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 = novel XeClass();

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

    // Khởi tạo đối tượng xe tăng
    $xetang = current 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 loại 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();
    ?>

    Ở các 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 tới mình sẽ nói chi tiết hơn về vấn đề này. Thân !