Medan kelas
Intipati pengaturcaraan berorientasikan objek adalah untuk mewakili program sebagai interaksi objek.
 
Objek adalah sejenis entiti dengan sifat tertentu dan operasi tertentu padanya.

Objek pada asalnya dicipta untuk mensimulasikan realiti: banyak perkara di sekeliling kita boleh diwakili sebagai objek. Sebagai contoh, buku yang anda baca baru-baru ini boleh dianggap sebagai objek dengan sifat 'nama', 'pengarang', 'penilaian umur', 'teks buku', 'bilangan halaman', dsb. Di atas buku anda boleh melakukan operasi seperti "membaca buku", "membakar buku", dll.
Dalam terminologi bahasa pengaturcaraan Java, "sifat" ini dipanggil medan dan operasi pada objek dipanggil kaedah.
Memandangkan Java ialah bahasa yang ditaip secara statik, sebarang objek mesti dibuat mengikut beberapa corak. Di Java, templat tersebut ialah kelas. Kelas menerangkan medan yang boleh dimiliki oleh jenis objek tertentu dan operasi yang ditakrifkan padanya.
Perbezaan antara kelas dan objek bersamaan dengan perbezaan antara "kereta" dan "Toyota Camry, diletakkan di rumah ke-5 di Jalan Cheburekovo".

Pertimbangkan prosedur untuk mencipta kelas objek anda sendiri dengan medan dalam Java. Buku kelas { stringname; String authorName; int umurKeperluan; Stringtext; int pageCount; } Kod ini mencipta kelas"Buku". objekkelas «Buku» terdapat dua sifat integer (dinamakan «ageRequirement» dan «pageCount») dan tiga sifat jenis «String» (dengan nama "name", "authorName", dan "text".
Sintaks umum untuk mencipta kelas dengan medan adalah seperti berikut.
  kelas <nama kelas> { <jenis harta pertama> <nama harta pertama> <jenis harta kedua> <nama harta kedua> &helli; <jenis harta terakhir> <nama harta terakhir> }

Sudah tentu, dalam Java, anda boleh membuat kelas bukan sahaja dengan cara ini (terdapat juga kaedah, pengubah akses dan banyak lagi), tetapi lebih banyak lagi mengenainya kemudian.

Kaedah kelas
Operasi pada objek dalam Java dipanggil kaedah. Kaedah adalah seperti fungsi matematik: ia boleh mengambil argumendan mengembalikan nilai. Sebaliknya, kaedah dalam Java juga mempunyai akses kepada semua medan objek.

Untuk mencipta kaedah dalam kelas, anda mesti memasukkannya ke dalam kelas. Sebagai contoh, kami boleh menentukan kaedah print(age) yang akan mencetak maklumat tentang buku kami dan memaparkan amaran jika pengguna belum cukup umur untuk buku tersebut.

    kelas Buku
    {
        Nama rentetan;
        String authorName;
        int ageRequirement;
        Teks rentetan;
        int pageCount;
        // cipta kaedah cetakan
        kosong cetak(int umur)
        {
            Sistem.keluar.< span style="color:#7d9029">println("Nama: " +nama);
            Sistem.keluar.< span style="color:#7d9029">println("Pengarang: " +nama pengarang);
            Sistem.keluar.< span style="color:#7d9029">println("Bilangan halaman: "+Integer.toString(ageRequirement);
            // kod pengesahan pergi ke sini
        }
    }
 
Mari kita analisa sintaks untuk mencipta kaedah.
1) Baris pertama kaedah ialah tandatangannya.
2) Jenis pemulangan kaedah ditulis terlebih dahulu. Kaedah kami tidak mengembalikan sebarang nilai, jadi kami menulis void.
3) Kemudian dalam tandatangan adalah nama kaedah (cetak).
4) Dalam kurungan terdapat senarai hujah. Hujah dipisahkan dengan koma. Untuk setiap hujah, jenis dan namanya ditentukan, dipisahkan oleh ruang. Dalam kes kami, hanya terdapat satu hujah, ia mempunyai jenis int dan nama age, jadi tiada koma.
5) Selepas itu datang kod kaedah dalam pendakap kerinting. Untuk mengembalikan nilai daripada kaedah, tulis kembali <value>;. Dalam contoh, kaedah tidak mengembalikan apa-apa, jadi return boleh diabaikan. Untuk menamatkan pelaksanaan kaedah lebih awal, anda boleh menulis return;.
6) Dalam kelas itu sendiri, kita boleh merujuk kepada medan objek kelas ini dengan nama.

Pengubah suai akses
Secara lalai, semua medandan kaedah kelas dalam Java adalah peribadi. Ini bermakna tiada sesiapa boleh mengaksesnya, yang bermaksud bahawa di luar objek kelas ini, tiada kaedah boleh menggunakan medan dan kaedah objek kelas ini.

Medan dan kaedah boleh didedahkan kepada umum dengan pengubah suai akses awam. Terdapat juga pengubah pribadi yang menjadikan medan peribadi. Ia adalah pilihan kerana semua medan dan kaedah adalah peribadi secara lalai. Berikut ialah contoh menggunakan pengubah awam  dan pribadi. Buku kelas { Stringname awam; String authorName; Keperluan umur int peribadi; Stringtext; public int pageCount; int getTextLength() { kembalikan panjang teks(); } public int getAverageLetterCount() { kembali getTextLength() / pageCount; } private int getDifficuiltyLevel() { return 5 * ageRequirement * text.Length(); } }
Dalam versi kelas Book ini, medan name dan pageCount didedahkan kepada umum untuk dibaca dan diubah suai dalam objek lain. Kaedah getAverageLetterCount() juga tersedia untuk dipanggil daripada objek kelas lain. Semua medan dan kaedah lain kekal peribadi dan hanya tersedia dalam kaedah kelas ini. Dalam kaedah awam getAverageLetterCount() kita boleh memanggil kaedah peribadi getTextLength() kerana getAverageLetterCount() tergolong dalam kelas itu sendiri. Tetapi ia tidak akan berfungsi daripada kaedah kelas lain.

Tetapi mengapa kemudian menjadikan bidang itu peribadi? Dalam kod Java, anda kebanyakannya hanya akan melihat medan peribadi. Hakikatnya ialah jika akses kepada medan persendirian dilakukan melalui kaedah awam objek itu, maka dengan apa-apa akses ke medan persendirian sedemikian adalah mungkin untuk melakukan tindakan dan pemeriksaan tambahan. Lebih lanjut mengenai perkara ini akan terdapat dalam pelajaran tentang enkapsulasi.

Pelajaran setakat ini telah membincangkan mencipta kelas, yang merupakan templat untuk mencipta objek. Dalam pelajaran yang sama, proses mencipta dan menggunakan objek itu sendiri akan diterangkan.

Pautan
Dalam bahasa Java, pembolehubah tidak boleh menyimpan objek. Sebaliknya, Java mempunyai rujukan yang menunjuk kepada lokasi objek dalam ingatan.
Sintaks untuk mencipta pembolehubah jenis rujukan objek adalah seperti berikut:
<Nama kelas> <nama pembolehubah>;
Perlu diingat bahawa kami segera menunjukkan kelas yang objeknya akan dirujuk.

Contoh: pembolehubah bernama "b" menunjuk ke kelas Buku:

Buku b;

Dengan cara yang sama, anda boleh mencipta medan kelas (anda boleh menambah pengubah akses di sana). Anda boleh membuat tatasusunan rujukan dan mengembalikannya daripada kaedah. Contoh:

awam kelas Perpustakaan {
  awam Buku[] buku;
  awam Buku findBookWithName(Nama rentetan) {
//kod yang mencari buku yang betul
  }
};


Kesimpulan: dalam banyak cara, anda boleh bekerja dengan rujukan dengan cara yang sama seperti pembolehubah jenis asas lain (int, long, double...).