Academia.eduAcademia.edu
NHẬP MÔN JAVA CHƯƠNG 2 JAVA CƠ BẢN PHẦN 1 CẤU TRÚC MỘT CHƯƠNG TRÌNH JAVA CƠ BẢN KIẾN TRÚC CỦA JAVA • Java Platform • Java Virtual Machine (Java VM) • Java Application Programming Interface (Java API) myProgram.java Java API Java VM Hardware-Platform Mã nguồn Java Platform KIẾN TRÚC CỦA JAVA • Thư viện lớp Java: bộ JDK bao gồm rất nhiều lớp chuẩn đã được xây dựng sẵn. • Lập trình viên thường sử dụng các lớp chuẩn để phát triển ứng dụng. • Các gói chuẩn của Java: • • • • • • • • • • java.lang java.applet java.awt java.io java.util java.net java.awt.event java.rmi java.security java.sql CÁC BƯỚC PHÁT TRIỂN • Các bước phát triển một chương trình bằng Java: Hello.java java Hello 01001011 public class Hello { public static … Thông dịch } ----------------------- Biên dịch ----------------------------------------- javac Hello.java Hello.class (bytecode) ` CẤU TRÚC MỘT CHƯƠNG TRÌNH CƠ BẢN 1 // Tên file : Hello.java 2 /* Tác giả : Barak Obama*/ Tên lớp chứa hàm main phải giống tên file 3 4. 5 public class Hello { 6 // Phương thức main, điểm bắt đầu của chương trình 7 8 public static void main( String args[ ] ) { 9 System.out.println( “Hello World" ); 10 11 12 13 } Khai // Kết báo thúc phương thức main lớp Mỗi CT phải có ít nhất một } // khai Kết thúc báolớp lớpHello Hiển thị dãy ký tự ra màn hình Điểm bắt đầu và kết thúc của lớp Dấu hiệu chú thích => Làm cho chương trình dễ hiểu hơn. Trình biên dịch sẽ bỏ qua những dòng có dấu chú thích Phương thức main() sẽ được gọi đầu tiên. Mỗi CT thực thi phải có một phương thức main() Các câu lệnh phải kết thúc bằng dấu chấm phẩy PHƯƠNG THỨC MAIN • • • Phương thức main(): là điểm bắt đầu thực thi một ứng dụng. Mỗi ứng dụng Java phải chứa một phương thức main có dạng như sau: public static void main(String[] args) Phương thức main chứa ba bổ từ đặc tả sau: - public: chỉ ra rằng phương thức main có thể được gọi bởi bất kỳ đối tượng nào. - static: chỉ ra rằng phương thức main là một phương thức lớp. - void: chỉ ra rằng phương thức main sẽ không trả về bất kỳ một giá trị nào. CHÚ THÍCH TRONG JAVA • Ngôn ngữ Java hỗ trợ ba kiểu chú thích sau: /* text */ // text /** documentation */ công cụ javadoc trong bộ JDK sử dụng chú thích này để chuẩn bị cho việc tự động phát sinh tài liệu. - Dấu mở và đóng ngoặc nhọn “{“ và “}” là bắt đầu và kết thúc một khối lệnh. - Dấu chấm phẩy “;” để kết thúc một dòng lệnh. - Java được tổ chức theo lớp (class). Các lệnh và các hàm (kể cả hàm main) phải thuộc một lớp nào đó, chúng không được đứng bên ngoài của lớp. BIÊN DỊCH VÀ THỰC THI • Biên dịch chương trình • Vào chế độ Console của Windows • Gõ câu lệnh javac Hello.java • Nếu không có thông báo lỗi, file Hello.class sẽ được tạo ra • Thực thi chương trình • Gõ câu lệnh java Hello (không cần .class) PHẦN 2 HẰNG, BIẾN, KIỂU DỮ LIỆU TOÁN TỬ ĐỊNH DANH (identifier) • Định danh là dùng biểu diễn tên của biến, của phương thức, của lớp. • Trong Java, định danh có thể sử dụng ký tự chữ, ký tự số và ký tự dấu. • Ký tự đầu tiên phải là ký tự chữ, dấu gạch dưới (_), hoặc dấu dollar ($). • Có sự phân biệt giữa ký tự chữ hoa và chữ thường. Ví dụ: Hello, _prime, var8, tvLang TỪ KHÓA (keyword) • Từ khóa cho các kiểu dữ liệu cơ bản : byte, short, int, long, float, double, char, boolean. • Từ khóa cho phát biểu lặp: do, while, for, break, continue. • Từ khóa cho phát biểu rẽ nhánh: if, else, switch, case, default, break. • Từ khóa đặc tả đặc tính một method: private, public, protected, final, static, abstract, synchronized. • Hằng (literal): true, false, null. • Từ khóa liên quan đến method: return, void. • Từ khoá liên quan đến package: package, import. • Từ khóa cho việc quản lý lỗi: try, catch, finally, throw, throws. • Từ khóa liên quan đến đối tượng: new, extends, implements, class, instanceof, this, super. TỪ KHÓA (keyword) TỪ KHÓA (keyword) TỪ KHÓA (keyword) TỪ KHÓA (keyword) TỪ KHÓA (keyword) TỪ KHÓA (keyword) TỪ KHÓA (keyword) BIẾN (variable) • Biến là vùng nhớ dùng để lưu trữ các giá trị của chương trình. • Mỗi biến gắn liền với một kiểu dữ liệu và một định danh duy nhất gọi là tên biến. • Tên biến thông thường là một chuỗi các ký tự (Unicode), ký số. • Tên biến phải bắt đầu bằng một chữ cái, một dấu gạch dưới hay dấu dollar. • Tên biến không được trùng với các từ khóa (xem lại các từ khóa trong java). • Tên biến không có khoảng trắng ở giữa tên. • Trong java, biến có thể được khai báo ở bất kỳ nơi đâu trong chương trình. BIẾN (variable) • Cách khai báo <kiểu_dữ_liệu> <tên_biến>; <kiểu_dữ_liệu> <tên_biến> = <giá_trị>; • Gán giá trị cho biến <tên_biến> = <giá_trị>; • Biến công cộng (toàn cục): là biến có thể truy xuất ở khắp nơi trong chương trình, thường được khai báo dùng từ khóa public, hoặc đặt chúng trong một class. • Biến cục bộ: là biến chỉ có thể truy xuất trong khối lệnh nó khai báo KIỂU DỮ LIỆU (data type) Kiểu dữ liệu: • Kiểu dữ liệu cơ sở (Primitive data type) • Kiểu dữ liệu tham chiếu hay dẫn xuất (reference data type) • Kiểu dữ liệu cơ sở của Java bao gồm các nhóm sau: số nguyên, số thực, ký tự, kiểu luận lý (logic) • Kiểu dữ liệu tham chiếu là các kiểu dữ liệu đối tượng. Ví dụ như: String, Byte, Character, Double, Boolean, Integer, Long, Short, Font,… và các lớp do người dùng định nghĩa. KIỂU DỮ LIỆU CƠ SỞ (primitive type) Kiểu cơ sở Kiểu luận lý Kiểu ký tự Kiểu số kiểu nguyên boolean kiểu thực char byte short int long float double KIỂU DỮ LIỆU CƠ SỞ • Kiểu số nguyên Kiểu Kích thước Khoảng giá trị byte 8 bits -256…255 short 16 bits -32768…32767 int 32 bits -232…232 – 1 long 64 bits -264…264 – 1 • Kiểu số thực Kiểu Kích thước Khoảng giá trị float 32 bits -3.4e38…3.4e38 double 64 bits -1.7e308…1.7e308 KIỂU DỮ LIỆU CƠ SỞ • Kiểu boolean: Nhận giá trị true hoặc false • Kiểu char: Kiểu ký tự theo chuẩn Unicode Một số hằng ký tự: Ký tự \b \t \n \r \” \’ \\ \f \uxxxx Ý nghĩa Xóa lùi (BackSpace) Tab Xuống hàng Dấu enter Nháy kép Nháy đơn Số ngược Đẩy trang Ký tự unicode KIỂU DỮ LIỆU CƠ SỞ Kiểu số nguyên • • • • Bốn kiểu số nguyên khác nhau là: byte, short, int, long Kiểu mặc định của các số nguyên là kiểu int Không có kiểu số nguyên không dấu Không thể chuyển biến kiểu int và kiểu boolean như trong ngôn ngữ C/ C++ VD: int x = 0; long y=100; int a=1,b,c; KIỂU DỮ LIỆU CƠ SỞ • Kiểu số nguyên: boolean b = false; if (b == 0) { System.out.println("Xin chao"); } Lúc biên dịch, đoạn chương trình trên sẽ báo lỗi vì ta không được so sánh biến kiểu boolean với biến kiểu int. KIỂU DỮ LIỆU CƠ SỞ Một số lưu ý đối với các phép toán trên số nguyên: -Nếu hai toán hạng kiểu long thì kết quả là kiểu long. -Một trong hai toán hạng không phải kiểu long sẽ được chuyển thành kiểu long trước khi thực hiện phép toán. - Nếu hai toán hạng đầu không phải kiểu long thì phép tính sẽ thực hiện với kiểu int. - Các toán hạng kiểu byte hay short sẽ được chuyển sang kiểu int trước khi thực hiện phép toán. KIỂU DỮ LIỆU CƠ SỞ public class Light{ //Cac bien tinh static int boDem; //Gia tri 0 duoc gan mac dinh //Cac bien the hien int soWatts = 100; Boolean bieuHieu; //Gan mac dinh gia tri False String viTri; //Gan mac dinh gia tri null public static void main(){ Light b1 = new Light(); System.out.println(“Bien tinh boDem: ” +Light.counter); System.out.println(“Bien thanh phan soWatts: ” +b1.soWatts); System.out.println(“Bien thanh phan bieuHien: ” +b1.bieuHien); System.out.println(“Bien thanh phan viTri: ” +b1.viTri); } } KIỂU DỮ LIỆU CƠ SỞ Import java.io.* //Nhap vao goi java.io public class Display{ public static void main(String[] args){ String hoTen = “Nguyen Van A”; int tuoi = 20; float diem = 8.5F; System.out.println(“Ho va ten: ” +hoTen); System.out.println(“Tuoi: ” +tuoi); System.out.println(“Diem thi: ” +diem); } } KIỂU DỮ LIỆU CƠ SỞ Kiểu dấu chấm động: • Kiểu float có kích thước 4 byte và giá trị mặc định là 0.0f • Kiểu double có kích thước 8 byte và giá trị mặc định là 0.0d • Khai báo và khởi tạo giá trị cho các biến kiểu dấu chấm động: float x = 100.0/7; double y = 1.56E6; KIỂU DỮ LIỆU CƠ SỞ Một số lưu ý với các phép toán trên số dấu chấm động: - Nếu mỗi toán hạng đều có kiểu dấu chấm động thì phép toán chuyển thành phép toán dấu chấm động. - Nếu có một toán hạng là double thì các toán hạng còn lại sẽ được chuyển thành kiểu double trước khi thực hiện phép toán. - Biến kiểu float và double có thể ép chuyển sang kiểu dữ liệu khác (trừ kiểu boolean). KIỂU DỮ LIỆU CƠ SỞ • Kiểu ký tự • Biểu diễn các ký tự trong bộ mã Unicode • 216 = 65536 ký tự khác nhau : • từ '\u0000' đến '\uFFFF' • Kiểu luận lý (boolean) • Hai giá trị: true hoặc false • Giá trị mặc định: false • Không thể chuyển thành kiểu nguyên và ngược lại