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.

pdf5 trang | Chuyên mục: Lập Trình Hướng Đối Tượng | Chia sẻ: dkS00TYs | Lượt xem: 3332 | Lượt tải: 3download
Tóm tắt nội dung Trình bày điểm giống nhau và khác nhau của C++, C#, Java, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trê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:

  • pdfTrình bày điểm giống nhau và khác nhau của C++, C#, Java.pdf