Chào mina-san!
Lại là mình đây. Gần đây CLB mình bắt đầu dạy khoá Java Core. Tức là dạy về Java và tư duy OOP cơ bản ấy. Nhân cơ hội này mình tranh thủ up các tài liệu mà mình làm lên blog luôn. Để chia sẻ cho mọi người, cũng như để sau này mình xem lại cho tiện 😊.
- I. Ngôn ngữ Java là gì
- II. Lý do ra đời của Java
- III. Cách Java hoạt động
- IV. Cấu trúc một chương trình Java
- V. Package là gì?
- VI. Syntax cơ bản
- VII. Tổng quan về Class và Object
- Lời cuối
I. Ngôn ngữ Java là gì
Java là một ngôn ngữ lập trình hướng đối tượng (Object Oriented Programming -OOP), đa nền tảng. Được Sun Microsystems (nay thuộc Oracle) phát triển vào năm 1995.
Nó được thiết kế với khẩu hiệu nổi tiếng:
Write Once, Run Anywhere
Chương trình Java có thể chạy trên mọi hệ điều hành mà không cần sửa đổi mã nguồn - miễn là hệ thống đó có Java Virtual Machine (JVM)
II. Lý do ra đời của Java
Vào đầu những năm 1990, nhóm nghiên cứu của Sun Microsystems muốn tạo ra một ngôn ngữ:
- Có thể chạy trên nhiều thiết bị khác nhau, từ máy tính đến TV, đầu DVD, hoặc thiết bị nhúng.
- An toàn và ổn định hơn C/C++, tránh các lỗi như tràn bộ nhớ hay con trỏ sai.
- Có thể phát triển ứng dụng mạng (Internet) dễ dàng.
- Đơn giản, hướng đối tượng, và dễ bảo trì. Khi Internet bùng nổ, Java trở thành công cụ lý tưởng để viết ứng dụng web, ứng dụng doanh nghiệp, và sau này là ứng dụng di động (Android).
III. Cách Java hoạt động
Đầu tiên, ta hãy xét mã nguồn của một chương trình Java cơ bản, tên file là Hello.java
public class Hello{
public static void main(String[] args){
System.out.println("Hello ProPTIT");
}
}
Tiếp theo, ta biên dịch (compile) chương trình này thành bytecode. Output sẽ là file có tên Heloo.class.
javac Hello.java
Lưu ý: Khác với C/C++, Java compile chương trình thành bytecode, đây không phải mã máy thực, mà là mã được thiết kế cho JVM.
Để chạy chương trình, ta sử dụng lệnh:
java Hello
-> Lúc này:
- JVM đọc file
Hello.class - JVM kiểm tra bảo mật và chuyển bytecode thành mã máy phù hợp với hệ thống đang chạy (qua JIT- Just In Time Compiler)
- Chương trình được thực thi trên CPU thật
Nhờ có cơ chế JVM và JIT này, nên Java mới có thể chạy trên bất kỳ hệ điều hành nào, chỉ cần cài JVM tương ứng.
IV. Cấu trúc một chương trình Java
Một chương trình Java luôn có ít nhất một class, và hàm main() là điểm bắt đầu khi chạy.
Hãy nhìn lại ví dụ lúc nãy:
public class Hello{
public static void main(String[] args){
System.out.println("Hello ProPTIT");
}
}
Giải thích từng thành phần:
public class Hello: Khai báo một class tên là Hello. Trong Java, mọi thứ phải nằm trên một class.{ ... }: Phần thân của class, chứa các phương thức (method) và biến (variable).public static void main(String[] args): Đây là hàm chính - nơi chương trình bắt đầu chạySystem.out.println("...");: Lệnh in ra màn hình trong Java
V. Package là gì?
Trong Java, package là một cơ chế để tổ chức và quản lý các class, interface, và các thành phần khác thành các nhóm có liên quan với nhau.
Khai báo package
package ten_package;
public class MyClass {
// code
}
Sử dụng package
import ten_package;
VI. Syntax cơ bản
Khai báo biến nguyên thuỷ
Các kiểu nguyên thuỷ:
- byte, short, int, long
- float, double
- char
- boolean
Ví dụ
int th = 36;
Vòng lặp
for:
for (int i=1; i<=10; ++i){
System.out.print(i + " ");
}
while
int i=0;
while(true){
++i;
System.out.print(i + " ");
}
Lệnh rẽ nhánh
if, else if, else:
if(<đk>){
// code 1
} else if(<đk>){
// code 2
} else{
// code 3
}
switch-case:
switch(exp){
case VALUE:
// code
break;
default:
//code
}
Mảng
Khai báo Cần khai báo thư viện Array mới sử dụng được.
import java.util.Arrays;
Khai báo một array.
int[] a = new int[5]; // Khai báo mảng số nguyên a gồm 5 phần tử
int[] b = {3, 6, 5}; // Khai báo mảng số nguyên b với các phần tử cho trước
Có thể duyệt mảng bằng for-each như C++
for(int x:a){
// code
}
VII. Tổng quan về Class và Object
Class và Object
- class: Chứa thuộc tính và hành vi (hiểu như một khuôn đúc)
- Object: Thực thể có thuộc tính và hành vi (được đúc từ class)
public class Book{
private String title;
private String author;
public void setTitle(String title){ ... }
public void burn(){ ... }
}
Book book = new Book();
book.name = "Giao trinh OOP";
book.burn();
Từ khoá this
this là từ khoá đại diện cho object, class hiện tại, dùng để phân biệt biến instance (thuộc về đối tượng) và biến local (khai báo trong method).
public void setTitle(String title){
this.title = title;
}
Constructor
Hàm dùng để khởi tạo đối tượng, trùng tên class.
public class Book{
private String title;
private String author;
public void setTitle(String title){ ... }
public void burn(){ ... }
}
Access Modifier
- public: Truy cập mọi nơi
- private: Chỉ truy cập trong class
- protected: Trong package + subclass
- default (không ghi gì): Truy cập trong package
Getter, Setter
Giúp truy cập các trường private
public void setTitle(String title){
this.title = title;
}
public String getTitle(){
return title;
}
Từ khoá Static
Dùng với biến/phương thức để dùng chung cho tất cả class.
public class Obj{
public static int count = 0;
public static void sayHello() { ... }
}
// ...
public class Main{
public class void main(String[] args){
Obj.sayHello() // gọi trực tiếp
}
}
Lời cuối
Đây là bài học thuật đầu tiên mình viết nên tự mình thấy nó còn thiếu sót khá nhiều. Cũng chưa được quá chi tiết. Có lẽ mình sẽ chỉnh sửa lại nội dung trong bài trong tương lai để phù hợp hơn. Cảm ơn mọi người đã đọc nha! ❤️
