Object Oriented Programming with Java

Undergraduate course, University of Giresun, Department of Electrical Electronics Engineering, 2024

object oriented programming 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:

Past Exams:

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.

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.

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.

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.

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.