[Question] Lập trình hướng đối tượng là gì |
26/03/2012 07:26:19 (+0700) | #1 | 259842 |
tuan448
Member
|
0 |
|
|
Joined: 21/11/2011 21:15:25
Messages: 17
Offline
|
|
Mình học xong pascal rồi, bây giờ mình đang học java nhưng đây là 1 ngôn ngữ hướng đối tượng, mình không biết đó là gì, lên google thì nó nói có các phương thức, thuộc tính... gì đó mình không hiểu cho lắm. Vậy cho mình hỏi: đối tượng là gì, các phương thức, thuộc tính là gì, các lớp là gì?.
Có thể cho mình vài ví dụ được không. |
|
|
|
|
[Question] Lập trình hướng đối tượng là gì |
26/03/2012 12:07:02 (+0700) | #2 | 259874 |
|
rubythekid
Member
|
0 |
|
|
Joined: 02/11/2010 10:40:09
Messages: 14
Offline
|
|
Lập trình hdt là cách lập trình với cách suy nghĩ gần gũi với thế giới thực. ví dụ tuan448 là một đối tượng, rubythekid là một đối tượng. Một đồi tượng thông thường có các thuộc tín và các hành vi(method, hàm). các đối tượng có thuộc tính và hành vi giống nhau sẽ nhóm lại thành lớp(class). như tuan448 và rubythekid có các thuộc tính như giới tính, tuổi, độ đẹp trai.. các hành vi như ăn, ngủ,tán gái .... nên nhóm lại thành lớp Người.
class Ngưởi{
integer tuổi;
string sex;
boolean đẹptrai;
string ăn(string thứcăn){
return ''thằng này thích ăn' + thứcăn;
}
string tángái(){
if(đẹp trai){
return 'vì đẹp trai nên không cần tán gái''
}
else{
return ''rất thích tán gái'
}
}
}
Ngươi tuan448; // tuan48 là một Người (đối tượng tuan48 thuộc lớp Người)
tuan448.tuoi = 20;
tuan448.sex = ''không rõ';
tuan448.deptrai = true;
tuan448.ăn('hủ tíu') ==> ''thằng này thích ăn hủ tíu'
tuan448.tángái() ==> 'vì đẹp trai nên không cần tán gái'' |
|
I just don't understand the ways of the world today sometimes I feel like there's nothing to live for. So I'm longing for the day of yesterday...
A member in society of sheep. |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
01/04/2012 16:42:06 (+0700) | #3 | 260571 |
|
chiro8x
Member
|
0 |
|
|
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
|
|
Để trả lời câu hỏi lập trình hướng đối tượng là gì ? bạn phải hiểu đối tượng là gì.
Mình tạm định nghĩa là:
Đối tượng = Phương Thức + Dữ Liệu.
Phương thức bao gồm các thuộc tính, các hàm, để tương tác với dữ liệu.
Dữ liệu chứa những giá trị của đối tượng.
Lập trình hướng đối tượng là công việc lập trình, trong đó sử dụng đối tượng làm chủ thể tương tác. Lập trình hướng đối tượng sẽ giúp bạn:
- Thiết kế các module có có tính tương thích (adaptable).
- Dữ liệu được bảo vệ và phân quyền rõ ràng hơn.
- Việc kế thừa đối tượng, làm cho tiết kiệm thời gian lập trình hơn, việc viết các lớp dẫn xuất nhẹ nhàng hơn.
- Nâng cấp, thiết kế chương trình lớn dễ dàng hơn.
Code:
#include <iostream>
using namespace std;
/*định nghĩa một đối tượng*/
class record{
/*của riêng*/
protected:
/*dữ liệu*/
char name[255];
int age;
/*công cộng*/
public:
/*phương thức*/
void intput(){
cout << "Enter your name:" << endl;
cin >> record::name;
cout << "Enter your age:" << endl;
cin >> record::age;
}
void output(){
cout << "My name: " << record::name << endl;
cout << "My age: " << record::age << endl;
}
};
class employment : public record{
protected:
/*dữ liệu*/
char sex[20];
public:
/*phương thức*/
void inputep(){
employment::input();
cout << "Enter your sex :" << endl;
cin >> employment::sex;
}
void oputep(){
employment::output();
cout << employment::sex << endl;
}
};
int main(){
record myrc;
myrc.input();
myrc.output();
employment emp;
emp.inputep();
emp.outputep();
cout << "=======Break Line=======" << endl;
emp.show();
return 0;
}
Bạn thấy mình định nghĩa một đối tượng là record và employment kế thừa của record. Bạn để ý sẽ thấy nó gọi các hàm của record, mà mình không cần nhập lại một lần nữa. Nếu những chương trình lớn lượng công việc tiết kiệm được sẽ rất nhiều, ngoài ra ngôn ngữ lập trình hướng đối tượng có nhiều thế mạnh đang chờ bạn khám phá.
Sách có quyển Turbo C++ của Robert Lafore. Viết bằng tiếng Anh có rất nhiều ví dụ cụ thể.
Bạn cũng có thể đọc thêm quyển: Từ C tới C++ của nhà xuất bản thống kê, và quyển Lập trình cơ sở dữ liệu với C++. Chúc vui .
http://vi.wikipedia.org/wiki/L%E1%BA%ADp_tr%C3%ACnh_h%C6%B0%E1%BB%9Bng_%C4%91%E1%BB%91i_t%C6%B0%E1%BB%A3ng [vietsub]
http://en.wikipedia.org/wiki/Object-oriented_programming [engsub]
@rubythekid: hãy trả lời người hỏi nghiêm túc, hoặc không làm gì cả.
|
|
while(1){} |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
09/04/2012 14:52:57 (+0700) | #4 | 261072 |
|
rubythekid
Member
|
0 |
|
|
Joined: 02/11/2010 10:40:09
Messages: 14
Offline
|
|
chiro8x wrote:
@rubythekid: hãy trả lời người hỏi nghiêm túc, hoặc không làm gì cả.
Bạn dạy đời ai vậy? Tôi không nghiêm túc chỗ nào.?
Tui chỉ lấy kinh nghiệm của bản thân thôi. Lúc mới học HDT tui cũng như bạn tuan488 rất khó tiếp thu được những khái niệm lạ lẫm với HDT. Tôi lấy ví dụ đời sống thực để bạn ấy dễ hiểu hơn(ít nhất theo tôi nghĩ), ko hề đùa giỡn. Còn nếu "nghiêm túc' là chép những gì trong sách ra đây tôi nghĩ bạn ấy cũng chẳng cần hỏi làm gì. |
|
I just don't understand the ways of the world today sometimes I feel like there's nothing to live for. So I'm longing for the day of yesterday...
A member in society of sheep. |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
09/04/2012 16:24:20 (+0700) | #5 | 261078 |
tuan448
Member
|
0 |
|
|
Joined: 21/11/2011 21:15:25
Messages: 17
Offline
|
|
Đầu tiên thì mình cũng thanks 2 bạn đã trả lời bài viết của mình, mình cũng nắm được sơ sơ rồi. Cho mình hoi j2me, j2se, java có quan hệ như thế nào vậy, phải học j2me như thế nào, và cần những phần mềm nào, bạn nào rảnh có thể pm nick yahoo: worms1080428. |
|
|
|
|
[Question] Lập trình hướng đối tượng là gì |
09/04/2012 18:33:16 (+0700) | #6 | 261083 |
|
computerline
Member
|
0 |
|
|
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
|
|
Để hiểu thế nào là "Lập trình Hướng đối tượng" bạn "cần" phải hiểu:
1. Phương pháp luận hướng đối tượng (Object Oriented Methodology)
2. Ngôn ngữ lập trình hướng đối tượng (Object-Oriented Programming Languages)
Hiểu được 2 vấn đề này, tự bạn sẽ hiểu thế nào là lập trình hướng đối tượng ^_^
Gợi ý một chút : Tại sao lại là "hướng đối tượng" chứ không gọi thẳng luôn là "đối tượng"
Thân !
|
|
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
09/04/2012 20:10:50 (+0700) | #7 | 261089 |
|
chiro8x
Member
|
0 |
|
|
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
|
|
rubythekid wrote:
chiro8x wrote:
@rubythekid: hãy trả lời người hỏi nghiêm túc, hoặc không làm gì cả.
Bạn dạy đời ai vậy? Tôi không nghiêm túc chỗ nào.?
Tui chỉ lấy kinh nghiệm của bản thân thôi. Lúc mới học HDT tui cũng như bạn tuan488 rất khó tiếp thu được những khái niệm lạ lẫm với HDT. Tôi lấy ví dụ đời sống thực để bạn ấy dễ hiểu hơn(ít nhất theo tôi nghĩ), ko hề đùa giỡn. Còn nếu "nghiêm túc' là chép những gì trong sách ra đây tôi nghĩ bạn ấy cũng chẳng cần hỏi làm gì.
Bạn nói vậy tôi chỉ thấy bạn muốn đùa giởn với người ta chứ chẳng mấy thiện cảm với bạn. Tôi không có ý dạy đời ai cả, nhưng kiến thức nó cũng có tính linh hoạt và tính gò bó cố hữu của nó. Trước khi sử dụng nó linh hoạt phải biết chấp nhận sự gò bó. Chỉ đường phải chỉ đúng, đừng chỉ đi lòng vòng. Còn bạn muốn ăn thua đủ thì đây không phải chổ, và tôi không muốn nói gì thêm. |
|
while(1){} |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
09/04/2012 20:16:11 (+0700) | #8 | 261090 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
@chiro8x: take it easy. Ví dụ của @rubythekid cũm hóm hỉnh đấy chứ |
|
Let's build on a great foundation! |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
09/04/2012 21:11:41 (+0700) | #9 | 261094 |
|
rubythekid
Member
|
0 |
|
|
Joined: 02/11/2010 10:40:09
Messages: 14
Offline
|
|
chiro8x wrote:
rubythekid wrote:
chiro8x wrote:
@rubythekid: hãy trả lời người hỏi nghiêm túc, hoặc không làm gì cả.
Bạn dạy đời ai vậy? Tôi không nghiêm túc chỗ nào.?
Tui chỉ lấy kinh nghiệm của bản thân thôi. Lúc mới học HDT tui cũng như bạn tuan488 rất khó tiếp thu được những khái niệm lạ lẫm với HDT. Tôi lấy ví dụ đời sống thực để bạn ấy dễ hiểu hơn(ít nhất theo tôi nghĩ), ko hề đùa giỡn. Còn nếu "nghiêm túc' là chép những gì trong sách ra đây tôi nghĩ bạn ấy cũng chẳng cần hỏi làm gì.
Bạn nói vậy tôi chỉ thấy bạn muốn đùa giởn với người ta chứ chẳng mấy thiện cảm với bạn. Tôi không có ý dạy đời ai cả, nhưng kiến thức nó cũng có tính linh hoạt và tính gò bó cố hữu của nó. Trước khi sử dụng nó linh hoạt phải biết chấp nhận sự gò bó. Chỉ đường phải chỉ đúng, đừng chỉ đi lòng vòng. Còn bạn muốn ăn thua đủ thì đây không phải chổ, và tôi không muốn nói gì thêm.
Vậy là tự nhiên tui ở đâu nhảy vào muốn ăn thua đủ với bạn? Nếu tui khùng vậy tui xin lỗi. ai đi chấp mấy kẻ khùng bạn nhỉ! |
|
I just don't understand the ways of the world today sometimes I feel like there's nothing to live for. So I'm longing for the day of yesterday...
A member in society of sheep. |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
10/04/2012 17:28:59 (+0700) | #10 | 261144 |
|
chiro8x
Member
|
0 |
|
|
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
|
|
@anh quanta & bạn rubythekid: mình xin lỗi có lẽ bản thân mình làm việc cứng nhắc quá, cũng do mấy ngày gần đây tâm trạng không tốt. Xin lỗi vì sự khiếm nhã của mình. |
|
while(1){} |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
24/04/2012 23:06:14 (+0700) | #11 | 262016 |
|
dthbkpro
Member
|
0 |
|
|
Joined: 15/09/2011 23:38:34
Messages: 31
Offline
|
|
@rubythekid cách tiếp cận vấn đề của bạn mình thấy dễ hiểu
@chiro8x sau đó thì đọc bài của chiro8x để hiểu kỹ hơn
Hi vọng rubythekid tiếp tục chia sẻ những bài dễ hiểu thế này, người mới vào cuộc không thấy nản, hihi |
|
Dựng trụ cột mới là điều tối trọng yếu,
Không có trụ cột vững trãi,
Lại nóng lòng cầu thành,
Vĩnh viễn vô pháp đạt tới cảnh giới tối cao. |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
28/04/2012 21:19:59 (+0700) | #12 | 262158 |
LIA
Member
|
0 |
|
|
Joined: 10/09/2011 19:36:46
Messages: 13
Offline
|
|
tuan448 wrote:
Mình học xong pascal rồi, bây giờ mình đang học java nhưng đây là 1 ngôn ngữ hướng đối tượng, mình không biết đó là gì, lên google thì nó nói có các phương thức, thuộc tính... gì đó mình không hiểu cho lắm. Vậy cho mình hỏi: đối tượng là gì, các phương thức, thuộc tính là gì, các lớp là gì?.
Có thể cho mình vài ví dụ được không.
Học Pascal (lập trình POP) thì típ tục học OOP in Pascal đi, tại sao cứ phải nhảy sang Java làm gì. Search từ khoá Object Pascal Language Guide, Borland Delphi 7 Developer'S Guide,... Thậm chí học Turbo Vison của Borland Pascal cũng đc, mặc dù bây giờ chả ai học cái đó và số người biết cái đó vô cùng ít |
|
code first, think later - natural programmer |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
30/04/2012 11:58:06 (+0700) | #13 | 262213 |
|
chiro8x
Member
|
0 |
|
|
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
|
|
LIA wrote:
Học Pascal (lập trình POP) thì típ tục học OOP in Pascal đi, tại sao cứ phải nhảy sang Java làm gì. Search từ khoá Object Pascal Language Guide, Borland Delphi 7 Developer'S Guide,... Thậm chí học Turbo Vison của Borland Pascal cũng đc, mặc dù bây giờ chả ai học cái đó và số người biết cái đó vô cùng ít
Học C và các ngôn ngử họ C, syntax của nó khá giống với C do đó, nắm vững C/C++ or Java sẽ là lợi thế lớn. Chỉ cần nắm vững C/C++ thì học java hay PHP là không khó. Pascal dù đẹp nhưng không có tính ứng dụng cao. Và nó có phần nào thiếu linh hoạt. Nói dơn giản thì tớ thích
Code:
hơn
Code:
|
|
while(1){} |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
30/04/2012 13:23:21 (+0700) | #14 | 262216 |
channhua
Elite Member
|
0 |
|
|
Joined: 18/07/2003 04:49:28
Messages: 338
Offline
|
|
Gà như mình thì đọc rubythekid dễ hiểu hơn.
Thank bạn |
|
|
|
|
[Question] Lập trình hướng đối tượng là gì |
01/05/2012 02:35:01 (+0700) | #15 | 262235 |
|
tvv
Member
|
0 |
|
|
Joined: 03/06/2011 07:41:21
Messages: 55
Location: TP HCM
Offline
|
|
Hướng đối tượng chung quy là mô tả về một đối tượng , có nhiều người nghĩ đối tượng là phải có thuộc tính và phương thức .Nhưng theo mình nghĩ phương thức không nhất thiết phải có . |
|
http://www.youtube.com/channel/UCDeTtfediXlQmnw1kdOeHEw?feature=mhee |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
08/05/2012 07:14:26 (+0700) | #16 | 262698 |
|
chiro8x
Member
|
0 |
|
|
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
|
|
tvv wrote:
Hướng đối tượng chung quy là mô tả về một đối tượng , có nhiều người nghĩ đối tượng là phải có thuộc tính và phương thức .Nhưng theo mình nghĩ phương thức không nhất thiết phải có .
Mình nói thể này, dữ liệu ở đây giống như thể xác. Phương thức là linh hồn. Nếu bạn nói hướng đối tượng chỉ cần dữu liệu không nhất thiết phải có phương thức thì đó là một sai lầm lớn. Việc này chẳng khác gì một thân xác bất động. Phương thức giúp ta tương tác với dữu liệu một cách an toàn và linh hoạt. Phương thức và dữ liệu đều thật sự cần, và thật sự quan trọng. |
|
while(1){} |
|
|
|
[Question] Lập trình hướng đối tượng là gì |
11/07/2012 15:36:22 (+0700) | #17 | 266588 |
Mr_trumvn
Member
|
0 |
|
|
Joined: 01/01/2008 13:43:31
Messages: 1
Offline
|
|
Kết hợp cả 2 câu trả lời của rubythekid và chiro8x thì thấy rất dễ nắm bắt. Thanks
|
|
|
|
|
[Question] Lập trình hướng đối tượng là gì |
12/07/2012 10:08:47 (+0700) | #18 | 266624 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
học smalltalk đi rồi sẽ biết hướng đối tượng
Java không phải là thuần hướng đối tượng nên nhiều khi bạn sẽ viết theo kiểu thủ tục.
|
|
|
|
|
[Question] Lập trình hướng đối tượng là gì |
12/07/2012 14:23:59 (+0700) | #19 | 266640 |
TQN
Elite Member
|
0 |
|
|
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
|
|
Cho em xin, giờ học SmallTalk làm gì vậy trời, để mốc meo chắc. |
|
|
|
|
[Question] Lập trình hướng đối tượng là gì |
12/07/2012 20:51:24 (+0700) | #20 | 266658 |
IT0405
Member
|
0 |
|
|
Joined: 06/07/2012 07:40:28
Messages: 33
Offline
|
|
Mình nói thể này, dữ liệu ở đây giống như thể xác. Phương thức là linh hồn. Nếu bạn nói hướng đối tượng chỉ cần dữu liệu không nhất thiết phải có phương thức thì đó là một sai lầm lớn. Việc này chẳng khác gì một thân xác bất động. Phương thức giúp ta tương tác với dữu liệu một cách an toàn và linh hoạt. Phương thức và dữ liệu đều thật sự cần, và thật sự quan trọng.
Bạn ấy nói đúng mà, đôi khi không cần phương thức, cũng giống như đôi khi người ta cần cái xác hơn là một con người hoàn chỉnh. Cái hay của IT là chúng ta có thể tạo ra những cái ... thậm chí chẳng để làm gì Ví dụ tạo ra một đối tượng không có phương thức. |
|
Dạo này có nhiều vụ hài quá, toàn gặp võ sĩ mồm. |
|
[Question] Lập trình hướng đối tượng là gì |
18/07/2012 15:37:54 (+0700) | #21 | 267049 |
vd_
Member
|
0 |
|
|
Joined: 06/03/2010 03:05:09
Messages: 124
Offline
|
|
Ờ, nếu muốn biết OOP thì học Smalltalk để nó ép mình phải suy nghĩ và làm việc theo OOP, như vậy cũng sẽ giúp mình không bị ảnh hưởng bởi thói quen lập trình truyền thống.
|
|
|
|