Java ile Nesne Yönelimli Programlama

(Volkan İstek)

Bu eğitim Java ile Programlamaya Giriş – 2 eğitiminin devamı niteliğindedir. Önceki eğitimlerde prosedürel programlama anlatılmıştı. Bu eğitimde nesne yönelimli programlama anlatılacaktır. Haftada 3 saatten 12 haftalık, toplam 36 saat bir eğitim tasarlanmıştır.

Eğitim sonucunda nesne yönelimli her programlama dilinde bulunan; Object, Class, Encapsulation (Data hiding), Inheritance, Polymorphism, Abstract Class, Interface, Exception Handling gibi birçok araç ve daha fazlası detaylı bir şekilde öğrenilecektir.

Ayrıca daha önceki eğitimlerde çekilmiş ders videolarını buradan izleyebilirsiniz.

Bu eğitime katılmak için Java ile Programlamaya Giriş – 1  ve Java ile Programlamaya Giriş – 2 eğitimlerini tamamlanmış olması gerekmektedir. Bu eğitimleri tamamlamamış ancak bir şirkette herhangi bir programlama diliyle an az bir sene yazılım geliştirmiş iseniz bu da yeterlidir. Buradaki amaç sınıfın seviyesini dengeli tutmaktır. Ancak bu iki gruba da girmemenize rağmen eğitimde başarılı olabileceğinize inanıyorsanız, benimle  bire bir görüşebilirsiniz.

Ayrıca temel düzeyde İngilizce bilgisine sahip olmak da gerekmektedir. Hiç İngilizce bilmiyorsanız bu eğitimde zorlanabilirsiniz. Çünkü dokümanların çoğu İngilizce. Ayrıca, hiç İngilizce bilmeden yazılımcı olmak, pek de mümkün değildir. Uygulama geliştirirken karşılaştığınız sorunları aşmak için internette arama yapıp İngilizce sayfalardan faydalanmanız gerekecektir. İleride yazılımcı olarak hayatınızı devam ettirmek istiyorsanız, temel düzeyde de olsa İngilizce öğrenmeniz gerekiyor.

Eğitim genel olarak 36 saatte tamamlanmaktadır. Haftada 3 saat ders verildiğinde eğitim yaklaşık 12 hafta (yaklaşık 3 ay) sürmektedir. Sınıfın durumuna göre bu sürede küçük değişiklikler olabilir. Her durumda konuların tamamı eksiksiz bir şekilde işlenecektir.

Eğitim ücreti tanıtım amacıyla öğrenciler için 225 TL + KDV diğer katılımcılar için 300 TL + KDV dir.

Ekonomik durumu iyi olmayan ancak eğitime katılmayı çok isteyenler, eğitim ücretini ekonomik durumu düzeldiğinde ödeyebilirler.

Ücret çok uygun olduğu için bazen ‘Eğitim ücretinin tamamı mı?’ diye soranlar oluyor. Evet, bu ücret 2 aylık eğitimin tamamını kapsıyor. Tanıtım amacıyla eğitimin ücreti oldukça uygun tuttum. Tanıtım süreci sonunda eğitim ücreti     yükselecek olmakla birlikte hiç bir zaman üniversite öğrencilerinin erişemeyeceği bir ücret olmayacaktır.

Nerede ve Nasıl

Bu online bir eğitimdir. Kullanılan teknoloji (GoToMeeting) sayesinde bütün dersler kaydedilir ve daha sonra dersleri tekrar izleyebilirsiniz. Dersler interaktif bir şekilde işleniyor. İstediğiniz zaman benimle iletişime geçip soru sorabiliyor, kendi ekranınızı paylaşabiliyor, hatta benim bilgisayarımı uzaktan kullanabiliyorsunuz. Bu şekilde evinizde oturup Türkiye’nin veya dünyanın herhangi bir yerinden eğitime katılabilirsiniz. Online eğitimi ilk hafta deneyip memnun kalmadığınız taktirde ücretinizin tamamını iade alabiliyorsunuz. Eğitimden ayrılma kuralları için tıklayınız.

Bütün eğitim dokümanları ve  ders videoları kurs.javaci.net (Moodle) üzerinde tutulmaktadır. İstediğiniz zaman istediğiniz bilgisayar veya mobil cihazdan bağlanarak dokümanlara ve videolara ulaşabilirsiniz

Yöntem ve Materyaller

Yazılım öğrenmek uzun ve bol bol pratik yapmayı gerektiren bir yol. Yabancı dil öğrenme sürecine çok benziyor. Sadece dinleyerek hiç konuşmadan bir dili öğrenemeyeceğiniz gibi, hiç kod yazmadan da Java’yı ve programlamayı öğrenemezsiniz. Bunun için eğitim süresi boyunca 500 e yakın soru çözmenizi istiyorum. Bu soruların çoğunu çözdüğünüz zaman program yazmakla ilgili çok ilerlediğinizi göreceksiniz.

kurs.javaci.net (Moodle) üzerinde her bölüm için alıştırmaları ve soruları hem Türkçe hem de İngilizce olarak bulabilirsiniz. Demo kullanıcısıyla giriş yapmak için aşağıdaki bilgileri kullanabilirsiniz:
Kullanıcı: demo
Şifre Demo1234
Link: kurs.javaci.net

Ayrıca programlama dili nasıl öğrenilirle ilgili makaleyi burada bulabilirsiniz.

Kaynak Kitaplar

TEMEL KİTAP:

1) Intro to Java Programming, Comprehensive Version  (10th Edition) Y. Daniel Liang: Amerikada ve Türkiye’de birçok üniversitede kullanılan çok başarılı bir kaynaktır.

YARDIMCI KİTAPLAR:

1) Java How to Program, Deitel, Türkiye’de bazı üniversitede ders kitabı olarak kullanımaktadır.

2) Java The Complete Reference, Herbert Schildt: C, C++, Java ve C# kitaplarıyla tanınan dünyanın en ünlü yazarlarından biridir. Kitabın Alfa Yayınları’ndan çıkan Türkçe çevirisi de var.

Türkçe kaynak olarak detaylı bilgim yok ama tavsiyem çok satan bir kaç Java kitabını alıp okumanız. Tek bir kitap ile Java’yı öğrenmek mümkün değildir. İlk kitabı detaylı bir şekilde okuduktan sonra başka kitapları hızlı bir şekilde okuyabilir ve daha önce tam anlamadığınız yerleri pekiştirebilirsiniz.

Eğitim İçeriği

Chapter 9 Objects and Classes

9.1 Introduction
9.2 Defining Classes for Objects
9.3 Example: Defining Classes and Creating Objects
9.4 Constructing Objects Using Constructors
9.5 Accessing Objects via Reference Variables
9.6 Using Classes from the Java Library
9.7 Static Variables, Constants, and Methods
9.8 Visibility Modifiers
9.9 Data Field Encapsulation
9.10 Passing Objects to Methods
9.11 Array of Objects
9.12 Immutable Objects and Classes
9.13 The Scope of Variables
9.14 The this Reference

Chapter 10 Object-Oriented Thinking

10.1 Introduction
10.2 Class Abstraction and Encapsulation
10.3 Thinking in Objects
10.4 Class Relationships
10.5 Case Study: Designing the Course Class
10.6 Case Study: Designing a Class for Stacks
10.7 Processing Primitive Data Type Values as Objects
10.8 Automatic Conversion between Primitive Types
and Wrapper Class Types
10.9 The BigInteger and BigDecimal Classes
10.10 The String Class
10.11 The StringBuilder and StringBuffer Classes

Chapter 11 Inheritance and Polymorphism

11.1 Introduction
11.2 Superclasses and Subclasses
11.3 Using the super Keyword
11.4 Overriding Methods
11.5 Overriding vs. Overloading
11.6 The Object Class and Its toString() Method
11.7 Polymorphism
11.8 Dynamic Binding
11.9 Casting Objects and the instanceof Operator
11.10 The Object’s equals Method
11.11 The ArrayList Class
11.12 Useful Methods for Lists
11.13 Case Study: A Custom Stack Class
11.14 The protected Data and Methods
11.15 Preventing Extending and Overriding

Chapter 12 Exception Handling and Text I/O

12.1 Introduction
12.2 Exception-Handling Overview
12.3 Exception Types
12.4 More on Exception Handling
12.5 The finally Clause
12.6 When to Use Exceptions
12.7 Rethrowing Exceptions
12.8 Chained Exceptions
12.9 Defining Custom Exception Classes
12.10 The File Class
12.11 File Input and Output
12.12 Reading Data from the Web
12.13 Case Study: Web Crawler

Chapter 13 Abstract Classes and Interfaces

13.1 Introduction
13.2 Abstract Classes
13.3 Case Study: the Abstract Number Class
13.4 Case Study: Calendar and GregorianCalendar
13.5 Interfaces
13.6 The Comparable Interface
13.7 The Cloneable Interface
13.8 Interfaces vs. Abstract Classes
13.9 Case Study: The Rational Class
13.10 Class Design Guidelines

Ön başvuru