System.out.println()'deki out nedir?

SECBEGENAL

Picopat
Katılım
24 Mart 2021
Mesajlar
108
Çözümler
1
Merhaba, önce yabancı kaynaklardan araştırma yaptım ama pek tatmin olamadım. Biraz havada kalınca burada konu açmak istedim.
Java:
System.out.println();
//System => Sınıf
//out => Tam olarak nedir?
//pritnln => Metod

Yani tam olarak nedirden kastım "Sınıf değil, metod değil. O zaman ne?" anlamında.

Bu açıklama da istediğim soruya tam karşılık değil maalesef.

The "standard" output stream. This stream is already open and ready to accept output data. Typically this stream corresponds to display output or another output destination specified by the host environment or user.
 
Son düzenleme:
public static final PrintStream out = null;

System sınıfının içerisindeki bir Static PrintStream Objesi.

Sınıf bir objenin(nesne) şablonudur. Yabancıların sıkça kullandığı "Kurabiye ve kurabiye kalıbı" gibi düşünebilirsiniz. Bu şablondan oluşturulan örneklere(instance) object(nesne) diyoruz.
 
public static final PrintStream out = null;

System sınıfının içerisindeki bir Static PrintStream Objesi.

Sınıf bir objenin(nesne) şablonudur. Yabancıların sıkça kullandığı "Kurabiye ve kurabiye kalıbı" gibi düşünebilirsiniz. Bu şablondan oluşturulan örneklere(instance) object(nesne) diyoruz.
Yani System sınıfı içeriseinde PrintStream sınıfından out adında bir object oluşturuldu. Fakat benim kafamı karıştıran bu object oluşurken neden constructor kullanılmadı?
Java:
public static final PrintStream out = new PrintStream();

Ya da kullanıldı fakat varsayılan özellikler ve metodlar "null" ile yok sayıldı? Yanlış mı acaba?
 
Son düzenleme:
Yani System sınıfı içeriseinde PrintStream sınıfından out adında bir object oluşturuldu. Fakat benim kafamı karıştıran bu object oluşurken neden constructor kullanılmadı?
Java:
public static final PrintStream out = new PrintStream();
Singleton pattern kullanıldığından sadece bir kez oluşturulup aynı nesneyi kullanmak için Runtime'da kullanılan ortama uygun bir obje construct ediliyor. Java, tek bir platforma ait olmadığı için out nesnesi duruma göre farklı tipte objeleri tutması gerekir. Hangi PrintStream objesine ihtiyacımız olduğunu Compile time sırasında bilemeyiz. Abstraction'ın getirdiği bir yükümlülük. (Bkz. Bridge Pattern)

out her zaman cmd'ye yazı yazdırmak için kullanılmayacak. Eğer çalıştığı ortam bir tarayıcı ise geliştirici consolu; linux, unix ise terminal olacak. Basitleştirerek anlatıyorum ancak bu konular sandığınızdan daha derin. Merakınız varsa araştırmanızı öneririm.
 
Son düzenleme:
Singleton pattern kullanıldığından sadece bir kez oluşturulup aynı nesneyi kullanmak için Runtime'da kullanılan ortama uygun bir obje construct ediliyor. Java, tek bir platforma ait olmadığı için out nesnesi duruma göre farklı tipte objeleri tutması gerekir. Hangi PrintStream objesine ihtiyacımız olduğunu Compile time sırasında bilemeyiz. Abstraction'ın getirdiği bir yükümlülük. (Bkz. Bridge Pattern)

out her zaman cmd'ye yazı yazdırmak için kullanılmayacak. Eğer çalıştığı ortam bir tarayıcı ise geliştirici consolu; linux, unix ise terminal olacak. Basitleştirerek anlatıyorum ancak bu konular sandığınızdan daha derin. Merakınız varsa araştırmanızı öneririm.
Tesekkur ederim, o zaman fazla kurcalamaya gerek yok. Sınıf icerisinden out objesi uzerinden cagrilan bir metod olarak bilsem yeterli olur galiba.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı