Object Oriented Programming with Java
Undergraduate, Giresun University, Electrical Electronics Engineering, 2026
Java is one of the most popular programming languages, extensively used in various fields such as web development, mobile app development, and game development. It encompasses key concepts like classes, objects, inheritance, polymorphism, encapsulation, and abstraction, which form the foundation of its Object-Oriented Programming (OOP) paradigm. These principles enable developers to create modular, reusable, and efficient code, fostering better software design and maintainability. Java’s platform independence, achieved through the Java Virtual Machine (JVM), allows applications to run on any device equipped with a JVM, making it a versatile choice for cross-platform development. Additionally, Java’s extensive standard library provides a wide range of tools and functionalities, simplifying many common programming tasks and enhancing productivity.
Preliminary Materials
Chapter 1: Introduction to Programming and Java
As a versatile and widely-used programming language, Java provides a powerful toolset for developing a diverse range of applications, from desktop and mobile apps to web-based services and enterprise software systems.
- 🖼️Sunum-Bilgisayarlar (HTML)
- 📄Sunum-Bilgisayarlar (PDF)
- 📝Çalışma Soruları - Bilgisayarlar (HTML)
- 🖼️Sunum-Hesaplama ve Hesaplamalı Düşünme (HTML)
- 📄Sunum-Hesaplama ve Hesaplamalı Düşünme (PDF)
- 📝Çalışma Soruları - Hesaplama ve Hesaplamalı Düşünme (HTML)
- 🖼️Sunum-Algoritmalar (HTML)
- 📄Sunum-Algoritmalar (PDF)
- 📝Çalışma Soruları - Algoritmalar (HTML)
- 🖼️Sunum-Akış Diyagramları (HTML)
- 📄Sunum-Akış Diyagramları (PDF)
- 📝Çalışma Soruları - Akış Diyagramları (HTML)
- 🕹️ASCII Table (HTML)
- 💻Code Examples (GitHub)
Chapter 2: Basic Syntax and Data Types
Understanding the fundamental syntax and data types of Java is essential for building effective and efficient software systems, as it provides the building blocks for defining program logic, manipulating data, and communicating with external resources.
- 🖼️Sunum-Programlama (HTML)
- 📄Sunum-Programlama (PDF)
- 📝Çalışma Soruları - Programlama (HTML)
- 🖼️Sunum-Söz Dizimi Kuralları (HTML)
- 📄Sunum-Söz Dizimi Kuralları (PDF)
- 📝Çalışma Soruları - Söz Dizimi Kuralları (HTML)
- 🕹️Primitive Types Lab (HTML)
- 💻Code Examples (GitHub)
Chapter 3: Control Structures
Control structures, which include conditional statements and loops, provide a powerful mechanism for controlling the flow of execution in a Java program, enabling developers to create complex, dynamic behaviors and respond to a wide range of inputs and events.
- 🖼️Sunum-Kontrol Yapıları (HTML)
- 📄Sunum-Kontrol Yapıları (PDF)
- 📝Çalışma Soruları - Kontrol Yapıları (HTML)
- 🖼️Sunum-Fonksiyonlar (HTML)
- 📄Sunum-Fonksiyonlar (PDF)
- 📝Çalışma Soruları - Fonksiyonlar (HTML)
- 🖼️Sunum-Özyineleme (HTML)
- 📄Sunum-Özyineleme (PDF)
- 📝Çalışma Soruları - Özyineleme (HTML)
- 🕹️Pass-by-Value Lab (HTML)
- 💻Code Examples (GitHub)
Chapter 4: Object and Classes
Object-oriented programming (OOP) is a powerful paradigm for structuring and organizing software systems, and is a cornerstone of Java programming, providing a flexible and modular approach to designing, implementing, and maintaining complex applications.
- 🖼️Sunum-Nesne ve Sınıflar (HTML)
- 📄Sunum-Nesne ve Sınıflar (PDF)
- 📝Çalışma Soruları - Nesne ve Sınıflar (HTML)
- 🖼️Sunum-Sarmalama (HTML)
- 📄Sunum-Sarmalama (PDF)
- 📝Çalışma Soruları - Sarmalama (HTML)
- 🖼️Sunum-Kalıtım (HTML)
- 📄Sunum-Kalıtım (PDF)
- 📝Çalışma Soruları - Kalıtım (HTML)
- 🖼️Sunum-Çok Biçimlilik (HTML)
- 📄Sunum-Çok Biçimlilik (PDF)
- 📝Çalışma Soruları - Çok Biçimlilik (HTML)
- 🖼️Sunum-Soyut Sınıflar ve Arayüzler (HTML)
- 📄Sunum-Soyut Sınıflar ve Arayüzler (PDF)
- 📝Çalışma Soruları - Soyut Sınıflar ve Arayüzler (HTML)
- 🕹️Heap & Stack Explorer (HTML)
- 🕹️Access Modifiers & Encapsulation (HTML)
- 🕹️Dynamic Dispatch (HTML)
- 💻Code Examples (GitHub)
Chapter 5: Arrays and Collections
Arrays and collections are essential data structures in Java programming, providing a powerful mechanism for storing and manipulating large sets of data efficiently and flexibly, and enabling developers to build complex algorithms and data-driven applications.
- 🖼️Sunum-Diziler (HTML)
- 📄Sunum-Diziler (PDF)
- 📝Çalışma Soruları - Diziler (HTML)
- 🖼️Sunum-Koleksiyonlar (HTML)
- 📄Sunum-Koleksiyonlar (PDF)
- 📝Çalışma Soruları - Koleksiyonlar (HTML)
- 🖼️Sunum-Dizgi (HTML)
- 📄Sunum-Dizgi (PDF)
- 📝Çalışma Soruları - Dizgi (HTML)
- 🕹️Collections Internals (HTML)
- 🕹️String Pool & StringBuilder (HTML)
- 💻Code Examples (GitHub)
Chapter 6: Exception Handling
Exception handling is a critical aspect of Java programming, providing a powerful mechanism for detecting and responding to errors and exceptional conditions in a program, and ensuring that applications remain robust and reliable even in the face of unexpected inputs or events.
- 🖼️Sunum-Hata Ayıklama ve İstisnalar (HTML)
- 📄Sunum-Hata Ayıklama ve İstisnalar (PDF)
- 📝Çalışma Soruları - Hata Ayıklama ve İstisnalar (HTML)
- 🕹️Exception Flow (HTML)
- 💻Code Examples (GitHub)
Chapter 7: Working with Files and Input/Output
Working with files and input/output (I/O) operations is a fundamental aspect of Java programming, providing a powerful mechanism for reading and writing data from a wide range of sources, including local files, remote servers, and user input, and enabling developers to build a wide range of applications with sophisticated data processing capabilities.
- 🖼️Sunum-Giriş Çıkış (HTML)
- 📄Sunum-Giriş Çıkış (PDF)
- 📝Çalışma Soruları - Giriş Çıkış (HTML)
- 🕹️Stream Pipeline (HTML)
- 💻Code Examples (GitHub)
Chapter 8: Working with GUI Applications
Graphical user interfaces (GUIs) are a ubiquitous feature of modern software applications, and Java provides a powerful set of tools and frameworks for building sophisticated, interactive GUIs with rich visual and behavioral features, enabling developers to create compelling user experiences and enhance the usability of their software systems.
- 🖼️Sunum-Grafikler (HTML)
- 📄Sunum-Grafikler (PDF)
- 📝Çalışma Soruları - Grafikler (HTML)
- 🕹️Swing Layouts (HTML)
- 💻Code Examples (GitHub)
Chapter 9: Concurrency and Multithreading
Concurrency and multithreading are essential concepts in Java programming, providing a powerful mechanism for building responsive, scalable applications that can execute multiple tasks concurrently and take advantage of modern hardware architectures to maximize performance and efficiency.
- 🖼️Sunum-İş Parçacıkları (HTML)
- 📄Sunum-İş Parçacıkları (PDF)
- 📝Çalışma Soruları - İş Parçacıkları (HTML)
- 🕹️Thread Race (HTML)
- 💻Code Examples (GitHub)
Chapter 10: Working with Databases
Working with databases is a fundamental aspect of Java programming, providing a powerful mechanism for storing, retrieving, and manipulating large sets of structured data efficiently and flexibly, and enabling developers to build a wide range of applications with sophisticated data management capabilities.
- 🖼️Sunum-Veri Tabanı (HTML)
- 📄Sunum-Veri Tabanı (PDF)
- 📝Çalışma Soruları - Veri Tabanı (HTML)
- 🕹️Student Management (java)
- 💻Code Examples (GitHub)
Chapter 11: Testing and Debugging
Testing and debugging are critical aspects of Java programming, providing a powerful mechanism for ensuring that software applications are robust, reliable, and free from errors or bugs that can cause unexpected behavior or crashes, and enabling developers to identify and correct issues efficiently and effectively throughout the software development lifecycle.