โครงสร้างมาตรฐานของ Java Class
// 1. Package declaration (optional)
package com.example;
// 2. Import statements
import java.util.*;
// 3. Class declaration
public class ClassName {
// 4. Fields (instance/static variables)
static int staticField = 10;
int instanceField;
// 5. Constructors
public ClassName() { }
public ClassName(int val) { this.instanceField = val; }
// 6. Instance Initializer Blocks (optional)
{ System.out.println("Instance init"); }
// 7. Static Initializer Blocks (optional)
static { System.out.println("Static init"); }
// 8. Methods (instance/static)
public void instanceMethod() { }
public static void staticMethod() { }
// 9. Main method (entry point)
public static void main(String[] args) {
// Execution starts here
}
}
รายละเอียดสำคัญ
Main Method
- Signature:
public static void main(String[] args)
public - JVM ต้องเข้าถึงได้
static - เรียกได้โดยไม่ต้องสร้าง instance
void - ไม่คืนค่า
String[] args - command line arguments
Constructors
- ชื่อเดียวกับ class, ไม่มี return type
- ใช้ initialize object
- ไม่สามารถเป็น
final, abstract, static, synchronized ได้
- Default constructor ถูกสร้างอัตโนมัติถ้าไม่มี constructor ใดๆ
Methods
- Instance method: ใช้
this, เข้าถึง instance fields ได้
- Static method: ใช้
ClassName.method(), เข้าถึง static fields ได้อย่างเดียว
- สามารถเป็น
final, abstract, static, synchronized ได้
ตัวอย่างสมบูรณ์
public class Employee {
static int hireYearBase = 2017;
int id;
public Employee(int id) {
this.id = id;
hireYearBase++;
}
public void display() {
System.out.println("Static: " + hireYearBase + ", Instance: " + id);
}
public static int square() {
return hireYearBase * hireYearBase;
}
public static void main(String[] args) {
Employee e1 = new Employee(2018);
System.out.println("First object created");
e1.display();
System.out.println("Square: " + Employee.square());
}
}
ผลลัพธ์
First object created
Static: 2018, Instance: 2018
Square: 4072324