ใน Java เมธอด main() อยู่ภายในคลาสเสมอ คีย์เวิร์ด static ทำให้ main() รันได้โดยไม่ต้องสร้างออบเจ็กต์ แต่ยังต้องเขียนคลาสครอบอยู่ดี
ใน C++ ฟังก์ชัน main() อยู่นอกคลาส และไม่บังคับให้เขียนคลาสเลย ดังนั้น C++ จึงไม่ใช่ pure object-oriented language แต่ Java ถือว่าเป็น object-oriented language อย่างสมบูรณ์
ข้อสังเกต: ข้อความนี้มีความขัดแย้งในตัวเอง - จริงๆ แล้ว Java ถือว่า "pure OOP" มากกว่า C++ เพราะทุกอย่างอยู่ในคลาส แต่ C++ รองรับทั้ง procedural และ OOP