Thứ Hai, 8 tháng 7, 2013

Bài 1 :  Java và C# một số điểm tương đồng

      Trước khi vào nội dung của bài viết hôm nay tôi muốn nói với bạn về mục đích của bài viết. Bài viết này tôi không hướng đến khía cạnh so sánh Java mạnh hơn C# hay C# mạnh hơn Java. Java hay C# đều có những điểm mạnh, yếu riêng quả nó trong mỗi ngữ cảnh và môi trường cụ thể,  cách vận dụng, kinh nghiệm của mỗi lập trình viên để giải quyết bài toán.Nếu bạn thực sự muốn tìm hiểu và sanh sánh C# với Java bạn tìm hiểu mục đích ra đời và kiến trúc của hai ngôn ngữ trên.  Mục đích chính của loạt bài này tôi muốn hướng các bạn đến cái nhìn tổng quan cho các ngôn ngữ lập trình hiện đại (Hướng đối tượng) cụ thể trong loạt bài này hai ngôn ngữ phổ biến là C#, Java. Một điều quan trọng hơn nữa tôi muốn các bạn chuyển từ ngôn ngữ C# sang ngôn ngữ Java dựa trên những kiến thức nền tảng C# mà bạn đã biết, mà không phải học từng câu lệnh, cách khai báo biến, hay các phép toán..... Khi học  một ngôn ngữ ngôn ngữ mới.
   Trước khi vào nội dung chính, cụ thể chúng ta cần nhắc lại một số kiến thức cơ bản sau. Java, C# là hai hôn ngữ cài đặt và hỗ trợ lập trình hướng đối tượng. Vì vậy Java, C# phải tuân theo những khái niệm, quy ước của lập trình hướng đối tượng như : Kế thừa(gồm có : đơn kế thừ, đa kế thừa), đa hình(Biến đổi hình thái cho phù hợp với ngữ cảnh, vd : cùng có phương thức giải phương trình bậc hai x^2 + 1 =0. Ở ngữ cảnh học sinh cấp 2 : phương thức trả ra là vô nghiệm. Nhưng với ngữ cảnh học sinh cấp 3 thì có nghiệm phức), bao gói dữ liệu(che dấu các thuộc tính bởi các từ khóa private, protected), trừu tượng hóa dữ liệu(lọc bỏ các thuộc tính không cần thiết, vd khi quản lý học cho một khoa ta chỉ cần biết :" họ tên, quên quán, mã sinh viên", chứ không quan tâm đến "màu tóc, màu da...")... Bên cạnh đó Java, C# cũng như các ngôn ngữ bậc cao khác nó cũng cấp các dữ liệu để định kiểu như : Kiểu dữ liệu cơ bản (C# gọi là kiểu giá trị, Java gọi tên là kiểu dữ liệu nguyên thủy, ví dụ :int, String... . Chúng chỉ khác nhau về tên gọi giống nhau về bản chất, cách thức sử dụng). Kiểu dữ liệu do người dùng định nghĩa. ví dụ :  Class sv,  interface, enum
 1. Kiểu dữ liệu cơ bản :
       



2. Kiểu dữ liệu do người dùng định nghĩa :