Definisi metode instan dan metode kelas
Saat mendeklarasikan suatu metode, tipe metode yang tidak diubah dengan kata kunci static adalah metode instan, dan tipe metode yang dimodifikasi dengan kata kunci static adalah metode kelas, disebut juga metode statis.
Misalnya:
classMain{inta;floatmax(floatb,floatc){//Metode instance...}staticfloatmax(floatd,floate){//Metode kelas...}}
Perbedaan antara metode instan dan metode kelas
1. Metode instance panggilan objek:
Ketika file bytecode suatu kelas dimuat ke dalam memori, metode instance dari kelas tersebut tidak akan diberi alamat entri. Hanya setelah kelas membuat objek, metode instance di kelas tersebut akan diberi alamat entri, sehingga metode instance dapat digunakan oleh objek apa pun yang dibuat oleh eksekusi panggilan objek.
Melihat:
Saat kita membuat objek pertama, metode instance di kelas diberi alamat entri. Saat objek dibuat lagi, alamat entri tidak lagi ditetapkan. Artinya, alamat entri metode digunakan bersama oleh semua objek . Ketika semua objek Ketika tidak ada, alamat entri metode dibatalkan.
Metode instan tidak hanya dapat mengoperasikan variabel instan, tetapi juga variabel kelas. Ketika suatu objek memanggil metode instan, variabel instan dan variabel kelas yang muncul dalam metode adalah variabel yang ditugaskan ke objek tersebut, namun variabel kelas tersebut digunakan bersama dengan semua objek lainnya.
2. Panggil metode kelas menggunakan nama kelas:
Untuk metode kelas di suatu kelas, ketika kelas tersebut dimuat ke dalam memori, alamat entri yang sesuai ditetapkan, sehingga metode kelas tidak hanya dapat dipanggil dan dieksekusi oleh objek apa pun yang dibuat oleh kelas tersebut, tetapi juga dapat dipanggil secara langsung melalui nama kelas. Alamat masuk metode kelas tidak dibatalkan sampai program keluar.
Melihat:
Metode instance tidak bisa dipanggil dengan nama kelas, hanya dengan objek. Dan karena variabel anggota instance belum mengalokasikan memori sebelum kelas membuat objek, metode kelas tidak dapat mengoperasikan variabel instance.
3. Prinsip desain metode kelas:
Jika suatu metode tidak perlu mengoperasikan variabel instan apa pun di kelas untuk memenuhi kebutuhan program, Anda dapat mempertimbangkan untuk merancang metode tersebut sebagai metode statis.
Untuk metode statis, Anda dapat memanggilnya langsung dengan nama kelas tanpa membuat objek. Membuat objek akan menyebabkan variabel instan di kelas dialokasikan ruang memori.