Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
26
Cevap
617
Tıklama
0
Öne Çıkarma
Java danışma
G
8 yıl
Çavuş
Konu Sahibi

Java ogrenmeye calısıyorum. Ayrıntı sorularda kendisine danışabilecegim detaycı bir arkadaş var mı?

Ornek soru:
C dili le programlama yaparken "int main (void) {...}" şeklinde programımızı yazıyoruz. Javadaysa bu main fonksiyonumuz bir class ın içinde tanımlanıyor. Bu durum bana garip geliyor. Javada aslında main fonksiyon yerine main bir class var ve main fonksiyon dediğimiz şey de bu main class içindeki en kapsamlı/üst fonksiyon mu?

Ornek soru 2:
C dili ile programlama yaparken "int main (void) {...}" yazıyoruz. Bu demek ki main fonksiyonumuz input almayacak (void olduğu için) ve integer return edecek. Peki "int main(int argc, char *argv[])" ne anlama geliyor? Integer ve karakter (string?) input edecek ama nereden edecek? Galiba komut isteminden (linuxta terminal) programı çalıştırıken girilen parametreleri algılamak için boyle yazıyoruz. Peki bu main fonkiyonu ikinci bir main fonksiyon ile çağırıp int ve char parametlerini bu ikinci main fonksiyondan almak mumkun mu?

Ornek soru 3:
Constructor denilen şeye ne gerek var? Zaten fonksiyon tanımladığımızda ne iş yapmasını istediğimiz belli değil mi? Compiler bu constructor ı neden otomatikman tanımlamıyor? Syntax'ta constructor ın gorulmesinin sebebi ne?

Şimdiden teşekkurler.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi Guest-288644A72 -- 8 Ocak 2018; 4:57:41 >

T
8 yıl
Yarbay

Son paragafla ilg olarak: Bir pakette (Java package) onlarca sınıf ve her bir sınıfa ait (sembolik rakam olarak) 100 metod ve (sembolik rakam) 30 değişken (Java'daki ifadesiyle 'field') varsa o 100 metod ve değişkeni akılda kimse tutmaz, sadecehttps://docs.oracle.com/javase/7/docs/api/ 'de o uygulamada kullanılabilecek sınıflara ve içeriğine bakar ve uygun bir sınıfı projeye dahil edip (=import) IDE'nin onları otomatik olarak getirmesini sağlayıp uygun metodları kullanır.



Örneğin Internetteki sayfaları çekip konsola yazdıran bir HTTP istemcisi yapacağım diyelim, java.net paketindeki HttpURLConnection sınıfını import ederim, sayfayı çekmeden önce sayfa var mı yok mu kontrol için



quote:



import java.net.URL;

import java.net.HttpURLConnection;

import java.io.*;



URL url = new URL(theUrl);

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

if ( urlConnection.getResponseCode(); == HttpURLConnection.HTTP_OK)

{

System.out.println("sayfa var");

// etc etc...}







tarzında birşeyler yazarım, oradaki getResponseCode metodu ve HTTP_OK değişkenini aklımda tutamam, duruma göre tahmin ederim yani Oracle docs'taki başlıklara göre veya IDE'min getirdiği seçenekler arasından uygun olan bir tanesini seçer ve öyle devam ederim, vs. vs..



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Xfce4
M
8 yıl
Yarbay

Rica ederim.

Evet Jar compressed edilmis bir dosya turu. API, programlanabilir herhangi bir komponentin arayuzu. Yani Java arabaysa, direksyon, kontak, el freni vs API. Programlayabildigin herhangi bir seyin sana bakan yuzu. Arka planda ne oldugunu encapsule etmek icin. Jar ile hic bir alakasi yok.https://docs.oracle.com/javase/7/docs/api/ --> Java 7 API 'si mesela. Class 'lar ve metodlarin ne yaptigi, nasil cagrildigi burada dokumente edilmis. Herhangi bir programlama dili ogrenirken en degerli sey bu kisim.

Primitive type'lari obje haline getirebilirsin. Buna autoboxing deniliyor. Tam tersi islem de unboxing. Ornegin:

int x = 9;
Integer y = x;

Su durumda compilera, y Objesini primitif bir tipe esitlemesini soyledin. Arka planda JVM autoboxing yapar.

Her seyin bir object olmasi bir programlama yaklasimi. Makine kodu seviyesine indikten sonra zaten ortada obje mobje kalmaz : ) Registerlar, instructionlar vs.

Java'da primitif data tiplerinin bulunmasi tercihini muhtemelen performans kaygisi ile yaptilar. Zira ayni datanin primitif hali daha az memory tuketir, surekli "autobox" , "unbox" yaparsan program yavaslar. Bunlar tabi dikkate alinacak yavasliklar degil ama boyle bir tercih yapmalarinin sebebi bu olabilir. Bilmiyorum acikcasi, tahmin yurutuyorum.

Birden fazla main metodu varsa derleyiciye degil, jar'i olusturacak olan "build" komutuna soyluyorsun. Derleyici icin degisen bir sey yok. Command Line'dan derleme icin javac,jar build etmek icin de "jar" komutu kullaniliyor. Main class ile ilgilenen kisim "jar" komutu. "javac" icin bu bilgi bir sey ifade etmiyor. Onun olayi baska.



< Bu ileti tablet sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Xfce4
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.