Agak terlambat di sini tapi saya ingin mencoba membuat definisi yang tepat: fungsi statis adalah fungsi yang tidak atau tidak bisa mereferensikan properti instance / metode kelas yang mengandung.
Dalam beberapa bahasa, seperti C #, mungkin ada bidang atau properti statis di kelas statis, jadi tidak tepat untuk mengatakan mereka tidak digunakan untuk negara; fungsi statis mungkin menggunakan keadaan statis (global).
Pada dasarnya, intinya adalah: fungsi statis, seperti apa pun yang statis, berguna ketika masuk akal bagi mereka untuk selalu tersedia tanpa ketergantungan pada instance non-statis.
Fungsi pembantu, seperti fungsi matematika, adalah contoh yang sering ditempatkan, tetapi ada yang lain.
Jika kelas yang Anda buat mengharuskan data tidak dapat diubah, mungkin masuk akal untuk membuat fungsi statis yang mengambil instance dan memberikan instance baru karena instance tidak dapat (atau tidak seharusnya) diubah. Kelas string, misalnya, mungkin memiliki fungsi statis yang mengambil string (atau 2 atau lebih) dan meneruskan string baru.
Alasan lain mungkin karena ada kelas yang menyimpan keadaan global atau data dari beberapa jenis. Mungkin ada fungsi statis yang bekerja dengan properti atau bidang statis di kelas statis itu.