Saturday, December 26, 2015

So Sánh Sự Khác Nhau Giữa Abstract và Interface

Abstract class (Lớp trừu tượng) có thể hiểu là  một class cha cho tất cả các Class có cùng bản chất. Do đó mỗi lớp con chỉ có thể kế thừa từ một lớp trừu tượng. Abstract class không cho phép tạo các thể hiện ( instance), vì vậy bạn không thể khởi tạo một đối tượng trực tiếp từ một Abstract class.

Interface có thể được xem như một mặt nạ cho tất cả các Class cùng cách thức hoạt động nhưng có thể khác nhau về bản chất. Từ đó lớp con có thể kế thừa từ nhiều Interface để bổ sung đầy đủ cách thức hoạt động của mình (đa kế thừa - Multiple inheritance).
1. Điểm chung:
- Cả hai đều dùng để khai báo các phương thức trừu tượng
- Cả hai đều không thể khởi tạo được

2. Điểm khác:
Về cơ bản là Abstract class có thể bao gồm các phương thức trừu tượng từ 0%-100%, Interface thì tất cả các phương thức đều là trừu tượng.

1) 
Abstract class can have abstract and non-abstract methods.
Interface can have only abstract methods.
2) 
Abstract class doesn't support multiple inheritance.
Interface supports multiple inheritance.
3) 
Abstract class can have final, non-final, static and non-static variables.
Interface has only static and final variables.
4) 
Abstract class can have static methods, main method and constructor.
Interface can't have static methods, main method or constructor.
5) 
Abstract class can provide the implementation of interface.
Interface can't provide the implementation of abstract class.
6) 
The abstract keyword is used to declare abstract class.
The interface keyword is used to declare interface.

Ví dụ:
- Abstract class ConVat có các lớp con Chim, Ca.
- Abstract class MayMoc có các lớp con MayBay, Thuyen
- Interface: iBay, iBoi, iChay.
=> MayBay, Chim sẽ có cùng Interface là iBay. Rõ ràng mặc dù MayBay, Chim có cùng cách thức hoạt động là bay nhưng chúng khác nhau về bản chất.
=> MayBay cũng có interface là iChay nhưng Chim không thể nào kế thừa thêm abstract class MayMoc

Nhìn chung cả 2 đều là "bản thiết kế" cho các lớp dẫn xuất, do đó chúng chỉ chứa các khai báo Properties và Method mà không quan tâm bên trong thực hiện những gì. Nhưng cụ thể thì Abstract Class là "bản thiết kế" cho Class còn Interface là "bản thiết kế" cho Method.



Wednesday, December 23, 2015

[Installation Tutorial] Hướng Dẫn Cài Đặt Eclipse, Netbeans IDE Công Cụ Lập Trình

1. Eclipse Installation


Tải về Eclipse
Tốt nhất để tránh virut bạn hãy down bộ cài Eclipse từ  trang chủ phát hành chuẩn của Eclipse tại địa chỉ sau:
Để cài đặt bạn cần một công cụ để giải nén file zip download được từ bước bên trên. Bạn có thể dùng các công cụ phổ biến sau:
Chạy Eclipse
-  Nơi bạn giải nén ra có file \eclipse\eclipse.exe, hãy chạy file này để khởi chạy Eclipse
Workspaces là đường dẫn chỉ đến thư mục lưu trữ source code của bạn

Những thành phần của Eclipse


  • Views
  • Editors (all appear in one editor area)
  • Menu Bar
  • Toolbar

Phím tắt

Eclipse cung cấp cho bạn hàng loạt các phím tắt, để xem chi tiết các phím tắt bạn làm như sau, hoặc bạn nhấn Ctrl + Shift + L để hiển thị tất cả các phím tắt mà Eclipse cung cấp:


2. Netbeans Installation
- Để cài Netbean bạn hãy download bản phát hành mới nhất của Netbeans tại trang chủ: https://netbeans.org/downloads/index.html
- Sau khi tải về file .exe bạn chạy file này để tiến hành cài đặt
- Các bước cài đặt được được hướng dẫn trong quá trình cài đặt vì vậy không có khó khăn gì

Chúc các bạn thành công !!!

Bài 2: Cài đặt các công cụ - Chương trình Hello World

1. Cài đặt các công cụ
Trước tiên để có máy ảo Java bạn cần cài JDK
http://javadevexpress.blogspot.com/2014/01/huong-dan-cai-at-moi-truong-java.html

2. Cài công cụ lập trình Java
- Về công cụ soạn thảo bạn có thể dùng nhiều chương trình như:JCreater, JBuilder, Eclipse, Netbeans, hoặc bạn cũng có thể dùng Notepad thường, Notepad ++ ... vv
- Bản chất việc cài công cụ Eclipse hay Netbeans nhằm giúp cho việc viết mã lập trình và việc viết chính xác các method, cú pháp được dễ dàng hơn.

Cài đặt công cụ như cài những phần mềm bình thường, nếu bạn chữ rõ có thể tham khảo bài hướng dẫn cài đặt công cụ tại đây: http://javadevexpress.blogspot.com/2015/12/installation-tutorial-huong-dan-cai-at.html

Chú ý: Bạn hãy đảm bảo cài JDK và JRE thành công trước khi cài công cụ lập trình nhé

3. Chương trình hello world

How do I write a simple "Hello World" program?
To write a "Hello World" program follow these steps:
  1. Start Eclipse.
  2. Create a new Java Project:
    1. File->New->Project.
    2. Select "Java" in the category list.
    3. Select "Java Project" in the project list. Click "Next".
    4. Enter a project name into the Project name field, for example, "Hello World Project".
    5. Click "Finish"--It will ask you if you want the Java perspective to open. (You do.)
  3. Create a new Java class:
    1. Click the "Create a Java Class" button in the toolbar. (This is the icon below "Run" and "Window" with a tooltip that says "New Java Class.")
    2. Enter "HelloWorld" into the Name field.
    3. Click the checkbox indicating that you would like Eclipse to create a "public static void main(String[] args)" method.
    4. Click "Finish".
  4. A Java editor for HelloWorld.java will open. In the main method enter the following line.
         System.out.println("Hello World");
  5. Save using ctrl-s. This automatically compiles HelloWorld.java.
  6. Click the "Run" button in the toolbar (looks like a little man running).
  7. You will be prompted to create a Launch configuration. Select "Java Application" and click "New".
  8. Click "Run" to run the Hello World program. The console will open and display "Hello World".
Bước 1:

Bước 2:

Bước 3:

Bước 4:

Bước 5:

Bước 6:

Bài 1: Làm quen với ngôn ngữ lập trình java

1.Lịch sử phát triển

Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991. Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này), họ dự định ngôn ngữ đó thay cho C++, nhưng các tính năng giống Objective C. Không nên lẫn lộn Java với JavaScript, hai ngôn ngữ đó chỉ giống tên và loại cú pháp như C. Công ty Sun Microsystems đang giữ bản quyền và phát triển Java thường xuyên. Tháng 04/2011, công ty Sun Microsystems tiếp tục cho ra bản JDK 1.6.24.

Java được tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA)). Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó. Môi trường thực thi của Sun Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD & Windows. Ngoài ra, một số công ty, tổ chức cũng như cá nhân khác cũng phát triển môi trường thực thi Java cho những hệ điều hành khác như BEA, IBM, HP.... Trong đó đáng nói đến nhất là IBM Java Platform hỗ trợ Windows, Linux, AIX & z/OS.

Java được sử dụng chủ yếu trên môi trường NetBeans và Oracle. Sau khi Oracle mua lại công ty Sun Microsystems năm 2009-2010, Oracle đã mô tả họ là "người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch".[12]


2.Mục tiêu phát triển java

Có 5 mục tiêu chính trong việc xây dựng ngôn ngữ Java:
  1. Đơn giản, hướng đối tượng và quen thuộc.
  2. Mạnh mẽ và an toàn.
  3. Kiến trúc trung lập và di động.
  4. Thực thi với hiệu suất cao.
  5. Dịch ra bytecode, phân luồng và năng động.

3.Đặc trưng của java
- Đơn giản
- Tính hướng đối tượng
- Độc lập về phần cứng và hệ điều hành
- Bảo mật
- Phân tán
- Đa luồng
- Động
- Cộng đồng mạnh mẽ
- Java thường chạy nhanh hơn các ngôn ngữ thông dịch (Python, Perl, PHP ...)
Chú ý: ở nhiều bài viết ở các trang mạng khác viết rằng Java chạy chậm hơn các ngôn ngữ Python, Perl, PHP là không đúng, ngược lại java chạy nhanh hơn gấp nhiều lần các ngôn ngữ thông dịch, chạy nhanh tương đương so với C#

Java (đọc như "Gia-va") là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp (class). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy.

Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C và C++, nhưng sau này nhờ công nghệ "biên dịch tại chỗ" - Just in time compilation, khoảng cách này đã được thu hẹp, và trong một số trường hợp đặc biệt Java có thể chạy nhanh hơn. Java chạy nhanh hơn những ngôn ngữ thông dịch như Python, Perl, PHP gấp nhiều lần. Java chạy tương đương so với C#, một ngôn ngữ khá tương đồng về mặt cú pháp và quá trình dịch/chạy.

Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn.

Trong Java, hiện tượng rò rỉ bộ nhớ hầu như không xảy ra do bộ nhớ được quản lí bởi Java Virtual Machine (JVM) bằng cách tự động "dọn dẹp rác". Người lập trình không phải quan tâm đến việc cấp phát và xóa bộ nhớ như C, C++. Tuy nhiên khi sở dụng những tài nguyên mạng, file IO, database (nằm ngoài kiểm soát của JVM) mà người lập trình không đóng (close) các streams thì rò rỉ dữ liệu vẫn có thể xảy ra.

4.Học java có thể làm được j ?
- Hiện nay theo thống kê có khoản 3 tỷ thiết bị đang chạy java, một số ứng dụng java phổ biến như sau:

  • Desktop Applications such as acrobat reader, media player, antivirus etc.
  • Web Applications such as irctc.co.in, javatpoint.com etc.
  • Enterprise Applications such as banking applications.
  • Mobile
  • Embedded System
  • Smart Card
  • Robotics
  • Games etc.


=> Như vậy bạn đã biết mức độ phổ biến của Java chưa? ở Vietnam làm ở các cty phần mềm chủ yếu tập trung vào sản xuất các mảng sau:
- Viết lên ứng dụng kinh doanh, tài chính, thương mại, hệ thống ngân hàng ... vv
- Phát triển các ứng dụng hoặc game java (JME) trên các dòng điện thoại samsung, nokia đời thấp, hiện nay do công nghệ phát triển => nên tảng JME đã không còn phát triển mạnh như những năm 2000
- Java là ngôn ngữ được lựa chọn để phát triển các ứng dụng hoặc game android
- Ngoài ra Java còn rất nhiều mảng ứng dụng như lập trình nhúng vào các thiết bị công nghệ, lập trình điều khiển ...vv

[Java Core] Tổng hợp Lý Thuyết và Thực Hành Java Cơ Bản

Tổng hợp các bài viết về Java Core
Người ta thường học từ lý thuyết tới thực hành, nhưng những gì mình học được và phương pháp tiếp cận mình cảm thấy nhanh và hiệu quả là từ thực hành ta đi kiểm nghiệm lý thuyết.

Bài 1. Java là gì? Tổng quan môi trường phát triển ứng dụng Java
Bài 2. Hướng dẫn cài đặt môi trường phát triển JDK, JRE
Bài 3: Làm quen với ngôn ngữ lập trình java
Bài 4: Cài đặt các công cụ - Chương trình Hello World

Thursday, December 10, 2015

Nhạc Tĩnh Tâm, An Nhiên Tự Tại

Sống không giận, không hờn, không oán trách.
Sống mỉm cười, với thử thách chông gai.
Sống vươn lên, theo kịp ánh ban mai.
Sống chan hoà, với những người chung sống.
Sống là động, nhưng lòng luôn bất động.
Sống là thương, nhưng lòng chẳng vấn vương.
Sống yên vui, danh lợi mãi coi thường.
Tâm bất biến, giữa dòng đời vạn biến.


Nhịn đời để tấm thân yên
Nhịn sự hơn thua khỏi lụy phiền
Nhịn kẻ hung hăng lòng độ lượng
Nhịn lòng háo thắng cõi thần tiên
Nhịn cha nhịn mẹ con hiếu thảo
Nhịn vợ nhịn chồng gia đình đầm ấm
Nhịn anh nhịn chị - anh chị hòa
Nhịn xóm láng giềng nghĩa tâm giao
Nhịn ăn nhịn ngủ đãi khách lỡ đường .