|
![]() |
|
Các công cụ đề tài ![]() |
Các chế độ hiển thị ![]() |
#1
|
||||
|
||||
![]() Xin hỏi về các 4 tính chất của lập trình hướng đối tượng
Bản chất mình chưa hiểu về 4 tính chất của lập trình hướng đối tượng lắm, ai biết xin chỉ giáo dùm với
p/s: làm winform kiểu bài quản lý thì có tính chất gì của lập trình hướng đối tượng. Mình chỉ biết học code, code sao cho ra, chứ chẳng biết nó có tính chất gì.... |
#2
|
||||
|
||||
![]()
Tình toàn vẹn, Nhất quán... mình cũng không nhớ hết. Lúc đầu mình cũng quan niệm như bạn. Miễn sao chương trình ra kết quả đúng là đc. Nhưng như thế thì sau này ra ngoài làm ko ai nhận bạn đâu
![]()
__________________
Nhận làm Project lập trình quản lý
Yahoo: nguyenhuuhung_1990 |
#3
|
||||
|
||||
![]()
Bạn xem tài liệu bên trường ĐH KHTN thêm bạn sẽ hiểu.
Link: http://www.mediafire.com/?c5xujji3c9e99v6
__________________
Dạy kèm: phương pháp lập trình hướng đối tượng Hướng dẫn đồ án môn học và chia sẻ kinh nghiệm học tập cho sinh viên. ![]() Liên hệ: Trần Minh Vươ[email protected]_0934103448 |
#4
|
||||
|
||||
![]()
cảm ơn bạn nhiều cái này mình cũng đang rất cần
__________________
|
#5
|
||||
|
||||
![]()
Trích dẫn:
VD như mình có đọc 1 quyển sách họ cho ví dụ là: lớp giang viên, lớp sinh viên, lớp nhân viên đều có phương thức Show(), nhưng khi gọi phương thức Show() ở lớp giảng viên lại khác khi gọi phương thức Show() ở lớp sinh viên ===> đó là đa hình ( nhưng theo mình đó có lẽ là overload chứ k phải là override). Tiếp đó mình đọc 1 cuốn sách nó lại có 1 VD về tính đa hình: có lớp chiến binh, lớp này có thể tùy từng tình huống mà có cách xử lý khác nhau, VD như lớp này có thể đánh tay không để tấn công đối phương, có thể dùng bow hay thậm chí có thể dùng sword để tấn công đối phương ==>đó là tính đa hình. Đọc xong cái VD sau mình nghĩ có lẽ là đúng là đa hình. Hum đi pv họ hỏi là nếu đối tượng là cái bút thì em nói cho anh biết tính đa hình của cái bút, mình định nói là: cái bút nếu để viết thì là cái bút, nhưng nếu nó để đánh nhau thì nó có thể là hung khí giết người...nhưng mà bản chất mình vẫn chưa hiểu nên mình k dám trả lời Vậy nên hum nay mới mạo muội hỏi các bạn của diễn đàn cộng đồng C việt, ai hiểu rõ bản chất về 4 tính chất của lập trình hướng đối tượng xin chỉ giáo cho mình (4 tính chất: đóng gói, kế thừa, đa hình, trừu tương )....Mình xin cảm ơn mọi người ![]() |
#6
|
||||
|
||||
![]()
Trích dẫn:
đúng như bạn nói, hum nọ mình đi pv họ hỏi mà, nếu đọc sách để hiểu đ/n về 4 cái tính chất của lập trình hướng đối tượng (đóng gói, kế thừa, đa hình, trừu tượng) thì mình có hiểu, nhưng để làm vào 1 bài lập trình thì mình k biết thì nào cần có nó và khi nào không, tại sao lại cần. Như mấy bài quản lý bằng winform mình làm, mình chẳng thấy cái tính chất nào trong đấy hết. Hum đi pv nhà pv hỏi: thế bài quản lý của em làm có phải là hướng đối tượng k?, lần đầu đi cũng trả lời là có, nhưng khi về mình mới ngẫm lại là chẳng thấy trong lúc mình làm nó có 4 cái tính chất của hướng đối tượng đâu. Họ hỏi mình thêm câu tính đa hình trong hướng đối tượng. Theo như mình đọc sách thì mỗi cái nói 1 kiểu
VD như mình có đọc 1 quyển sách họ cho ví dụ là: lớp giang viên, lớp sinh viên, lớp nhân viên đều có phương thức Show(), nhưng khi gọi phương thức Show() ở lớp giảng viên lại khác khi gọi phương thức Show() ở lớp sinh viên ===> đó là đa hình ( nhưng theo mình đó có lẽ là overload chứ k phải là override). Tiếp đó mình đọc 1 cuốn sách nó lại có 1 VD về tính đa hình: có lớp chiến binh, lớp này có thể tùy từng tình huống mà có cách xử lý khác nhau, VD như lớp này có thể đánh tay không để tấn công đối phương, có thể dùng bow hay thậm chí có thể dùng sword để tấn công đối phương ==>đó là tính đa hình. Đọc xong cái VD sau mình nghĩ có lẽ là đúng là đa hình. Hum đi pv họ hỏi là nếu đối tượng là cái bút thì em nói cho anh biết tính đa hình của cái bút, mình định nói là: cái bút nếu để viết thì là cái bút, nhưng nếu nó để đánh nhau thì nó có thể là hung khí giết người...nhưng mà bản chất mình vẫn chưa hiểu nên mình k dám trả lời Vậy nên hum nay mới mạo muội hỏi các bạn của diễn đàn cộng đồng C việt, ai hiểu rõ bản chất về 4 tính chất của lập trình hướng đối tượng xin chỉ giáo cho mình (4 tính chất: đóng gói, kế thừa, đa hình, trừu tương )....Mình xin cảm ơn mọi người ![]() 1. Tính trừu tượng : Việc bạn mô hình hóa thông tin của 1 sinh viên dưới dạng 1 lớp chính là bạn đã sử dụng nó rồi đó
Code:
public class Student { public string FirstName{get;set;} public string LastName{get;set;} public int Age{get;set;} public static string Class { get;set; } public string overrider ToString() { return FirstName + " " + LastName; } }
Code:
public class Student { //Chỉ bên trong class Student mới được phép truy cập các trường này private string _firstName; private string _lastName; //Bên ngoài lớp vẫn truy cập được nó nhưng thông qua thuộc tính //Giấu cơ chế hoạt động bên trong(Bạn có thể hiểu là ông muốn lấy hoặc thay đổi tên của 1 Student thì ông phải truy cập qua FirstName tôi sẽ làm cho ông(Ông ko thể biết được tôi đã làm thế nào) public string FirstName { get { return this._firstName; } set { this._firstName = value; } } } 3. Tính kế thừa(cái này quá rõ rồi) 4. Tính đa hình : Khi trong lớp cơ sở bạn sử dụng thuộc tính, phương thức... mà có sử dụng modifier virtual, sau đó trong lớp kế thừa từ lớp này overrider thuộc tính, phương thưc... đó Giả sử bạn có 1 lớp Worker mô tả thông tin cơ bản 1 công nhân, với cách thức tính (lương bằng lương cơ bản * tổng số ngày làm việc)
Code:
public class Worker { public string FirstName{get;set;} public string LastName{get;set;} public decimal SalaryBasic { get;set; } public int TotalWork { get; set; } public virtual decimal Salary() { return (SalaryBasic*TotalWork); } }
Code:
public class WorkerManual:Worker { public string FirstName{get;set;} public string LastName{get;set;} public decimal Bonus{get;set;} public decimal SalaryBasic { get;set; } public int TotalWork { get; set; } public override decimal Salary() { return (SalaryBasic*TotalWork + Bonus); } }
Code:
public class Manager:Worker { public string FirstName{get;set;} public string LastName{get;set;} public decimal Bonus{get;set;} public decimal SalaryBasic { get;set; } public int TotalWork { get; set; } public override decimal Salary() { return (SalaryBasic*TotalWork + 5*Bonus); } }
__________________
Ai đã gieo vào lòng Ai nỗi nhớ Để vì Ai sóng vỗ những đêm dài Ai có biết vì Ai-Ai không ngủ Trằn trọc hoài nỗi nhớ của riêng Ai. My blog : http://www.toaipro.tk |
#7
|
||||
|
||||
![]()
Bạn đã đến giai đoạn đi phỏng vấn thì nên tập cách viết bài cho chững chạc. Đặt đoạn văn đều đặn, tránh dùng từ theo lối "học sinh", tránh viết tắt
VnVista I-Shine |