Nesne (programlama)

Programlama dizisinde nesne-yönelimli programlamada, nesne, basit yapılı blok programları olarak kullanılan, işletim zamanı verilerinin saklanması için oluşturulmuş özel birimidir. Programın işlemlerde bir koleksiyon gibi veya programın bilgisayarda komutlar listesi gibi basitçe göründüğü geleneksel bakış açısının tersine, bu nesneler birbiri üzerinde rol oynar. Her nesne mesaj alımına, veriyi işlemeye ve diğer nesnelere veri aktarımına yatkındır. Her nesne farklı rollerde ve sorumluluklarda yer alan veya bağımsız küçük makineler olarak gözlemlenebilir.

Bilgisayar biliminin matematiksel dallarında, nesne terimi tam olarak, bütünüyle matematiksel bir anlamla, herhangi “şey” e karşılık olmak üzere kullanılır. Bu açıklama, soyut teori tartışmasında kullanışlıyken, gerçek hesaplama ve bilgi işlemeye yakın olan daha kesin branşların (programlama gibi) tartışmalarında ilkel veri türüne hizmet edebilecek kadar kesin değildir. Bundan dolayı nesneler, hala kavramsal olarak tek ve bağımsız varlıklardır, fakat genel olarak belli bir büyüklük ve belli bir konumdaki bilgisayarın bitişik blok hafızasına doğrudan uyar. Sonuç olarak bu hesaplama ve bilgilendirme işlemi, bilgisayar hafızasının bir şekli olması gerektiğindendir. Bu anlamda nesneler, kaynakları, değişkenleri ve isim bağlayıcı gibi kavramları kusursuzca tanımlamak ihtiyaçlı temel ilkelerdir. Bu, yazının geri kalanının, nesnenin soyut yorumu yerine somut yorumu üzerinde odaklanacak olmasının sebebidir. Buna rağmen bilgisayar hafızası bloğunun, bir düzey soyutlamada bitişik olarak ortaya çıkabileceği ve diğerinin üzerinde bitişik olmayarak ortaya çıkabileceğini göz önünde bulunduran önemli şey ise nesne gibi işlemden geçirdiği programa bitişik olarak ortaya çıkmasıdır. Bu da programın ilgili olduğu nesnenin, olabildiğince iç kaynaklardan bağımsız olması gerektiğini gösterir. Çünkü diğer şekilde bundan böyle bir ilkel olmayacaktır. Bir başka deyişle, nesnenin özel saklama koşulları, nesnenin alıcılarına açık olmamalıdır ve alıcı kodlarını değiştirmeden değişebilmelidir.

Nesneler sadece bağlamları kendinden haberdar olduğunda varolur; bilgisayar hafızasının bir parçası, bir program örneği gibi işlemden geçirildiğinde ancak nesneyi tutar (örneğin belirli prosedürlerle ve/veya veri türü ile işbirliği kurma işlemini kullanarak saklamak). Böylece, bir nesnenin ömrü, nesne olarak işlemden geçtiğindeki zamandır. Nedeni, bilgisayar hafızasındaki fiziksel varlıklarını göz ardı edersek, hala kavramsal mevcudiyet oluşlarıdır.

Bir başka deyişle işlem sırasındaki hafıza boşluğunu işgal etmeyen soyut kavramlar, açıklamaya göre, nesne olmayanlardır. Ör: sınıf kümelerindeki tasarım modelleri, istatistiksel türden programlardaki veri türleri. Özellikle anlamlı veriler içeren nesneleri vurgulamak gerekirse, veri nesnesi terimi bazen nesneyi ima etmektedir.

garanti etmek için (sınıf sabitliği zorunlu olacak), bir nesne veri üyelerine, üyeler metodu aracılığı ile ulaşılabilir. Bazı diller, veri üyeleri ve metotları arasında ayrım yapmamaktadır. Her nesnenin bir sınıftan üretildiği bir dilde, nesne o sınıfın bir örneğidir. Her nesnenin bir türü varsa, aynı sınıftan iki nesnenin veri türleri de birbirinin aynısı olacaktır. Bir sınıfa örnek vermek bazen sınıfa örnek oluşturma anlamına gelir. Nesneye gerçek hayattan bir örnek olarak “köpeğim” verilebilir, türe (bir sınıfa) örnek olarak “köpek” verilir ki bu da “hayvanlar” sınıfının alt sınıfıdır. Çok biçimli nesne durumunda, türünün bazı ayrıntıları seçenekli olarak göz ardı edilir, örneğin bir “köpek” nesnesi “hayvan” olarak bakıldığında bir fonksiyon olarak kullanılabilir. Bu durumda bir “kedi” de olabilir çünkü o da “hayvan” sınıfına aittir. “hayvan” olarak ulaşıldığında, bazı üyeler “köpek” veya “kedi” olarak kullanılmaz sayılır, “kuyruk” olarak saymak gibi, çünkü tüm hayvanlar kuyruğa sahip değildir.

Bir hayalet, kaynağı olmayan bir nesnedir. Bu yüzden programda hiçbir şey sunmaz, sonrasında çöp toplayıcı hafızayı boş olarak işaretler, buna rağmen nesne, veri üzerine yazılıncaya kadar tutar.

İzleç (İşlevsel nesne): Daha çok fonksiyon gibi davranan (fonksiyona C/C++ pointerı gibi) tek yöntemli nesne (C++ da, bu metot işlem operatörü “operator( )”).

Anti nesneler: Genellikle büyük olan, öne ve arkaya bilişimsel yer değiştirerek paralel yaklaşan, zor problemleri çözen ve kavramsallaşmada kullanışlı bilişimsel istiarelerdir.