Merhaba, ne zamandir nesne yonelimli programlama ile ilgileniyorum ama donanim seviyesinde nesnenin ne anlama geldigini bir turlu cozemedim. Siniflari, nesneleri yaratmak uzere icerisinde nitelik ve metotlarin oldugu bir ozne olarak kabul edersek, nesne nedir? Sacma bir soru olmamistir umarim. :) Gercekten merak ettigim icin soruyorum.

soruldu: 14 Kas '14, 14:40

acrx's gravatar image

acrx
51126
cevap kabul oranı: 0%


Program kodlarının, class denilen yapılar içinde toplanıp,hedef programın etkin bir şekilde programlanmasıdır.Örneğin bir hesap makinesi programı yazacaksak,bu program class’lara ayrılabilir.Bir class'da hesap makinesi uygulamasının View'ı(Görsel arayüzü) bulunurken,diğer class'da aritmatik işlemlerin yapılacağı değişkenler(nitelem) ve metodları bulunabilir.Böylece görev planlanması yapılmış olur. 'Ve her class Kendi İşini yapar.' Değişkenleri nitelem terimi ile kullanıyoruz çünkü bir sınıftaki değişkenler o sınıfın niteliklerini yani özelliklerini, metotlar ise,sınıfın davranışlarını belirler.

Nesne tabanlı programlama,yazılan programın ileri zamanlarda yapılacak olan,bakımında veya programa yeni özellik ekleme,çıkarma durumlarında ve yazılan kodun tekrar kullanılabilmesi durumlarında yazılımcıya büyük kolaylıklar sağlar ve yapılan değişiklikler programın bütününü etkilememiş olur. Bir örnek ile göstermek gerekirse;

/ * @author Mert Sezgin / public class Hayvan {

private int boy;  //Hayvan sınıfının özellikleri.(Nitelem)
private int kilo;

//Hayvan sınıfının metodları.(Davranış)
public void yemekYe(String besin) {
    System.out.println("Ben " + besin + " ile besleniyorum");
}

public int getBoy() {
    return boy;
}

public void setBoy(int boy) {
    this.boy = boy;
}

public int getKilo() {
    return kilo;
}

public void setKilo(int kilo) {
    this.kilo = kilo;
}

    public static void main(String[] args) {
    Hayvan hayvan1= new Hayvan();
    hayvan1.setBoy(30);
    hayvan1.setKilo(3);
    hayvan1.yemekYe("Ot");

  //Hayvan hayvan1= new Hayvan(); yazarak Hayvan nesnesini için bellekte bir yer açtık.Ve bu nesneyi bellekte referans olarak hayvan1 referansı,işaretçisi ile tuttuk. hayvan1,Hayvan sınıfına ait nesnenin bellekteki yerini işaret etmektedir.Ve böylece hayvan1. yazarak Hayvan sınıfının içerisindeki özelliklere erişip kullanabiliriz.
Bir sınıftan birden fazla nesne oluşturulabiliriz ve bu nesneler bellekte her biri farklı alanlarda tutulur.
    Hayvan hayvan2= new Hayvan();
    hayvan2.setBoy(100);
    hayvan2.setKilo(10);
    hayvan2.yemekYe("Et");

   Yukarıdaki özellikler Hayvan sınıfının hayvan1 referansında tutulurken,burada ise Hayvan'dan tekrar bir nesne yaratılmış 'hayvan1'in kullandığı aynı özellikleri kullanmış' ancak hayvan2 nesnesi bellekte farklı bölgede tutulduğu için,hayvan1'in özelliklerini değiştirmemiştir.

Not: Hayvan sınıfından nesne yaratmadan önce Hayvan sınıfı soyut durumdadır.Ancak =new Hayvan(); diyerek bellekte yer açar,somut hale getirip kullanabiliriz.

}

permanent link

cevaplandı: 15 Kas '14, 08:18

Mert%20Sezgin's gravatar image

Mert Sezgin
1532
cevap kabul oranı: 25%

Başından başlayalım. Problemlerin çözülmesi için programlar yazılır, uygulamalar geliştirilir. Programlamaya prosedürel yaklaşımda bir problem küçük parçalara bölünür ve her bir problem ayrı ayrı çözülür. Sonra tüm problemi çözmek için bu küçük çözümler birleştirilir. Her küçük problem parçaları, bir görev olarak ele alınır. Bu görevi gerçekleştirmek için prosedür adı verilen kod blokları yazılır. Bir prosedür başka bir prosedürden erişilebilir. Prosedürler birleştirilip bir program oluşturulur.. Daha sonra bütün programlar birbirlerine entegre edilip yazılım uygulaması ortaya çıkar. Ardından kontrol deyimleri, operatörler, program parçacıkları vs vs ..

permanent link

cevaplandı: 14 Kas '14, 14:48

akgulbilal58's gravatar image

akgulbilal58
61223
cevap kabul oranı: 0%

Guzel aciklamissiniz ama dediginiz gibi bu prosedurel yaklasim.

(14 Kas '14, 15:20) acrx acrx's gravatar image

Kendim sordum, kendim cevaplayim bari. Kisaca referans ya da pointerlarin isaret ettigi bellek alanlari. Cokta basit bir cevabi varmis aslinda, arada Java ogrenince kafamdaki pek cok soru isareti gitti.

permanent link

cevaplandı: 15 Ağu '15, 05:24

acrx's gravatar image

acrx
51126
cevap kabul oranı: 0%

1

sınıf bir referans atfetmez, sınıf sadece bir şablondur.. new anahtar'ı ile sınıftan bir instance yarattığınızda diğer bir deyişle sınıfı canlı hale getirdiğinizde, jvm'in heap'inde jvm tarafından bir serialVersionId atanıp ve burada saklanır ta ki gc temizleyene kadar, ve yarattığınız instance bellekten bir referans alır..

(15 Ağu '15, 18:22) Turgay Can Turgay%20Can's gravatar image

felsefik olarak sınıf bir kalıptır , model dir örneğin kek kalıbı, nesne ise o kalıbtan ürettiğin bir kektir :)

permanent link

cevaplandı: 17 Ağu '15, 02:37

ibrahim472's gravatar image

ibrahim472
1.9k1614
cevap kabul oranı: 10%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×13
×6
×1

Soruldu: 14 Kas '14, 14:40

Görüntüleme: 944 kez

Son güncelleme: 17 Ağu '15, 02:37

powered by BitNami OSQA