Java Syntax

Duy Văn | 05/03/2025


Đầu tiên, từ ví dụ cũ của Hello world

public class Main{
    public static void main(String[] args){
        System.out.println("Hello world");
    }
}

Đầu tiên, do bản chất OOP của Java, quy luật về cách viết code theo Class được ép buộc

Tất cả các code chạy trong Java cần phải nằm trong một class, nó sẽ không như phía Python. Ở phía Python, code nằm trôi nổi ngoài các class sẽ được thực hiện từ trên xuống, riêng trong Java, code nằm bên ngoài sẽ không được thực hiện

Tiếp theo, tương tự Python, Java case sensitive, nghĩa là nó phân biệt chữ hoa và chữ thường

MyClass và myclass khác nhau trong Java

Tên của file java cần phải giống với tên class, về cơ bản là với class tên abc thì file java cũng cần phải tên abc.java, coi như chỉ thêm .java vào cuối tên class

Một file java có thể chưa nhiều class nhưng chỉ được một class public, và tên của file java phải giống với tên class public
Một file java cũng có thể chứa một class public, class public này có chứa nhiều nested class, xem tại Inner Class

main Method

Method main() là cái bắt buộc và ta sẽ nhìn thấy nó trong mọi chương trình Java, câu hỏi đặt ra có bắt buộc phải có dạng dưới không?

public static void main(String[] args)

args có thể là bất kỳ tên nào, nó chỉ là một tên biến, nhưng nó phải là một array của String

Statement

Kết thúc mỗi “statement” trong Java cần phải có dấu chấm phẩy ;

Nếu không có dấu chấm phẩy, Java sẽ không biết khi nào kết thúc một statement và sẽ báo lỗi

Block code

Một block code trong Java sẽ được quy định bởi việc được gói trong cặp {}

public class Main{
    public static void main(String[] args){
        System.out.println("Hello world");
    }
}

Built-in Class

System trong ví dụ là một class Java có sẵn, nó có chứa rất nhiều thành phần, bao gồm out. Hiểu cụ thể như sau:

  • System class là một phần của gói java.lang, nó cung cấp các trường (field) và method về môi trường runtime. Ví dụ như currentTimeMillis() để lấy thời gian hiện tại, gc() để chạy garbage collector, exit() để kết thúc chương trình, …
  • out Field: Trường out là một biến - variable public, static và final (final nghĩa là không thể thay đổi, ở cuối của System.out sẽ luôn trỏ đến cùng một object Print Stream) của kiểu PrintStream. Nó biểu diễn luồng đầu ra tiêu chuẩn, thường là console
  • println(), đây là println method thuộc về PrintStream instance mà out đã liên hệ tới. Method này đẩy data ra ngoài console và thêm một dòng mới

Comments

Comment ở trong Java sẽ có syntax khác với bên của Python, nếu Python có một dòng là # và đa dòng được gói trong cặp """, thì Java sẽ có cú pháp như sau:

// This is a single line comment
/* This is a
   multi-line comment */

Bất cứ phần code nào gói trong comment sẽ không được thực thi

Style

Style viết code trong Java sẽ là áp dụng camelCase cho tên biến và tên function/method, tức là dạng myVariable, myFunction

Tên class sẽ được viết hoa chữ cái đầu tiên, ví dụ MyClass. Tên biến và tên method sẽ viết thường chữ cái đầu tiên của tiếng thứ hai, ví dụ myVariable, myMethod, nếu chỉ có 1 tiếng thì viết thường hết, ví dụ variable, method

Identifiers

Tất cả các biến trong Java cần phải được định danh bằng một tên riêng, không đụng hàng với bất kỳ biến nào khác, các tên riêng này gọi là identifier, có thể chỉ đơn giản là x hay y, hay cầu kỳ hơn age, maxAge,v.v… Tuy nhiên dù cầu kỳ nhưng practice chung vẫn nên dùng tên có thể miêu tả đầy đủ ý nghĩa của biến, ví dụ:

int teenAge = 18; // Good
int t = 18;

Quy luật chung để đặt tên biến bao gồm:

  • Tên biến có thể chứa chữ, số, gạch dưới và dấu $
  • Tên biến phải bắt đầu bằng chữ và nên là viết thường (lowercase)
  • Tên biến không thể chứa khoảng trắng
  • Tên biến có thể bắt đầu với $ và _, thường sẽ ít dùng
  • Tên biến thuộc về class sẽ viết hoa hết và có cách bằng dấu gạch dưới, ví dụ MIN_WIDTH
  • Các từ khoá như int, boolean sẽ không thể dùng cho tên biến