Trình bày điểm giống nhau và khác nhau của C++, C#, Java
-Một hằng (constant) là một biến nhưng trị không thể thay đổi được trong suốt thời giant hi
hành chương trình.
-Hằng buộc phải được gán giá trị lúc khai báo. Khi đã được khởi gán thì không thể viết đè lên.
-Trị của hằng phải có thể được tính toán vào lúc trình biên dịch.
-Hằng làm cho chương trình đọc dễ dàng hơn.
-Hằng làm cho dễ sữa chương trình hơn.
-Hằng làm cho việc tránh lỗi dễ dàng hơn.
BÀI THU HOẠCH SỐ 1:
Trình bày điểm giống nhau và khác nhau của C++, C#, Java.
C++ C# Java
Chú
Thích
Chú Thích được dùng để ghi chú hay mô tả các phần của chương trình.
Giống
Nhau
/ text / Chú thích trên một dòng.
/*text */ Chú thích cho một hoặc nhiều dòng
Khác
Nhau
/// Chú thích này ghi chép tài
liệu cho một lớp hoặc phương
thức bằng cách sử dụng một
phần XML. Chú thích XML sẽ
mô tả đầy đủ cho lớp hay
phương thức như gí trị trả về,
mục đích, tài liệu tham khảo…
/** documentation/ Sử
dụng chú thích này để chuẩn
bị cho việc tự động phát
sinh tài liệu.
Hằng
-Một hằng (constant) là một biến nhưng trị không thể thay đổi được trong suốt thời giant hi
hành chương trình.
-Hằng buộc phải được gán giá trị lúc khai báo. Khi đã được khởi gán thì không thể viết đè lên.
-Trị của hằng phải có thể được tính toán vào lúc trình biên dịch.
-Hằng làm cho chương trình đọc dễ dàng hơn.
-Hằng làm cho dễ sữa chương trình hơn.
-Hằng làm cho việc tránh lỗi dễ dàng hơn.
Giống
Nhau
-Có thể khai báo Hằng trong C++ và C# bang cú pháp:
=
Khác
Nhau
-Sử dụng từ khóa : < static
final> <tên
hằng>=
Giống
Nhau
Gồm hai loại kiểu dữ liệu:
-Kiểu dữ liệu cơ sở: là các loại kiểu dữ liệu đã được xác địng sẳn trong ngôn ngữ, không thể
thay đổi.
-Kiểu dữ liệu tham chiếu.
-Phân biệt chữ hoa và chữ thường.
Kiểu
Dữ
Liệu
Khác
Nhau
-Kiểu “long” có độ dài là 4
byte.
-Mảng là con trỏ.
-“class” và “struct” hầu như
giống nhau.
-Kiểu bool thực ra là số
integer.
-Mọi biến được truyền bằng
trị, nếu không phải là con trỏ
hoặc biến tham khảo.
-Kiểu “long” có độ dài là 8
byte.
-Mảng là đối tượng có thuộc
tính và phương thức.
-“struct” và “class” có sự khác
nhau.
-Kiểu Boolean chỉ chấp nhận
hai giá trị lá true hoặc
false,không thể là kiểu số
nguyên như C++.
-Không có sự chuyển đổi qua
lại giữa bool và các kiểu khác.
-Đối tượng được truyền bằng
tham biến, struct được truyền
tham trị, nếu không khai báo
“ref” hoặc “out”.
-Phải khai báo chiều dài của
mảng lúc khởi tạo 1 mảng.
-C# là ngôn ngữ mạnh về kiểu
dữ liệu, một ngôn ngữ mạnh về
kiểu dữ liệu là phải khai báo
kiểu của mỗi đối tượng khi tạo
và trình biên dịch sẽ giúp cho
người lập trình không bị lỗi khi
chỉ cho một loại kiểu dữ liệu có
thể được gán cho các kiểu dữ
liệu khác. Kiểu dữ liệu của một
đối tượng là một tín hiệu để
trình biên dịch nhận biết kích
thước của một đối tượng.
- C# phân tập hợp kiểu dữ liệu
này thành hai loại: Kiểu dữ liệu
giá trị (value) và kiểu dữ liệu
tham chiếu (reference).
-Kiểu “long” có độ dài là 8
byte.
-Không có kiểu số nguyên
không dấu như C++.
-Biểu thức điều kiện chỉ có
thể là Boolean, không thể là
toán học được.
-Các thành phần cơ bản chỉ
có thể tạo ra trên stack, mà
không dùng từ khóa new.
-Chiều dài môṭ mả ng đươc̣
thiết lâp̣ và cố điṇh khi
mảng được tạo lúc chạy
chương trình.
-Không thể mặc định đặt
trước các giá trị hằng bằng
cách sử dụng các từ khóa
typedef hay là các lớp,
phương thức như struct,
union…
- Việc kiểm tra cũng như
đòi hỏi về kiểu dữ liệu trong
java chặt chẽ hơn trong c++.
Kiểm
tra
Giống
Nhau
-Những đối tượng của một kiểu dữ liệu này có thể được chuyển sang những đối tượng của
một kiểu dữ liệu khác thông qua cơ chế chuyển đổi tường minh hay ngầm định. Chuyển đổi
ngầm định được thực hiện một cách tự động, trình biên dịch sẽ thực hiện công việc này. Còn
chuyển đổi tường minh diễn ra khi chúng ta gán ép một giá trị cho kiểu dữ liệu khác.
- Đổi kiểu tường minh: trong C++,Java,C# đều có chung dạng cú pháp
(type) biểu thức.
- Tuy nhiên, nếu chuyển đổi từ kiểu nhỏ sang kiểu lớn (không mất mát thông tin) và ngược lại,
từ kiểu lớn sang kiểu nhỏ (có khả năng mất mát thông tin).
kiểu,
đổi
kiểu
Khác
Nhau
- C# cho phép khả năng định
nghĩa chuyển đổi kiểu tự tạo
cho hai đối tượng bất kỳ. Hai
kiểu chuyển đổi là: chuyển đổi
tương đối và chuyển đổi tuyệt
đối.
-Cơ chế ép kiểu hoạt động
tốt hơn C++.Các kiểu dữ
liệu cơ bản như int, float,
long, char, boolean… không
thể ép kiểu vào các đối
tượng được.Java có các
phương thức và đặc biệt là
lớp”Wraper” dùng để
chuyển qua lại giữa các đối
tượng và kiểu dữ liệu có
bản.
- JAVA thường chỉ thân
thuộc với việc chuyển kiểu
giữa các kiểu primitive và
khi ép kiểu lên cao hơn cho
siêu lớp và thấp hơn cho các
lớp con.
Không
gian
tên
-Namespace không gian tên) là một gói những thực thể có thuộc tính và hành vi độc lập với bên
ngoài.
Khai báo một Namespace
namespace NamespaceName
{
// nơi chứa đựng tất cả class
}
Trong đó,
Namespace: là từ khóa khai báo một Namespace.
NamespaceName: là tên của một Namespace.
-Mọi class phải để trong namespace.
Giống
Nhau
Khác
Nhau
Quản
lý và
cấp
phát
bộ
nhớ
Giống
Nhau
-Để cấp phát bộ nhớ ta dùng từ khóa new.
Khác
Nhau
-C++ không có cơ chế dọn
rác, bộ nhớ không được trả lại
hệ thống cho đến khi process
kết thúc hoặc tự giải phóng
bằng phát biểu delete/free.
-Cơ chế dọn rác tự động.
-Để giải phóng tự động các đối
tượng không cần thiết C# cung
cấp cơ chế “Garbage
collection”.
(Garbage collection sử dụng cơ
chế đếm, mỗi đối tượng có một
số đếm các tham chiếu trỏ tới,
giải phóng các đối tượng khi số
-Kích thước của mảng phải
được xác định khi khai báo.
-Tham chiếu luôn cho phép
cấu trúc cũng như là các dãy
liên kết được khởi tạo một
cách dễ dàng trong java
không hoàn toàn cần đến
con trỏ. Java dễ dàng khởi
tạo các liên kết này mà
đếm =0, giải phóng các đối
tượng không còn hoạt động
nữa, kiểm tra tất cả các tham
chiếu, đánh dấu các đối tượng
còn được tham chiếu giải phóng
các đối tượng không được tham
chiếu).
không càn dùng tới con trỏ.
-Java dùng cơ chế “Garbage
collection” để giải phóng tự
động các đối tượng không
cần thiết.
Hàm
trùng
tên
-Hàm trùng tên hay còn gọi là hàm chồng (đè). Đây là một kỹ thuật cho phép sử dụng cùng một
tên gọi cho các hàm “giống nhau” nhưng xử lý trên các kiểu dữ liệu khác nhau hoặc trên số
lượng dữ liệu khác nhau.
Giống
Nhau
-C++, C#, Java cho phép định nghĩa nhiều hàm trùng tên, với điều kiện số lượng các tham đối
trong hàm là khác nhau, hoặc kiểu của tham đối trong hàm là khác nhau.
-C++, C#, Java phân biệt hàm này với hàm khác dựa vào số tham đối và kiểu của các tham đối,
bất chấp tên hàm và kiểu của kết quả trả về.
-Khi không có hàm nào có bộ đối cùng kiểu với bộ tham số, thì trình biên dịch sẽ chọn hàm nào
có bộ đối gần với phép chuyển kiểu dễ dàng nhất.
Khác
Nhau
Nhập
Xuất
Giống
Nhau -in–out với màn hình+bàn phím.
-in-out với file.
Khác
Nhau
-C++ phải khai báo file
header.
-C++ sử dụng bộ nhập xuất
trong header: iostream.h
+xuất:cout<<biểu
thức<<…<<biểu thức;
+nhập:cin>>biến>>…>>biến;
-C# sử dụng các hàm của
Console để nhập xuất.
-C# dùng WriteLine() của lớp
Console để xuất ra màn hình
dòng lệnh.
-C# dùng ReadLine() của lớp
Console để nhập giá trị vào.
-Tất cả các chương trình
viết bằng java luôn tự động
import gói java.lang. Gói
này có địng nghĩa lớp
System, bao gồm một số đặc
điểm của môi trường run-
time, nó có ba biến luồng
được định nghĩa trước là
in,out và err, các biến này là
các fields được khai báo
static trong lớp system.
-System.out : luồng xuất
chuẩn, mặc định là console.
System.out là một đối tượng
kiểu PrintStream. Để xuất ra
màn hình dòng lệnh ta dùng
System.out.print();
-System.in : luồng nhập
chuẩn, mặc định là bàn
phím. System.in là một đối
tượng kiểu InputStream. Để
nhập giá trị vào ta dùng:
System.in.read();
-System.err: luồng lỗi
chuẩn, mặc định cũng là
console. System.out là một
đối tượng kiểu PrintStream
giống System.out.
NHẬN XÉT: C# và Java là những ngôn ngữ kế thừa từ C++ nên chúng có những điểm giống
nhau nhất định .C# và Java có những cải tiến giúp cho người lập trình thao tác một cách dễ dàng.Ngôn
ngữ Java và C# đều là ngôn ngữ hướng đối tượng, chúng hỗ trợ mô hình hướng đối tượng khá tốt với mức
độ gần như nhau. Mỗi ngôn ngữ lập trình đều có những thế mạnh riêng. Tùy thuộc môi trường hoạt động
của ứng dụng mà chọn ngôn ngữ nào phù hợp hơn. các ứng dụng chạy trên nền Windows thì VC# rất phù
hợp vì môi trường lập trình, thư viện lập trình của nó rất mạnh và thân thiện , ngoài ra ứng dụng VC# giao
tiếp với các ứng dụng khác dễ dàng hơn nhiều so với ứng dụng viết bằng Java. Ứng dụng VC# chạy hiệu
quả hơn nhiều so với ứng dụng Java cùng chức năng.
File đính kèm:
Trình bày điểm giống nhau và khác nhau của C++, C#, Java.pdf

