[Go to site: main page, start]

0% found this document useful (0 votes)
33 views3 pages

Java Object-Oriented Programming Syllabus

The document outlines a course on Object Oriented Programming using Java, detailing the teaching and examination scheme, prerequisites, objectives, and outcomes. It includes a structured curriculum divided into units covering Java fundamentals, classes and objects, inheritance, exception handling, multithreading, and GUI programming. The course is designed to equip students with practical skills in Java programming and application development.

Uploaded by

Kaminee Patil
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views3 pages

Java Object-Oriented Programming Syllabus

The document outlines a course on Object Oriented Programming using Java, detailing the teaching and examination scheme, prerequisites, objectives, and outcomes. It includes a structured curriculum divided into units covering Java fundamentals, classes and objects, inheritance, exception handling, multithreading, and GUI programming. The course is designed to equip students with practical skills in Java programming and application development.

Uploaded by

Kaminee Patil
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Object Oriented Programming using Java

(RCP23FCES201)
Teaching Scheme Examination Scheme
Lectures : 02 Hrs./week Term Test : 20 Marks
Practical : - - - - Teacher Assessment : 20 Marks
Tutorial : - - - - End Sem Exam : 60 Marks
Credit : 02 Total Marks : 100 Marks

Pre-requisite

1. Basics of Programming

Course Objectives

1. To make students familiar with basic and Object-Oriented features of Java.

2. To expose students to analyze a problem statement, develop suitable logic and implement it in
Java.

3. To enable students to design and develop GUI applications.

Course Outcomes

COs Course Outcomes Blooms Blooms


Level Description

CO1 Develop programs by applying Object-Oriented concepts of JAVA L3 Apply


to solve real-world problems.

CO2 Achieve Robustness and Concurrency while developing programs L3 Apply


(Exception Handling and Multithreding).

CO3 Design Graphical User Interface using swing. L3 Apply

67
Course Contents

Unit-I Introduction to Java as Object Oriented Programming


Language 04 Hrs.
Fundamentals of Java Programming: Overview of procedure and object-oriented programming, Fea-
tures of Java, Java Virtual Machine.
Principles of OOP: Object, Class, Encapsulation, Abstraction, Inheritance, Polymorphism.
Basic Constructs: Constants, variables and data types, Wrapper classes, Operators and Expressions.
Input & Output in Java: command line arguments, BufferedReader class and Scanner class.

Unit-II Branching and Looping 04 Hrs.


Branching and looping: if, if-else, nested if-else, if-else-if ladder, switch-case, break, continue, for loop,
while loop, and do-while loop.
Arrays, Strings and Collection Types
Arrays, Strings (String and StringBuffer classes)
Collections: ArrayList, Vectors

Unit-III Classes and Objects 06 Hrs.


Access specifiers, static and non-static members, Passing and returning variables and references,
Method Overloading, Recursion, Array of Objects.
Constructors
Constructors: Default, Parameterized Constructors, copy constructor and Constructor overloading.

Unit-IV Inheritance, Interfaces and packages 06 Hrs.


Inheritance and its types, Role of Constructors in inheritance, Method Overriding, super keyword, ab-
stract class and abstract method, final keyword, Static and dynamic binding in Java, finalize method.
Interfaces: Implementing multiple inheritance and extending interfaces.
Packages: explore predefined packages, creating user defined packages and importing the same.

Unit-V Exception Handling and Multithreading (Robustness and


Concurrency) 04 Hrs.
Error vs Exception, try, catch, finally, throw, throws, creating custom exceptions.
Multithreading: Need of Multithreading, Thread lifecycle, methods of Thread class, creating threads
using Runnable interface and Thread class, Thread synchronization.

Unit-VI GUI programming in JAVA 02 Hrs.


SWING Programming: Swing Components and Containers, Swing Packages, A Simple Swing Appli-

68
cation, Designing Swing GUI Application and Event handling.

Text Books

1. Herbert Schildt, “Java-The Complete Reference”, 11th Edition, Tata McGraw Hill Publication,
2018.

2. E. Balguruswamy, “Programming with Java: A Primer”, 5th edition, Tata McGraw Hill Publi-
cation, 2017.

3. Sachin Malhotra and Saurabh Chaudhary, “Programming in Java”, Oxford University Press,
2010.

Reference Books

1. D. T. Editorial Services, “Java 8 Programming Black Book”, Dreamtech Press, 2015.

2. H. M. Deitel, P. J. Deitel, S. E. Santry, “Advanced Java 2 Platform How to Program”, 11th


Edition, Prentice Hall, 2017.

3. ScriptDemics, “Learn to Master JAVA”, from Star EDU solutions, 2017.

4. Ivor Horton, “Beginning JAVA”, Wiley India.

Digital Material

1. [Link]

2. [Link]

3. [Link]

4. [Link]

69

Common questions

Powered by AI

The 'finalize' method in Java provides a mechanism to perform cleanup operations before an object is garbage collected. It is called by the garbage collector on an object when garbage collection determines there are no more references to the object. However, it is not a reliable means for releasing resources due to its unpredictability and the fact that there is no guarantee when it will be executed. Java's garbage collection automates memory management by reclaiming memory from objects that are no longer in use, contrasting with the manual cleanup typically handled in 'finalize' .

Method overloading in Java occurs when two or more methods in the same class share the same name but differ in parameter lists. It enhances code readability and functionality by allowing different implementations for similar tasks without changing method names. Method overriding, however, involves a subclass providing a specific implementation for a method that is already defined in its superclass. This supports runtime polymorphism, enabling dynamic method dispatch and allowing a Java program to determine at runtime which method to execute. Both mechanisms enhance the flexibility and maintainability of Java applications .

Java supports multiple inheritance through interfaces, allowing a class to implement multiple interfaces. An interface in Java defines a contract with abstract methods and static or default methods that can be implemented by any class, enabling the simulation of multiple inheritance. This mechanism is beneficial as it provides a way to use shared behaviors from multiple sources without the complexity and ambiguity that can arise from true multiple inheritance, such as the diamond problem .

Static binding in Java occurs at compile time, whereas dynamic binding occurs at runtime. Static binding is associated with methods that cannot be overridden, such as static methods and private methods. Conversely, dynamic binding is crucial for polymorphism, as it allows the Java runtime environment to determine the appropriate method to invoke based on an object's actual type rather than its reference type. This flexibility enables polymorphic behaviors, allowing methods to perform differently depending on the subclass that implements them .

In Java, constructors are used to initialize objects upon creation. In inheritance, a subclass can invoke the constructor of its superclass using the 'super' keyword, ensuring that the superclass part of the object is properly initialized. Constructors cannot be inherited, but the mechanism for calling them delves into polymorphic behavior, where a superclass constructor can lead to overridden methods being invoked based on the object's runtime type. This process underscores polymorphism by determining the dynamic behavior of an object during instantiation .

Java implements the principles of object-oriented programming through its features such as classes and objects, encapsulation, abstraction, inheritance, and polymorphism. Classes serve as blueprints for objects, encapsulating data and behavior. Encapsulation is achieved by restricting access to the inner workings of classes using access specifiers. Abstraction is facilitated by abstract classes and interfaces, allowing the representation of essential features without showing detailed implementations. Inheritance promotes reusability by allowing classes to inherit properties and methods from other classes, and polymorphism enables methods to perform different tasks based on the object that invokes them .

Multithreading in Java is essential for creating applications that can perform tasks concurrently, enhancing performance by utilizing resources efficiently. Java manages threads using the Thread class and Runnable interface, providing methods for thread lifecycle management and synchronization. This allows developers to create responsive and high-performance applications by running multiple threads for different tasks, such as handling user input, processing data, and executing background processes simultaneously, thereby reducing processing wait times and improving application throughput .

Swing components in Java are a part of the Java Foundation Classes (JFC) used to create window-based applications. They provide a set of 'lightweight' (platform-independent) graphical tools like JButton, JLabel, JTextField, JFrame, and JPanel, among others, which offer more flexibility and functionality than the older AWT components. These components assist developers in building complex and interactive graphical user interfaces (GUIs), allowing for the creation of user-friendly applications with rich graphical content .

Java's collections framework, including classes like ArrayList and Vectors, enhances data manipulation and storage by providing dynamic data structures. ArrayList allows resizable arrays, where elements can be added or removed without the need to manually handle array resizing. Vectors, similar to ArrayList, provide synchronized operations, making them thread-safe. These collections support efficient searching, insertion, and iteration, greatly simplifying complex data handling tasks, and giving developers tools for efficient memory and performance management .

Java ensures robustness through its exception handling mechanism which allows developers to detect and handle exceptions, preventing program crashes. This includes the use of try, catch, finally, throw, and throws keywords to manage exceptions effectively. Concurrency is achieved through multithreading, allowing multiple threads to run concurrently, thus optimizing CPU usage and improving performance for multitasking applications. These features are crucial for developing reliable and efficient software that can perform well under diverse conditions and loads .

You might also like