Object Oriented Programming with Java
Undergraduate course, University of Giresun, Department of Electrical Electronics Engineering, 2024
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.
- Ders Öğretim Planı [pdf]
Announcements:
The resources:
- Dev Java [website]
- Cody [website], Blockly [website]
- Java Youtube [youtube]
- Download Eclipse [website]
- Oracle Java Tutorials [website]
- Java ile Nesneye Yönelik Programlama, Oğuz Aslantürk [pdf]
Past Exams:
- 2023-2024 [vize] [telafi][final-a][final-b][final-c][final-d][butunleme-a][butunleme-b][butunleme-c][butunleme-d]
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 [pdf]
- Sunum - Hesaplama [pdf]
- Sunum - Algoritmalar [pdf]
- Sunum - Akış Diyagramları [pdf]
Ascii Table [Ascii Table]
- Lecture Notes [pdf]
- Code Examples [java]
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.
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ı [pdf]
- Sunum - Örnek Uygulamalar [pdf]
- Sunum - Örnek Fonksiyonlar [pdf]
- Sunum - Örnek Çıktılar [pdf]
- Sunum - Fonksiyonlar [pdf]
Sunum - Özyineleme [pdf]
- Lecture Notes [pdf]
- Code Examples [java]
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 [pdf]
- Sunum - Sarmalama [pdf]
- Sunum - Kalıtım [pdf]
- Sunum - Çok Biçimlilik [pdf]
Sunum - Soyut Sınıflar [pdf]
- Lecture Notes [pdf]
- Code Examples [java]
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 [pdf]
- Sunum - Koleksiyonlar [pdf]
Sunum - Dizgi [pdf]
- Lecture Notes [pdf]
- Code Examples [java]
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 [pdf]
- Lecture Notes [pdf]
- Code Examples [java]
- Interview Exception Handling [pdf]
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.
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.
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.
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.
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.