Cái mình nói đến là tính chất của hướng đối tượng.
struct là struct, class là class.
Nên học hướng đối tượng với c++ hay với c#
mình vote C++ hiểu nó rồi qua mấy cái kia ok ngay
Cũng đúng với chiều ngược lại
Bạn nghĩ sai rồi.
Cách nhận biết OOP đơn giản nhất so với Thủ tục là
OOP: đối tượng. Phương thức
Ví dụ ConNguoi.KhaiBaoTen();
Thủ tục: Thủ tục(dữ liệu)
Ví dụ: KhaiBaoTen(ConNguoi)
Học phần đó thầy cô dùng ngôn ngữ nào thì mình học theo ngôn ngữ đó thôi. Bên mình học C# nhưng theo mình thấy C# có một số cú pháp quá ngắn gọn, giúp ích cho việc lập trình nhanh nhưng không tốt lắm nếu đang học từ đầu. Ví dụ như getter, setter của C# được rút gọn đáng kể nhưng người mới học sẽ không hiểu bản chất, ngược lại bên Java thì vẫn phân ra thành 2 hàm rõ ràng.
Cú pháp get set ở Java:
class Human{
private int Age;
public int getAge(){
return this.Age;
}
public void setAge(int age){
this.Age = age;
}
}
Bên C# rút gọn thành:
class Human{
public int Age
{
get { return this.Age; }
set { this.Age = value; }
}
}
và thậm chí là gọn hơn nữa
class Human{
public int Age { get; set; }
}
Ai đó chỉ mình dùng tab trong markdown nhé, mình chưa biết dùng nên dùng dấu cách.
Vì thế nên có những cái Java ếu làm được và rõ ràng như C#.
Dẫn chứng bạn ơi, nói suông vậy không biết thế nào.
Về mặt rõ ràng:
Với C#, method là method, property là property.
Với Java, bạn hay phân biệt method và property. Đừng nói rang chỉ cần có thêm get hoặc set ở đằng đằng trước thì 1 method thành 1 property.
Về mặt ứng dung:
Phần view của ứng dung C# và phần Model của nó có thể tách rời hoàn toàn cho 2 nhóm phát triển độc lập làm song song. Dữ lieu của class này và class khác được liên kết-ràng buộc nhau (binding) thông qua property, tự động update dữ liệu với (NotifyPropertyChanged),
Java sẽ làm như thế vào với việc đó ?
Em đang định lấy ví dụ về lambda expression thì search google lại thấy nó có rồi
Lúc mình học java ở trường thì Java chưa có cái đó, mà không dùng đến, giờ thì nó cũng có
Cái lambda đó a chưa hiểu sâu nhưng dung cũng thấy thích
Khi dung với linq sẽ dung nhiều cú pháp đấy
Em cũng mới chỉ dùng nó được ở mức đơn giản thôi. Theo như cách hiểu của em thì lambda là cách viết gọn và sáng sủa hơn của delegate, nhưng mà nó làm code của mình vừa ngắn vừa đẹp.
Còn cái ví dụ của anh thì nó được ứng dụng vào WPF và các hệ thống web, chỉ tiếc là mới chỉ có Windows là dùng được WPF, nhưng đó là hướng phát triển em nghĩ là đúng đắn, tương lai của lập trình ứng dụng tách biệt front-end và back-end. Từ hồi thử dùng WPF cái em chưa làm cái project WinForms nào :))
Học C++ thì nó sẽ nhanh, nhưng làm được nó thì sẽ lâu và khó.
Vì nó là một ngôn ngữ “chung chung”
Học C# thì học sẽ lâu, nhưng làm thì sẽ nhanh.
Vì C# nó chuyên biệt hơn, hướng thẳng đến mục đích nhưng nó nhiều thứ phải học.
Cái lambda đấy giờ mình đi đâu cũng thấy nó.
Mình cũng bỏ WF được mấy năm rồi vì WPF đáp ứng được hết và phát triển mạnh hơn.
Nhưng cũng có phần WPF nó khá chuối mà chưa khắc phục được ở một số phần về hiệu năng.
Còn C++ thì mình khao khát làm chủ được nó nhưng nó quá khó để làm điều đó
Vẫn đang cố nhưng chưa biết khi nào