Showing posts with label Lập trình JAVA. Show all posts
Showing posts with label Lập trình JAVA. Show all posts

Saturday, September 20, 2014

Bài 3. KIỂU DỮ LIỆU VÀ BIẾN

KIỂU DỮ LIỆU VÀ BIẾN
1. Các kiểu dữ liệu trong Java
Ta có thể chia các kiểu dữ liệu cơ bản trong Java thành 2 nhóm chính:
Kiểu dữ liệu nguyên thủy:
Cú pháp:
  • Khai báo biến: <Kiểu dữ liệu> tên_biến;
  • Khai báo biến và khởi tạo: <Kiểu dữ liệu> tên_biến = giá trị;
Kiểu dữ liệu tham chiếu/đối tượng:
Cú pháp:
  • Khai báo biến:                      <Kiểu dữ liệu> tên_biến;
  • Khai báo biến và khởi tạo: <Kiểu dữ liệu> tên_biến = new hàm_dựng();
a. Kiểu dữ liệu nguyên thủy:
  • Kiểu byte: Ví dụ: byte a;byte a = 100;
  • Kiểu short: Ví dụ: short a;short a = 100;
  • Kiểu int: Ví dụ: int a;int a = 100;
  • Kiểu long: Ví dụ: long a; long a = 100L;
  • Kiểu float: Ví dụ: float a;float a = 100.0f;
  • Kiểu double: Ví dụ:double a;double = 100;
  • Kiểu boolean: Ví dụ:byte a;byte a = true;
  • Kiểu char: Ví dụ: byte a; byte a = ‘A’;
b. Kiểu dữ liệu tham chiếu/đối tượng:
Ví dụ:
Animal animal;
Animal animal = new Animal();
2. Các loại biến trong Java
Có 3 loại biến:
  • Biến địa phương (Local variables)
  • Biến thể hiện (Instance variables)
  • Biến của lớp/biến tĩnh (Class/Static variables)
a. Biến địa phương:
  • Biến địa phương được khai báo trong phương thức, hàm dựng, hoặc là khối lệnh.
  • Biến địa phương được tạo khi các phương thức, hàm dựng, hoặc là khối lênh được gọi và biến sẽ bị hủy khi thoát khỏi phương thức, hàm dựng, hoặc là khối lệnh.
  • Không thể sử dụng các Bổ từ truy cập (Access Modifiers) cho các biến địa phương.
  • Biến địa phương chỉ có tầm vực hoạt động (tồn tại) trong phương thức, hàm dựng hoặc các khối lệnh.
  • Biến địa phương được lưu trữ ngầm ở tầng stack.
  • Không có giá trị khởi tạo mặc định cho các biến địa phương nên các biến địa phương phải được gán giá trị trước khi dùng.
Ví dụ: Ở ví dụ này, age là biến địa phương. Biến này được khai báo bên trong phương thức pupAge() và tầm vực của nó chỉ ở trong phương thức mà thôi.
Kết quả là:
Puppy age is: 7
Ví dụ: Ví dụ sau đây cho thấy nếu ta không khởi tạo cho biến địa phương thì trình biên dịch sẽ báo lỗi.
Khi biên dịch, lỗi sau sẽ xuất hiện:
Test.java:4:variable number might not have been initialized
age = age + 7;
         ^
1 error
b. Biến thể hiện:
  • Biến thể hiện được cài khai báo bên trong lớp nhưng bên ngoài bất kỳ phương thức, hàm dựng hay khối lệnh nào.
  • Một đối tượng được lưu trữ trên heap.
  • Biến thể hiện được khởi tạo khi một đối tượng được khởi tạo với từ khóa “new” và bị hủy khi một đối tượng bị hủy.
  • Một biến thể hiện lưu trữ giá trị mà được tham chiếu bởi nhiều phương thức, hàm dựng hay khối lệnh.
  • Biến thể hiện được khai báo bên trong lớp trước khi hoặc sau khi được dùng.
  • Bổ từ truy cập (Access modifiers) có thể được dùng khi khai báo biến thể hiện.
  • Biến thể hiện khả dụng đối với tất cả các phương thức, hàm dựng hoặc là khối lệnh trong lớp.
  • Biến thể hiện có giá trị mặc định. Nếu là kiểu số thì giá trị mặc định là 0, kiểu Boolean là false, và đối tượng là null. Giá trị có thể khởi tạo khi khai báo hoặc ta thường khởi tạo trong hàm dựng.
  • Biến thể hiện có thể được truy cập trực tiếp bằng cách gọi chúng bên trong lớp.
Ví dụ:
Kết quả là:
name  : Ransika
salary :1000.0
c. Biến của lớp/biến tĩnh:
  • Biến của lớp còn được gọi là biến tĩnh, chúng được khai báo với từ khóa static trong lớp, nhưng bên ngoài các phương thức, hàm dựng hoặc các khối lệnh.
  • Chỉ có một bản sao (copy) của mỗi biến tĩnh trong một lớp, bất kể bao nhiêu đối tượng được tạo ra từ nó.
  • Biến tĩnh ít được sử dụng, nó thường được sử dụng để khai báo hằng số (constant). Hằng số là các biến được khai báo là: public / private final static… Biến hằng số không bao giờ thay đổi giá trị của nó khác với giá trị khởi tạo ban đầu.
  • Biến tĩnh được lưu trữ trong bộ nhớ tĩnh.
  • Biến tĩnh được tạo ra khi chương trình bắt đầu và bị phá hủy khi chương trình kết thúc.
  • Độ khả dụng tương tự như các biến thể hiện. Tuy nhiên, các biến tĩnh thường được khai báo là public để ta có thể dùng chúng ở những lớp khác.
  • Giá trị mặc định là tương tự như các biến thể hiện. Đối với các số giá trị mặc định là 0, đối với boolean thì là false, và với đối tượng là null. Giá trị có thể được chỉ định khi khai báo hoặc trong các hàm dựng. Ngoài ra các giá trị có thể được chỉ định trong khối khởi tạo tĩnh (bạn sẽ gặp sau này).
  • Biến tĩnh có thể được truy cập bằng cách gọi với tên lớp. Cú pháp:  Tên_lớp.Tên_biến_tĩnh.
  • Khi khai báo biến tĩnh là public static final, thì bạn nên đặt tên biến (hằng số) là CHỮ_HOA.
Ví dụ:
Kết quả là:
Development average salary:1000
Chú ý: Nếu biến được truy cập từ ngoài lớp thì ta có thể truy cập là Employee.DEPARTMENT
Tiếp theo là gì?
Bạn đã sử dụng Bổ từ truy cập (Access modifiers) (public & private) trong bài học này. Bài tiếp theo sẽ giải thích cho bạn chi tiết hơn về Bổ từ (Access Modifiers và Non-Access Modifiers).

Thursday, September 18, 2014

Bài 1. Bước đầu với JAVA

CÚ PHÁP CƠ BẢN
Một chương trình java có thể được định nghĩa như là một tập hợp các đối tượng giao tiếp thông qua cách gọi những phương thức. Bây giờ chúng ta hãy dành một ít thời gian xem xét những gì lớp (class), đối tượng (object), phương thức (method) và thuộc tính (property):
  • Đối tượng - đối tượng có trạng thái và hành vi. Ví dụ: Một con chó có trạng thái màu sắc, tên, giống cũng như hành vi - vẫy đuôi, sủa, ăn, uống. Một đối tượng là một thể hiện của một lớp.
  • Lớp - Một lớp có thể được định nghĩa như là một mẫu mô tả các trạng thái, hành vi của các đối tượng mà các đối tượng này là thể hiện của lớp đó.
  • Thuộc tính - Một thuộc tính cơ bản là một trạng thái. Một lớp có thể có nhiều thuộc tính.
  • Phương thức - Một phương thức cơ bản là một hành vi. Một lớp có thể có nhiều phương thức.
Chương trình Java đầu tiên:
Chúng ta hãy xem một đoạn mã đơn giản mà sẽ in dòng “Hello World”:
Làm thế nào để lưu các tập tin, biên dịch và chạy chương trình? Hoặc các bạn đã quen với một công cụ phát triển Java như là Eclipse, Netbeans, JBuilder,…  Hoặc hãy làm theo các bước dưới đây:
  1. Mở notepad và thêm mã như ở trên.
  2. Lưu tên tập tin là: MyFirstJavaProgram.java.
  3. Mở một cửa sổ lệnh và chuyển đến thư mục mà bạn đã lưu tập tin trên. Giả sử là C:\.
  4. Gõ “javac MyFirstJavaProgram.java” và nhấn Enter để biên dịch mã của bạn. Nếu không có lỗi trong mã của bạn dấu nhắc lệnh sẽ đưa bạn đến dòng kế tiếp (Giả sử: biến môi trường đã được thiết lập).
  5. Bây giờ gõ "java MyFirstJavaProgram” để chạy chương trình của bạn.
  6. Bạn sẽ có thể nhìn thấy “Hello World” in trên cửa sổ.
C:\> javac MyFirstJavaProgram.java
C:\> java MyFirstJavaProgram
Hello World
Cú pháp cơ bản:
Để viết code chương trình Java, cần lưu ý những điểm sau đây.
  • Phân biệt chữ HOA, chữ thường.
  • Tên lớp – Khuyến cáo:  Đối với tất cả các tên lớp, chữ cái đầu tiên của mỗi từ phải viết hoa, các ký tự khác viết thường. Ví dụ lớp MyFirstJavaClass.
  • Tên Phương thức - Tất cả các tên phương thức nên bắt đầu với một chữ viết thường, sau đó chữ cái đầu tiên mỗi từ bên trong nên được viết hoa. Ví dụ public void myMethodName().
  • Tên tập tin - Tên của tập tin chương trình chính xác phải phù hợp với tên lớp. Ví dụ: Giả sử “MyFirstJavaProgram” là tên lớp. Sau đó, tập tin sẽ được lưu là “MyFirstJavaProgram.java”.
  • public static void main (String args []) - xử lý chương trình java bắt đầu từ phương thức main() - là một phần bắt buộc của tất cả các chương trình java .
Định danh Java (Java Identifiers):
Tất cả các thành phần java đòi hỏi tên. Tên được sử dụng cho các lớp, các thuộc tính và các phương thức được gọi là định danh.
Trong java có một số điểm cần nhớ về định danh. Chúng như sau:
  • Tất cả các định danh nên bắt đầu với một chữ cái (A đến Z hoặc a đến z), ký hiệu tiền tệ ($) hoặc dấu gạch dưới (_).
  • Một từ khóa không thể được sử dụng như một định danh.
  • Quan trọng nhất là định danh là phân biệt chữ HOA, chữ thường.
  • Ví dụ về các định danh hợp lệ: age, $salary, _value, __ 1_valu.
  • Ví dụ về các định danh không hợp lệ: 123abc, -salary
Java Modifiers:
Có hai loại modifiers:
  • Modifiers truy cập: default, public, protected, private.
  • Modifiers không truy cập: final, abstract, strictfp
Chúng ta sẽ xem xét chi tiết hơn về các biến trong phần tiếp theo.
Biến Java (Java Variables):
Chúng ta sẽ thấy loại sau đây của các biến trong Java:
  • Các biến địa phương (local)
  • Biến lớp (biến tĩnh - static)
  • Các biến thể hiện (biến không tĩnh – non static)
Mảng Java (Java Arrays):
Mảng là đối tượng lưu trữ nhiều biến cùng loại. Tuy nhiên một mảng chính nó là một đối tượng trên heap. Chúng ta sẽ xem xét làm thế nào để khai báo và khởi tạo mảng trong các bài sắp tới.
Kiểu đếm được trong Java (Java Enums):
Kiểu đếm được giới thiệu trong java 5.0. Kiểu đếm được hạn chế một biến chỉ có thể nhận giá trị trong một vài giá trị được xác định trước.
Với việc sử dụng Kiểu đếm được có thể giảm số lượng các lỗi trong chương trình của bạn.
Ví dụ, nếu chúng ta xem xét một ứng dụng cho một cửa hàng nước trái cây tươi, ta có có thể hạn chế kích thước của ly nước là nhỏ, vừa và lớn. Điều này sẽ đảm bảo rằng chương trình sẽ không cho phép bất cứ ai đặt bất kỳ ly nước trái cây nào mà có kích thước khác với nhỏ, vừa và lớn.
Ví dụ:
Ví dụ ở trên sẽ cho ra kết quả như sau:
Size: Meduim
Lưu ý:Kiểu đếm được có thể được khai báo riêng hoặc trong một lớp. Phương thức, thuộc tính, các hàm khởi dựng cũng có thể được định nghĩa bên trong Kiểu đếm được.
Từ khóa Java (Java Keywords):
Danh sách sau đây cho thấy các từ dành riêng trong Java. Những từ dành riêng không được sử dụng để đặt tên cho bất kỳ định danh nào.
Chú thích ​​trong Java (Comments in Java):
Java hỗ trợ chú thích trên một dòng và nhiều dòng rất giống với C và C++. Tất cả các ký tự trong bất kỳ chú thích được bỏ qua bởi trình biên dịch Java.
Sử dụng dòng trống:
Một dòng chỉ chứa khoảng trắng, có thể có chú thích, được biết đến như một dòng trống, và java hoàn toàn bỏ qua nó.
Thừa kế (Inheritance):
Trong java các lớp có thể được bắt nguồn từ một lớp khác. Về cơ bản nếu bạn cần tạo ra một lớp mới và bạn đã có một lớp chứa một số mã mà bạn muốn, sau đó bạn có thể tạo ra một lớp mới có các mã từ lớp mà bạn đã có.
Các lớp được thừa kế được gọi là super-class, các lớp thừa kế thì được gọi là sub-class.
Giao diện (Interface):
Trong ngôn ngữ java một giao diện có thể được giải thích như là một hợp đồng giữa các đối tượng mà trong đó mô tả rõ làm thế nào để chúng giao tiếp với nhau. Giao diện đóng một vai trò quan trọng khi nói đến khái niệm về thừa kế.
Một giao diện xác định các phương thức, mà một lớp thực thi nó (lớp con) nên sử dụng. Nhưng việc thực hiện của phương thức này là hoàn toàn nằm trong các lớp con.
Tiếp theo là gì?
Bài tiếp theo giải thích về các đối tượng và các lớp trong lập trình java. Sau đó bạn sẽ có được một hình ảnh rõ ràng về các đối tượng và các lớp học trong java là gì.
Kham khảo từ nguồn: http://tuhocanninhmang.com/