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