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 :