bbs515 – nesneye yönelik programlamagonenc/courses/bbs515/... · 2019-03-01 · java java dili...

41
BBS515 – Nesneye Yönelik Programlama Ders 1: Programlamaya Giri ş 05.10.2016 Gönenç Ercan

Upload: others

Post on 05-Jan-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

BBS515 – Nesneye Yönelik ProgramlamaDers 1: Programlamaya Giriş

05.10.2016

Gönenç Ercan

Page 2: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Dersin Amacı►Bu derste temel programlama yeteneklerimizi geliştirmeye çalışacağız►Nesne yönelimli programlamanın temellerini Java programlama dilini

kullanarak öğreneceğiz►Önceliğimiz programlama yapabilmeyi öğrenmek üstüne olacak►Nesnesel tasarım ile ilgili BBS656 gibi derslerin alt yapısını

oluşturacağız.►Programlamaya yeni veya alt seviyeden başlayanlar için, BBS514 dersini

aynı zamanda alanlar için ilk haftalarda yapısal programlamatekniklerini Java ile yapmayı öğreneceğiz.

Page 3: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Notlandırma

►Ara sınav %30► Final %50►Ödevler %20

►Geçme notunuz 55. ►Derslere düzenli olarak katılmanızı beklemekteyim.

Page 4: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Ödevler

►Toplam 5 programlama ödeviniz olacak►Bu ödevlerden en iyi not aldığınız 4 tanesi puanlandırılacak►Programlama derslerinde teorik bir bilgiden çok pratik bir yetenek

kazandığınız için program yazıyor olmanız çok önemli►Mutlaka ödevlerinizi yapmaya çalışın, sınavdaki başarınızı da bu

sağlayacaktır►Ödevlerinizle ilgili takıldığınızda email ile soru sorabilirsiniz,

arkadaşlarınızla fikir alışverişi yapabilirsiniz. Ama ödevi son olarak sizinkodlamanız ve üretmeniz gerekmektedir.

►Ofis saatim Çarşamba günleri 16:00-18:00 arasıdır.

Page 5: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Sınavlar

► Sınav soru çeşitleri► Program yazma (%50)► Program takip etme (%30)► Programın hatasını düzeltme (%20)

►Bu soruları çözmenin en kolay yolu, çok pratik yapmaktır► Sınıfta bazı problemlerin kodunu yazacağız, mutlaka bunları kendiniz de

yazmaya çalışın

Page 6: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Dersin sayfası

►Ders notları, ödevler ve sınav sonuçları dersin web sayfasındayayınlacak

►Bu sayfayı haftada bir kere kontrol etmeye dikkat edin

http://gonencercan.com/courses/bbs515/

Page 7: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Bilgisayar MimarisiTemel bilgiler

Page 8: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Bilgisayarın donanımı (Von Neumman Mimarisi)

►Von Neumann Mimarisi: Temel olarak birişlemci, hafıza birimi, Girdi/Çıktı ünitelerindenoluşur

► İşlemci iki kısımdan oluşur, kontrol ünitesi veALU.

► İşlemci çalıştıracağı komutu yükler, komutlaragöre yapılacak işlem belirlenir

►ALU’da bu işlem için gerekli olandüzenlemeler yapılır

►Hafıza’dan bilgi yüklenmesi gerekirse yüklenirve çalıştırılır.

Page 9: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Bilgisayar donanımı

►Bu donanım yapısı hala geçerlidir, komutların hafızadan (veya girdi) yüklenebiliyor olması bilgisayarın faydasını arttırmaktadır

►Bir bilgisayarın işe yarayan bir işlem yapabilmesi için komutlara ihtiyacivardır

►Bu komutlar ve aslında bütün veriler ikili sayı sistemi ilesaklanmaktadır

►Her bir bit 0 veya 1 değerini alabilir

Page 10: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Verilerin gösterimi

►Komut: add $r1, $r2 àbit kodu ile 00101101 bir bit dizisine çevirilir. Her bir bit ALU’yu işleme göre düzenlemeye yarar

► Sayılar: Bir tamsayının 2’lik sisteme çevirilmesi ile gösterim yapılır. Bu sistemden ufak bir fark + ve – yi gösterebilmek için birinci bit kullanılır► 7 = 0000 0111

►Metin veri: Karakterlerin herbiri ASCII tablosu dediğimiz tablo ilesayılara haritalanmaktadır. A = 65 = 01000001 gibi.

►Herhangi bir anda bilgisayarın hafızasını düşündüğümüzde tüm göreceğimiz uzun bir bit dizisi olacaktır.

Page 11: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Turing Makinası

►Alan Turing programlamanın temelini oluşturan bir model önermiştir►Bu model bir teyp üstünden veri okuyabilen bir okuyucu/yazıcı kafa ile

tanımlanmaktaydı►Aslında amaç insanların nasıl hesaplama yapabildiğini açıklamaya

yönelikti►Örnek problem verilen bir bit serisi 111100 acaba 1n0n yapısında mı? ►Bu model ile günümüzdeki bütün programları yazmak mümkündür►Peki bu kadar basit bir yöntem hepsini tanımlayabilirken programlama

dillerine neden ihtiyaç duyuyoruz

Page 12: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Programlama Dili Seviyeleri

►Bilgisayarın gerçekte işlettiği komutlar aslında birer bit dizisi►Bu bit dizisini bir insanın anlaması çok zor►Düşük seviyeli bir dil bit dizisine en yakın dildir►Assembly dili düşük seviyeli bir dildir, yukarıda assmebly ve karşılık

gelen C kodu gösterilmektedir. ►C assembly’e göre daha üst seviye bir dildir.

movl $5, -4(%rbp) movl -4(%rbp), %eaxaddl $1,%eax movl %eax, -4(%rbp)

int i = 5; i += 1;

Page 13: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Programlama Dil Seviyeleri

►Düşük seviye programlama dili► Makina diline yakın► En ufak detaya kadar belirtmemiz gerek► Anlaması zor

►Üst seviye programlama dili► Anlaması daha kolay► Ara adımları derleyiciler bizim için yapıyor► Büyük projeleri yönetmek daha kolay

Page 14: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Programlama Paradigmaları►Programları nasıl yapılandıracağımızı ve düşünme yöntemimizi belirler►Bazı paradigmalar

► Yapısal Programlama (C, Pascal, Basic)► Nesne yönelimli (C++, Python, Java)► Fonksiyonel (Haskell, Scala)► Buyurgan (Imperative)► Bildirimsel (Declarative): SQL gibi

Page 15: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Yazılım Karmaşıklığı

►Yazılımlar genel olarak geniş kapsamlı oluyor► Sadece bir kişinin bütün detaylarına hakim olması mümkün olmuyor►Bir insan aynı anda 7 (artı eksi 2) kavramı takip edebilmektedir►Bu yüzden bir kişinin geniş kapsamlı bir projede alabileceği ideal rol de

kısıtlıdır►Bir problemi bir bütün olarak çözmek yerine parçalara bölerek

çözmeye çalışıyoruz (divide&conquer)►Bir bilgisayar sisteminde CPU ayrı yapılır, CPU’nun içindeki devreler

ayrı tasarlanır. Bu parçalara bölme sayesinde sistemigerçekleştirebiliyoruz

Page 16: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Parçala-Yönet►Parçala yönet taktiğini kullanmak için verilen bir işi parçalara

bölmemiz gerekmektedir►Bir projeyi alt işlere bölümlemek çok önemlidir►Yapısal programlamada yapılması gereken algoritmalar üstünden bir

bölümleme söz konusudur.►Nesne yönelimli yazılım ise gerçek dünyaya daha yakın olarak

düşünebileceğimiz nesneler ve onların ilişkileri üstünden işibölümlemimize olanak sağlar

Page 17: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Algoritmik bölümleme

CHAPTER 1 COMPLEXITY 19

The Role of Decomposition

“The technique of mastering complexity has been known since ancient times: divide et impera (divide and rule)” [16]. When designing a complex software sys-tem, it is essential to decompose it into smaller and smaller parts, each of which we may then refine independently. In this manner, we satisfy the very real con-straint that exists on the channel capacity of human cognition: To understand any given level of a system, we need only comprehend a few parts (rather than all parts) at once. Indeed, as Parnas observes, intelligent decomposition directly addresses the inherent complexity of software by forcing a division of a system’s state space [17].

Algorithmic Decomposition

Most of us have been formally trained in the dogma of top-down structured design, and so we approach decomposition as a simple matter of algorithmic decomposition, wherein each module in the system denotes a major step in some overall process. Figure 1–3 is an example of one of the products of structured design, a structure chart that shows the relationships among various functional elements of the solution. This particular structure chart illustrates part of the design of a program that updates the content of a master file. It was automatically generated from a data flow diagram by an expert system tool that embodies the rules of structured design [18].

Figure 1–3 Algorithmic Decomposition

Get masterarea

Get formattedupdate

Match Update Put unmatchedmaster

Put formattedmaster

Get old masterrecord

Validatechecksum

Edit Get sequencedcard

Get updatecard

Seqcheck

Addchecksum

Put newmaster record

Formatoutput

Updatefile

ReformatGet validcare

ExpandGet OKmaster

Put newmaster area

Grady Booch et al. Object Oriented Analysis and Design. Addison Weisley

Page 18: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Nesne Yönelimli Bölümleme

20 SECTION I CONCEPTS

Object-Oriented Decomposition

We suggest that there is an alternate decomposition possible for the same prob-lem. In Figure 1–4, we have decomposed the system according to the key abstrac-tions in the problem domain. Rather than decomposing the problem into steps such as Get formatted update and Add checksum, we have identified objects such as Master File and Checksum, which derive directly from the vocabulary of the prob-lem domain.

Although both designs solve the same problem, they do so in quite different ways. In this second decomposition, we view the world as a set of autonomous agents that collaborate to perform some higher-level behavior. Get Formatted Updatethus does not exist as an independent algorithm; rather, it is an operation associ-ated with the object File of Updates. Calling this operation creates another object, Update to Card. In this manner, each object in our solution embodies its own unique behavior, and each one models some object in the real world. From this perspective, an object is simply a tangible entity that exhibits some well-defined behavior. Objects do things, and we ask them to perform what they do by sending them messages. Because our decomposition is based on objects and not algo-rithms, we call this an object-oriented decomposition.

Algorithmic versus Object-Oriented Decomposition

Which is the right way to decompose a complex system—by algorithms or by objects? Actually, this is a trick question because the right answer is that both views are important: The algorithmic view highlights the ordering of events, and the object-oriented view emphasizes the agents that either cause action or are the subjects on which these operations act.

Figure 1–4 Object-Oriented Decomposition

Update toCard

File ofUpdates

Checksum

MasterRecord

Master File

UpdateGet Formatted Update

Get Put Create

Is Valid Add

Get ReformatMatch

Page 19: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Sınıf Listesi

►Örnek bir problem üstünden iki paradigmayı karşılaştıralım►Bir sınıftaki öğrencilerin dersten sonra gidecekleri başka bir ders daha

var. Bu dersin yerini öğrenciler bilmiyor. ►Probleme Yapısal programlama ile çözüm

► Derse gelen her öğrencinin► Adını al, ► Bir sonraki dersini bul► Kampüs haritasından dersin sınıfını bul► Öğrenciye tarif et

► Nesne yönelimli çözüm► Öğrencilerin derslerinin ve sınıflarının listesini koy► Haritada sınıfları işaretleyip sınıfa as

Page 20: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Sorumluluk kavramı

►Nesnelerin belirli sorumlulukları var►Bu iletişimi kolaylaştırıyor.

► Harita nesnesi, neleri içermesi gerektiği ve görevi tanımlı► Satır olarak kod üstünden anlatmak yerine daha kolay

► Soyutlaştırma► Bir nesneyi gerçekleştirdiğimizde artık geriye dönüp kodlarını incelememize

gerek kalmaz► Bütün olarak kullanabileceğimiz bir araca dönüşür

►Bilgi saklama► Sadece kendi yapmamız gereken kısma odaklanabiliriz

Page 21: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Nesne►Verisi (özellikleri) olan. Değişkenler►Davranışı olan. Fonksiyonlar►Kendi durumunu belirleyen özellikleri ile davranışını belirleyen

metodlar ile değiştiren bir yazılım aracı►Herhangi soyut, somut varlık nesne olarak tasarlanabilir

► Fiziksel varlık: Araba, Öğrenci► Kavramsal varlık: EFT, Toplantı► Yazılımsal varlık: Yığıt, Liste, Küme

Page 22: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Java

► Java dili James Gosling tarafından 1995 yılında üretilmiş birprogramlama dili ve platformdur

► Java sanal makina üstünde çalışan bir dildir. ►Yukarıda bir programın normal geliştirme süreci gösterilmiştir (Örnek

C++ programı)►Bu işleyiş Java için farklıdır sanal makina’da çalışacak kod üretilir

Compiler Source File Machine-language

File Linker Executable File

Library Code

Page 23: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Neden Java►Nesne yönelimli programlama kurallarının en net olduğu dillerdendir►Bu özelliği ile büyük kurumsal projelerde kullanılmaktadır► İşletim sistemi ve donanım bağımsızdır► Internet sayfaları üstünden çalıştırılabilir►Gömülü sistemlerde kullanılmaktadır►Cep telefonlarında kullanılmaktadır (Android)►En önemlisi kuralları ve yapısı sayesinde karmaşık projelerde anlaşılır

ve takip edilebilir bir yapısı bulunmaktadır

Page 24: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Java versiyonları► Java Standard Edition J2SE: Derste kullanacağımız temel sürüm. İndirip

yüklemeniz gerekiyor.► Java Enterprise Edition J2EE: Kurumsal projeler için kullanılan platform.

Kurumsal uygulamalarda bulunan Web servis, Enterprise Java Beans gibi araçları barındırır.

► Java Mobile Edition J2ME: Eski nesil cep telefonu uygulamaları için

Page 25: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

IDE (Integrated Development Environment)►Program yazarken kullanabileceğiniz bir arayüz►Hata yapmanızı engelleyecek üretkenliğinizi arttırabilecek araçlar içerir►Eclipse Standard Edition*►Netbeans► Intellij IDEA

Page 26: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

İlk Java programımız!

►Yukarıdaki kodu herhangi bir text editörü ile Welcome.java adında birdosyaya yazın.

►Windows’da notepad ile yazabilirsiniz

//This program prints Welcome to Java! public class Welcome {

public static void main(String[] args) { System.out.println("Welcome to Java!");

}}

Page 27: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Programın derlenmesi ve çalıştırılması►Programı derlemek için javac komutunu kullanacağız►Bilgisayarınıza Java Development Kit yükledikten sonra “Komut istemi”

(Command Prompt) açıp derleyebilirsiniz► Başlangıç menüsünden (Start Menu) à Çalıştır (Run) à cmd.exe

►Açılan siyah ekrana:► javac Welcome.java

►Yazdığımızda Welcome.class dosyası oluşacaktır. Bu dosyaprogramımızın Bytecode cinsinden derlenmiş hali.

► Sanal makinada class dosyaları çalıştırılabilir. Bunun için► java Welcome

Page 28: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

28

Programı Derleme ve Çalıştırma

Source Code

Create/Modify Source Code

Compile Source Code i.e., javac Welcome.java

Bytecode

Run Byteode i.e., java Welcome

Result

If compilation errors

If runtime errors or incorrect result

public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Java!"); } }

… Method Welcome() 0 aload_0 … Method void main(java.lang.String[]) 0 getstatic #2 … 3 ldc #3 <String "Welcome to Java!"> 5 invokevirtual #4 … 8 return

Saved on the disk

stored on the disk

Source code (developed by the programmer)

Byte code (generated by the compiler for JVM to read and interpret, not for you to understand)

Page 29: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Program çalışması

29

//This program prints Welcome to Java! public class Welcome {

public static void main(String[] args) { System.out.println("Welcome to Java!");

}}

Enter main method

Page 30: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

30

//This program prints Welcome to Java! public class Welcome {

public static void main(String[] args) { System.out.println("Welcome to Java!");

}}

Program ÇalışmasıExecute statement

Page 31: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

31

//This program prints Welcome to Java! public class Welcome {

public static void main(String[] args) { System.out.println("Welcome to Java!");

}}

Program Çalışması

EkranaWelcome to Java yazdırlacaktır

Page 32: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Eclipse ile Program Derleme

► Sınıfta demosu yapılacaktır

Page 33: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Java Programlarının Anatomisi

►Yorum satırları►Anahtar kelimeler (Reserved Words)►Modifiers► İfadeler►Bloklar► Sınıflar►Metodlar►Main metod

Page 34: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Yorum satırları

►Bir programın içinde kendinize veya başka programcılara yardımcıolacak yorumlar ekleyebilirsiniz

► // bir satırı yorum olarak işaretler► /* Yorum */ Paragraf yorum, /* ile başlayıp */ ile biten kısımları yorum

olarak işaretler► Javadoc yorumları: Metod ve sınıf önlerine konulan özel yorumlardır.

Java dokümantasyonlarında gözükür. Diğerlerine oranla bu yorumtipini tercih etmeniz iyi bir pratiktir

Page 35: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Anahtar kelimeler

► Java dilinde özel işlevleri olan kelimeler listesidir. ►Eclipse IDE gibi araçlar farklı renk ile gösterilir. Bu kelimeleri başka

amaçlarla kullanamazsınız

Page 36: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Modifiers► Java’da tanımlanan bir sınıfın, metodun veya özelliğin nasıl

kullanabileceğini belirtmeye yarar. ►Önümüzdeki derslerde daha detaylı olarak göreceğiz►Temel olarak tanımlardan önce görülürler

Page 37: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

İfadeler►Bir ifadeyi doğal dildeki cümle olarak düşünebilirsiniz► İşlenebilecek bir komutu ifade ederler►Tek satırlı ifadeler “;” ile sonlandırılır. Bunu cümle sonunda kullanılan

“.” işareti gibi düşünebilirsiniz►Tıpkı cümleler gibi ifadenin bir anlamı olması gerekir

Page 38: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Bloklar

public class Test { public static void main(String[] args) { System.out.println("Welcome to Java!"); } }

Class block

Method block

Page 39: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Sınıflar

► Java’da bir kod mutlaka bir sınıfın içinde tanımlanmalıdır. ►Bu yüzden bütün programlar bir sınıf bloğu içerir► Sınıfların ne olduğunu daha sonraki derslerde göreceğiz

Page 40: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Metodlar► System.out.println() gibi çağırılabilen bir dizi işlemdir. Bu durumda

verilen mesaji ekrana yazdır demiş oluyoruz►Kendi metodlarımızı tanımlamayı da göreceğiz, bu sayede problemleri

daha küçük parçalara ayırma şansımız olacak

Page 41: BBS515 – Nesneye Yönelik Programlamagonenc/courses/BBS515/... · 2019-03-01 · Java Java dili James Gosling tarafından 1995 yılında üretilmiş bir programlama dili ve platformdur

Main metodu

► Java’da çalıştırılabilen bütün programlar bir main metodu içermekzorundadır.

►Aslında bu bir metod tanımıdır, metodun imzası ve komutları

public static void main(String[] args) {// Statements;

}