30/09/2018, 21:42

Thuộc tính và đối tượng trong lập trình hướng đối tượng

em làm thế này đúng không:
ĐỀ:1Liệt kê tất cả các thuộc tính và hành động của đối tượng Xe ô tô. Đề xuất lớp Car (Ô tô).
2Liệt kê tất cả các thuộc tính và hành động của đối tượng Xe buýt. Đề xuất lớp Bus (Xe buýt).
3Từ hai lớp Car và Bus đề xuất một lớp Động cơ (Engine) cho hai lớp trên kế thừa, để tránh trùng lặp dữ liệu giữa hai lớp Car và Bus.
giải:1:thuột tính là
-nhãn xe
-màu xe
-giá xe
-công cuất xe
Hành động là
-khởi động
-dừng lại
-chạy
CÂu 2:tương tự
câu 3:em không hiểu,anh chị giải thích em với

Xuân Hòa viết 23:52 ngày 30/09/2018

Cái hay của kế thừa đó là ta có thể tái sử dụng lại mã nguồn ở lớp cha cho mấy thằng con.
Ở đây mục đích tạo thêm lớp Engine để tránh việc code đi code lại các thuộc tính và phương thức dùng chung cho cả 2 lớp Car và Bus.
Bây giờ bạn liệt kê ra những cái thuộc tính và phương thức chung của 2 thằng Car và Bus rồi cho vào thằng Engine, lúc đó, khi Car và Bus đã kế thừa Engine thì nó có tất cả các thứ mà thằng Engine có.

public class Engine{
    protected int mauSac;
    public void khoiDong(){
        // do something
    }
}
public class Car extends Engine{
    // Lúc này Car có thuộc tính mauSac và phương thức khoiDong() mà nó kế thừa từ Engine
}
Nhox Namby viết 23:58 ngày 30/09/2018

mình hiểu rồi cảm ơn bạn nha
à bạn hiểu bài này không ,
Tạo một lớp S1 để thực hiện các thao tác số học với hai số bất kỳ nhập từ bàn phím. Thực hiện chồng toán tử operator cho các thao tác: Cộng, trừ, nhân, chia đối với hai số đó. Xây dựng hàm main() để kiểm tra lớp đã tạo.

Xuân Hòa viết 23:51 ngày 30/09/2018

nãy mình tưởng bạn hỏi java hehe, nhìn lại thấy có chồng toán tử, hóa ra C++
Đề bài yêu cầu rõ rồi bạn ko hiểu chỗ nào nhỉ?

Nhox Namby viết 23:50 ngày 30/09/2018

mình mới học, mình không hiểu chỗ"hực hiện chồng toán tử operator cho các thao tác: Cộng, trừ, nhân, chia đối với hai số đó. Xây dựng hàm main() để kiểm tra lớp đã tạo."
bạn có thể mo tả ngắn gọn bằng code cho mình dễ hiểu không,hj mai thi rồi

Xuân Hòa viết 23:53 ngày 30/09/2018

đại loại như này, lâu ko code C++ mình cũng ko nhớ rõ lắm:
Ví dụ chồng toán tử + 2 số nguyên nhé

public:
int operator+(int a, int b)
{
    return a + b;
}
Nhox Namby viết 23:53 ngày 30/09/2018

phải thế này không nhĩ
#include
using namespace std;
class S1
{
private:
int a,int b;
public:
void::putdata(int x,int y)
{
a=y,b=y;
}
S1 void::showdata()
{
cout<<“nhap 2 so bat ky:”;
}

int main()
??
};

Xuân Hòa viết 23:43 ngày 30/09/2018

Hàm main() bạn để ở ngoài class chứ:

include<iostream>

using namespace std;
class  S1
{
   private:
    int a;
   int b;
   public:
    void putdata(int x,int y)
    {
       a=x;
       b=y;
    }
    void showdata()
    {
       cout<<"nhap 2 so bat ky:";
    }
};

int main()
{
   // dome something here
}
Nhox Namby viết 23:53 ngày 30/09/2018

public:
int operator+(int a, int b)
{
return a + b;
}

vậy còn phần chồng toán tử bỏ vô đâu ta public:
int operator+(int a, int b)
{
return a + b;
}
hjhj

Xuân Hòa viết 23:48 ngày 30/09/2018

Bạn nên đọc thêm tài liệu, mình thấy code bạn lỗi cú pháp nhiều chỗ lắm nha:
ví dụ như: khai báo 2 số nguyên bạn làm : int a, int b; // Sai, phải dùng dâu ";" giữa 2 câu lệnh
Bạn định nghĩa phương thức ngay trong class thì ko có dùng toán tử định vị phạm vi :: nha.

Nhox Namby viết 23:44 ngày 30/09/2018

mình còn mơ hồ quá, hay là bạn viết rõ cho mình được ko

Xuân Hòa viết 23:52 ngày 30/09/2018

Học lập trình bạn phải tự thân vận động thôi, trước mình mới học cũng vậy à, mạnh dạn gõ code rồi chạy, sai đâu sửa đó ắt nhớ Cùng lắm thì cầu cứu anh Google tìm bài giải mẫu hoặc bài tương tự copy code về chạy thử rồi xem từng câu lệnh nó làm việc gì bạn sẽ hiểu thôi.

Nhox Namby viết 23:47 ngày 30/09/2018

mình sợ không kịp mai thi à

Bài liên quan
0