Apa perbedaan antara Instans dan Objek?

95

Apa perbedaan antara Instans dan Objek? Apakah ada perbedaan atau tidak?

parade jalanan
sumber
10
Mungkin Anda bisa menyimpulkan dari pesan kesalahan terkenal "Referensi objek tidak disetel ke instance objek ." : ->
herzmeister
Dari spesifikasi JVM: "Sebuah objek bisa berupa instance kelas yang dialokasikan secara dinamis atau array." Docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html
yfklon
StackOverFlow Saya baru saja memberikan penjelasan singkat tentang perbedaan antara objek dan contoh Saya harap ini membantu
Pushkarraj Pujari
1
Objek adalah turunan dari kelas. Itu saja yang ada untuk itu.
Marquis dari Lorne

Jawaban:

59

Instance dan Objek berasal dari Pemrograman Berorientasi Objek .

Untuk beberapa bahasa pemrograman seperti Java, C ++, dan Smalltalk, penting untuk mendeskripsikan dan memahami kode. Dalam bahasa lain yang digunakan dalam Pemrograman Terstruktur, konsep ini tidak ada.

Ini adalah pandangan dari Pemrograman Struktural. Tidak ada perbedaan signifikan yang nyata yang seharusnya menghabiskan terlalu banyak waktu Anda. Mungkin ada beberapa bahasa mewah yang mungkin membutuhkan banyak ruang untuk ditulis, tetapi pada akhirnya, sejauh menyangkut pembuat kode, pengembang, pemrogram, arsitek, contoh kelas dan objek memiliki arti yang sama dan sering kali dapat digunakan secara bergantian . Saya belum pernah bertemu seseorang dalam karier saya yang pilih-pilih dan menghabiskan setengah jam mencoba menunjukkan perbedaan karena sebenarnya tidak ada. Waktu dapat dihabiskan dengan lebih baik untuk upaya pengembangan lainnya.

PEMBARUAN Sehubungan dengan Swift, inilah yang lebih disukai Apple yang menemukan Swift:

Sebuah instance dari kelas secara tradisional dikenal sebagai objek. Namun, kelas dan struktur Swift memiliki fungsionalitas yang lebih dekat daripada bahasa lain, dan sebagian besar bab ini menjelaskan fungsionalitas yang dapat diterapkan ke instance kelas atau tipe struktur. Karena itu, istilah instance yang lebih umum digunakan.

Kevin Le - Khnle
sumber
19

Pertanyaan yang bagus.

Saya akan menjelaskannya dengan cara yang sesederhana mungkin: Katakanlah Anda memiliki 5 apel di keranjang Anda. Masing-masing buah apel tersebut merupakan benda jenis apel, yang memiliki beberapa ciri (yaitu besar, bulat, tumbuh di pohon).

Dalam istilah pemrograman, Anda dapat memiliki kelas yang disebut Apple, yang memiliki ukuran variabel: besar, bentuk: bulat, habitat: tumbuh di pohon. Untuk memiliki 5 apel di keranjang Anda, Anda perlu membuat contoh 5 apel. Apple apple1, Apple apple2, Apple apple3 etc....

Alternatifnya: Objek adalah definisi dari sesuatu, contoh adalah benda fisik.

Apakah ini masuk akal?

Yuval Karmi
sumber
62
Tidak. :) "Objek adalah definisi dari sesuatu" Yang Anda sebut objek di sini adalah kelas.
T-Gergely
11

Instance: instance berarti hanya membuat referensi (copy).

objek: berarti ketika lokasi memori dikaitkan dengan objek (adalah entitas run-time kelas) dengan menggunakan operator baru.

Dengan kata sederhana, Instance mengacu pada salinan objek pada waktu tertentu sedangkan objek mengacu pada alamat memori kelas.

karthik reddy
sumber
1
mengatakan bahwa sebuah contoh adalah referensi ke objek yang benar-benar menjelaskan segalanya untuk saya.
John C
4
@JohnC Seharusnya tidak, karena itu tidak benar. Objek adalah turunan dari kelas. Itu saja yang ada untuk itu.
Marquis dari Lorne
8

Katakanlah Anda sedang membangun beberapa kursi.

Diagram yang menunjukkan cara membuat kursi dan menyatukannya sesuai dengan kelas perangkat lunak.

Katakanlah Anda membangun lima kursi sesuai dengan pola di diagram itu. Demikian pula, Anda dapat membuat lima objek perangkat lunak sesuai dengan pola di kelas.

Setiap kursi memiliki nomor unik yang dibakar di bagian bawah kursi untuk mengidentifikasi setiap kursi tertentu. Kursi 3 adalah salah satu contoh pola kursi. Demikian pula, lokasi memori 3 dapat berisi satu contoh pola perangkat lunak.

Jadi, sebuah instance (kursi 3) adalah satu perwujudan unik dan spesifik dari sebuah pola kursi.

Brian Showalter
sumber
3
Objek adalah turunan dari kelas. Sebuah instance bukanlah sebuah instance dari sebuah objek. Jawaban tidak ada artinya.
Marquis dari Lorne
1
Wow, setelah sembilan tahun akhirnya seseorang menunjukkan kekurangan dalam penjelasan saya. Terima kasih! Lebih baik sekarang?
Brian Showalter
7

Objek :

Ini adalah istilah umum yang pada dasarnya adalah bundel Perangkat Lunak yang memiliki status (variabel) dan perilaku (metode)

Kelas :

Cetak biru (template) untuk sebuah instance objek-itu adalah objek yang unik misalnya Anda membuat objek dua kali yang artinya Anda telah membuat dua contoh

Izinkan saya memberi contoh

Class student()
{
   private string firstName;
  public student(string fname)
  {
    firstName=fname;
  }
  Public string GetFirstName()
  {
    return firstName;
  }
}

Contoh objek :

Mahasiswa s1 = mahasiswa baru ("Martin"); Siswa s2 = siswa baru ("Kumar");

S1, s2 adalah objek kelas Student

Contoh :

s1 dan s2 adalah instance dari objek siswa yang keduanya unik .

itu bisa disebut sebagai referensi juga.

pada dasarnya s1 dan s2 adalah variabel yang diberi objek

Durai Amuthan.H
sumber
1
Objek adalah turunan dari kelas.
Marquis dari Lorne
7

Objek dan instance sebagian besar sama; tetapi ada perbedaan yang sangat kecil. Jika Carkelas, 3 Cars adalah 3 objek yang berbeda. Semua objek ini adalah contoh. Jadi 3 mobil ini adalah objek dari instance Carkelas.

Tetapi kata "contoh" juga bisa berarti "contoh struktur". Tapi objek hanya untuk kelas.

Semua objek adalah contoh. Tidak semua contoh harus berupa objek. Contoh dapat berupa "contoh struktur" atau "objek". Saya harap ini membuat perbedaannya jelas bagi Anda.

DotNet Harsha Vardhan
sumber
3

Objek adalah konstruksi, sesuatu yang statis yang memiliki fitur dan sifat tertentu, seperti properti dan metode, dapat berupa apa saja (string, kontrol pengguna, dll)

Instance adalah salinan unik dari objek tersebut yang dapat Anda gunakan dan lakukan berbagai hal.

Bayangkan sebuah produk seperti komputer.

Stasiun kerja xw6400 adalah sebuah objek

Stasiun kerja xw6400 ANDA, (atau stasiun kerja xw6400 ISTRI ANDA) adalah contoh objek stasiun kerja xw6400

Greg Olmstead
sumber
1
Paragraf pertama dan kedua Anda mendeskripsikan kelas, bukan objek.
Marquis dari Lorne
2

Jawaban ini mungkin terlihat basi, tetapi mengkhawatirkan perbedaan antara sebuah instance dan objek sudah menjadi kota yang basi.

Saya pikir yang terbaik digambarkan dalam javascript:

let obj= {"poo":1} 
// "obj" is an object

ayat-ayat

Class Trash {
    constructor(){this.poo = 1;}
}

let i = new Trash();
// "i" is an instance
angkat
sumber
1

Instance adalah representasi spesifik dari suatu objek. Objek adalah hal yang umum sedangkan instance adalah objek tunggal yang telah dibuat dalam memori. Biasanya sebuah instance akan memiliki nilai yang ditetapkan ke propertinya yang membedakannya dari instance lain dari tipe objek.

TLiebe
sumber
1

Jika kita melihat Definisi Objek dan Objek Instance -

Memori yang dialokasikan untuk anggota kelas pada saat berjalan disebut objek atau objek adalah turunan dari Kelas.

Mari kita lihat Definisi dari instance -

Memori yang dialokasikan Untuk Apa saja pada waktu berjalan disebut sebagai variabel instan.

Sekarang pahami arti dari setiap alokasi memori run time yang terjadi di C juga melalui Malloc, Calloc, Realloc seperti:

struct p
{

}
p *t1
t1=(p) malloc(sizeof(p))

Jadi di sini juga kita mengalokasikan alokasi memori run time tapi di sini kita sebut sebagai instance jadi t1 adalah instance di sini kita tidak bisa mengatakan t1 sebagai objek jadi Setiap objek adalah turunan dari Kelas tetapi setiap Instance bukan Objek.

Vivek Kumar
sumber
Ada jawaban yang benar bersembunyi di sini, tetapi bahasanya perlu dibersihkan dan disederhanakan.
Marquis dari Lorne
1

Object - Sebuah instance dari kelas yang memiliki statusnya sendiri dan akses ke semua perilaku yang ditentukan oleh kelasnya.

Instance - Referensi ke area memori untuk kelas tertentu itu.

prathipati s
sumber
1

Saya tidak percaya, kecuali untuk satu orang yang tidak ada yang menggunakan kode untuk menjelaskan ini, izinkan saya mencobanya juga!

// Design Class
class HumanClass {
    var name:String
    init(name:String) {
        self.name = name
    }
}

var humanClassObject1 = HumanClass(name: "Rehan") 

Sekarang sisi kiri yaitu: "humanClassObject1" adalah objek dan sisi kanan yaitu: HumanClass (nama: "Rehan") adalah turunan dari objek ini.

var humanClassObject2 = HumanClass(name: "Ahmad") // again object on left and it's instance on the right.

Jadi pada dasarnya, instance berisi nilai-nilai spesifik untuk objek itu dan objek berisi lokasi memori (saat run-time).

Ingat pernyataan terkenal "referensi objek tidak disetel ke turunan objek", ini berarti objek yang tidak diinisialisasi tidak memiliki contoh apa pun. Dalam beberapa bahasa pemrograman seperti swift, compiler tidak akan mengizinkan Anda untuk mendesain kelas yang tidak memiliki cara untuk menginisialisasi semua anggotanya (variabel misalnya: nama, usia, dll), tetapi dalam beberapa bahasa Anda diizinkan untuk melakukan ini:

// Design Class
class HumanClass {
    var name:String // See we don't have any way to initialise name property.
}

Dan kesalahan hanya akan ditampilkan pada waktu proses ketika Anda mencoba melakukan sesuatu seperti ini:

var myClass = HumanClass()
print(myClass.name) // will give, object reference not set to an instance of the object.

Kesalahan ini menunjukkan bahwa, nilai spesifik (untuk variabel \ properti) adalah "INSTANCE" ketika saya mencoba menjelaskan ini di atas! Dan objeknya yaitu: "myClass" berisi lokasi memori (saat run-time).

Rehan Ali Khan
sumber
1

Ketika variabel dideklarasikan dari tipe khusus (kelas), hanya referensi yang dibuat, yang disebut objek. Pada tahap ini, tidak ada memori yang dialokasikan ke objek ini . Ini bertindak hanya sebagai penunjuk (ke lokasi di mana objek akan disimpan di masa mendatang). Proses ini disebut 'Deklarasi'.

Employee e; // e is an object

Di sisi lain, saat variabel tipe kustom dideklarasikan menggunakan newoperator, yang mengalokasikan memori di heap ke objek ini dan mengembalikan referensi ke memori yang dialokasikan. Objek inilah yang sekarang disebut sebagai instance . Proses ini disebut 'Instansiasi'.

Employee e = new Employee(); // e is an instance

Di sisi lain, dalam beberapa bahasa seperti Java, sebuah objek setara dengan sebuah instance, seperti yang terlihat dari baris yang tertulis dalam dokumentasi Oracle di Java :

Catatan: Frasa "instantiating a class" artinya sama dengan "membuat objek". Saat Anda membuat objek, Anda membuat "instance" dari kelas, oleh karena itu "membuat" kelas.

Srishti
sumber
0

setiap objek dikatakan sebagai turunan kelasnya tetapi setiap turunan kelas memiliki nilai sendiri untuk setiap atribut intances berbagi nama atribut dan operasi dengan intance kelas mereka tetapi sebuah objek berisi referensi implisit ke kelasnya

pengguna2750565
sumber
0

Kelas: Kelas adalah cetak biru. Objek: Ini adalah salinan kelas. Contoh: Ini adalah variabel yang digunakan untuk menyimpan alamat memori objek.

Contoh analitis yang sangat mendasar

Class House -> Cetak Biru rumah. Tapi Anda tidak bisa hidup dalam cetak biru. Anda membutuhkan rumah fisik yang merupakan contoh kelas untuk ditinggali. Yaitu, alamat sebenarnya dari objek tersebut adalah contoh. Contoh mewakili objek.

Sindhu
sumber
Instance mengacu pada objek, bukan variabel.
Marquis dari Lorne
0

Setelah Anda membuat instance kelas (menggunakan baru), benda yang dibuat itu menjadi objek. Objek adalah sesuatu yang dapat mengikuti enkapsulasi, polimorfisme, prinsip-prinsip abstraksi dari pemrograman berorientasi objek dan hal nyata yang berinteraksi dengan program untuk mengkonsumsi anggota instance yang ditentukan di kelas. Objek berisi anggota instance (anggota non-statis).

Jadi instance kelas adalah objek. Kata 'instance' digunakan ketika Anda merujuk ke asal dari mana ia lahir, akan lebih jelas jika Anda mengatakan 'instance of a class' dibandingkan dengan 'object of a class' (meskipun yang terakhir dapat digunakan).

Dapat juga membaca bagian 'Kelas dalam' dari dokumen java ini pada kelas bersarang - https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

p_champ
sumber
0

Java adalah bahasa pemrograman berorientasi objek (OOP). Artinya, semua yang ada di Java, kecuali tipe primitif adalah objek.

Sekarang, objek Java mirip dengan objek dunia nyata. Misalnya kita dapat membuat objek mobil di Java, yang akan memiliki properti seperti kecepatan dan warna saat ini; dan perilaku seperti: mempercepat dan parkir.

Itu Object .

masukkan deskripsi gambar di sini

Instance , di sisi lain, adalah salinan unik dari objek yang terlihat seperti itu Car car = new Car().

Lihat ini untuk mempelajari lebih lanjut tentang kelas dan objek Java

Johnny
sumber
Objek adalah turunan dari kelas.
Marquis dari Lorne
0

Jawaban Cepat dan Sederhana

  • Kelas : spesifikasi, cetak biru untuk suatu objek
  • Objek : kehadiran fisik kelas dalam memori
  • Contoh : salinan unik dari objek (struktur yang sama, data berbeda)
Syed Ekram Uddin
sumber
-1

Mengenai perbedaan antara an objectdan an instance, saya kira tidak ada kesepakatan sama sekali.

Bagi saya sepertinya orang-orang mengubahnya secara bergantian, di koran, posting blog, buku atau percakapan.

Bagi saya, menurut pandangan saya, sebuah objek adalah entitas generik dan hidup dalam memori, ditentukan oleh bahasa yang digunakannya. Sama seperti Objectkelasnya Java. Kami tidak terlalu peduli dengan jenisnya, atau hal lain yang terkait dengannya, apakah itu dikelola oleh wadah atau tidak.

An instanceadalah objecttapi terkait dengan tipe, seperti dalam this method accepts Foo instances, atau you can not put Animal instances in an instance of a List of Vehicles.

objects misalnya locksterkait dengan mereka, bukan instances, sedangkan instances memiliki metode. objectsadalah sampah dikumpulkan, bukan instances.

Tapi seperti yang saya katakan, ini hanya bagaimana saya melihatnya, dan saya rasa tidak ada organisasi yang dapat kita rujuk untuk definisi standar di antara mereka dan setiap orang akan memiliki pemahaman / definisi yang sedikit berbeda (tentu saja dalam batasan) .

Koray Tugay
sumber
-1

Suatu benda adalah hal yang umum, misalnya mengambil fungsi linier dalam matematika

ax + b adalah sebuah objek, sedangkan 3x + 2 adalah turunan dari objek tersebut

Objek <<< Instance

Umum <<< Spesifik

Tidak ada yang lebih dari ini

Chyanit Singh
sumber
-2

Sebuah benda bisa menjadi kelas, katakanlah Anda memiliki kelas yang disebut bola basket.

tetapi Anda ingin memiliki banyak bola basket, jadi dalam kode Anda, Anda membuat lebih dari 1 bola basket

katakanlah basketball1 dan basketball2. Kemudian Anda menjalankan aplikasi Anda. Anda sekarang memiliki 2 objek bola basket.

Darxval
sumber
Itu berarti Object adalah Instance dari Class Constructor?
parade jalanan
Pikirkan objek seperti cetak biru. katakanlah kita memiliki cetak biru untuk bola basket, itu adalah kelasnya. ketika bola basket dibuat dan dibuat sekarang ada, jadi itu berarti kita memiliki 1 contoh objek bola basket. jika kita membangun bola basket lain dari objek (cetak biru). kami sekarang memiliki 2 contoh bola basket. Selalu hanya ada 1 objek, tetapi kita dapat membuat banyak contoh dari objek itu.
Darxval
@Darxval lalu apa itu kelas
Chyanit Singh
-3

Objek merujuk ke kelas dan instance merujuk ke objek. Dengan kata lain, instance adalah salinan dari objek yang memiliki nilai tertentu di dalamnya.

Karamjit Singh Sehdev
sumber