Skip to content
    geeksforgeeks
    • Interview Prep
      • DSA
      • Interview Corner
      • Aptitude & Reasoning
      • Practice Coding Problems
      • All Courses
    • Tutorials
      • Python
      • Java
      • ML & Data Science
      • Programming Languages
      • Web Development
      • CS Subjects
      • DevOps
      • Software and Tools
      • School Learning
    • Tracks
      • Languages
        • Python
        • C
        • C++
        • Java
        • Advanced Java
        • SQL
        • JavaScript
        • C#
      • Interview Preparation
        • GfG 160
        • GfG 360
        • System Design
        • Core Subjects
        • Interview Questions
        • Interview Puzzles
        • Aptitude and Reasoning
        • Product Management
        • Computer Organisation and Architecture
      • Data Science
        • Python
        • Data Analytics
        • Complete Data Science
        • Gen AI
        • Agentic AI
      • Dev Skills
        • Full-Stack Web Dev
        • DevOps
        • Software Testing
        • CyberSecurity
        • NextJS
        • Git
      • Tools
        • Computer Fundamentals
        • AI Tools
        • MS Excel & Google Sheets
        • MS Word & Google Docs
      • Maths
        • Maths For Computer Science
        • Engineering Mathematics
        • School Maths
    • Software Engineering Tutorial
    • Software Development Life Cycle
    • Waterfall Model
    • Software Requirements
    • Software Measurement and Metrics
    • Software Design Process
    • System configuration management
    • Software Maintenance
    • Software Development Tutorial
    • Software Testing Tutorial
    • Product Management Tutorial
    • Project Management Tutorial
    • Agile Methodology
    • Selenium Basics
    Open In App

    Differences between Procedural and Object Oriented Programming

    Last Updated : 11 Jul, 2025
    Comments
    Improve
    Suggest changes
    376 Likes
    Like
    Report

    This article focuses on discussing the differences between procedural and object-oriented programming.

    Procedural Programming

    Procedural Programming can be defined as a programming model which is derived from structured programming, based upon the concept of calling procedure. Procedures, also known as routines, subroutines or functions, simply consist of a series of computational steps to be carried out. During a program's execution, any given procedure might be called at any point, including by other procedures or itself. 

    Languages used in Procedural Programming: 

    FORTRAN, ALGOL, COBOL, 

    BASIC, Pascal and C. 

    Object-Oriented Programming

    Object-oriented programming can be defined as a programming model which is based upon the concept of objects. Objects contain data in the form of attributes and code in the form of methods. In object-oriented programming, computer programs are designed using the concept of objects that interact with the real world. Object-oriented programming languages are various but the most popular ones are class-based, meaning that objects are instances of classes, which also determine their types. 

    Languages used in Object-Oriented Programming: 

    Java, C++, C#, Python, 

    PHP, JavaScript, Ruby, Perl, 

    Objective-C, Dart, Swift, Scala. 

    Procedural Programming vs Object-Oriented Programming

    Below are some of the differences between procedural and object-oriented programming: 

    Procedural Oriented ProgrammingObject-Oriented Programming
    In procedural programming, the program is divided into small parts called functions.In object-oriented programming, the program is divided into small parts called objects.
    Procedural programming follows a top-down approach.Object-oriented programming follows a bottom-up approach.
    There is no access specifier in procedural programming.Object-oriented programming has access specifiers like private, public, protected, etc.
    Adding new data and functions is not easy.Adding new data and function is easy.
    Procedural programming does not have any proper way of hiding data so it is less secure.Object-oriented programming provides data hiding so it is more secure.
    In procedural programming, overloading is not possible.Overloading is possible in object-oriented programming.
    In procedural programming, there is no concept of data hiding and inheritance.In object-oriented programming, the concept of data hiding and inheritance is used.
    In procedural programming, the function is more important than the data.In object-oriented programming, data is more important than function.
    Procedural programming is based on the unreal world.Object-oriented programming is based on the real world.
    Procedural programming is used for designing medium-sized programs.Object-oriented programming is used for designing large and complex programs.
    Procedural programming uses the concept of procedure abstraction.Object-oriented programming uses the concept of data abstraction.
    Code reusability absent in procedural programming,Code reusability present in object-oriented programming.
    Examples: C, FORTRAN, Pascal, Basic, etc.Examples: C++, Java, Python, C#, etc.
    Create Quiz

    P

    pp_pankaj
    Improve

    P

    pp_pankaj
    Improve
    Article Tags :
    • Software Engineering
    • Programming Basics
    • Object-Oriented-Design

    Explore

      Software Engineering Basics

      Introduction to Software Engineering

      7 min read

      Software Development Life Cycle (SDLC)

      6 min read

      Software Quality - Software Engineering

      5 min read

      ISO/IEC 9126 in Software Engineering

      4 min read

      Boehm's Software Quality Model

      4 min read

      Software Crisis - Software Engineering

      3 min read

      Software Measurement & Metrices

      Software Measurement and Metrics

      4 min read

      People Metrics and Process Metrics in Software Engineering

      7 min read

      Halstead’s Software Metrics - Software Engineering

      10 min read

      Cyclomatic Complexity

      6 min read

      Functional Point (FP) Analysis - Software Engineering

      8 min read

      Lines of Code (LOC) in Software Engineering

      4 min read

      Software Development Models & Agile Methods

      Waterfall Model - Software Engineering

      12 min read

      What is Spiral Model in Software Engineering?

      9 min read

      Prototyping Model - Software Engineering

      7 min read

      Incremental Process Model - Software Engineering

      6 min read

      Rapid Application Development Model (RAD) - Software Engineering

      9 min read

      Coupling and Cohesion - Software Engineering

      10 min read

      Agile Software Development - Software Engineering

      15+ min read

      SRS & SPM

      Software Requirement Specification (SRS) Format

      5 min read

      Software Engineering | Quality Characteristics of a good SRS

      7 min read

      Software Project Management (SPM) - Software Engineering

      8 min read

      COCOMO Model - Software Engineering

      15+ min read

      Capability Maturity Model (CMM) - Software Engineering

      10 min read

      Integrating Risk Management in SDLC | Set 1

      8 min read

      Software Maintenance - Software Engineering

      13 min read

      Testing & Debugging

      What is Software Testing?

      11 min read

      Types of Software Testing

      15+ min read

      Testing Guidelines - Software Engineering

      3 min read

      What is Debugging in Software Engineering?

      11 min read

      Verification & Validation

      Verification and Validation in Software Engineering

      6 min read

      Role of Verification and Validation (V&V) in SDLC

      5 min read

      Requirements Validation Techniques - Software Engineering

      8 min read

      Practice Questions

      Top 50+ Software Engineering Interview Questions and Answers

      15+ min read
    top_of_element && top_of_screen < bottom_of_element) || (bottom_of_screen > articleRecommendedTop && top_of_screen < articleRecommendedBottom) || (top_of_screen > articleRecommendedBottom)) { if (!isfollowingApiCall) { isfollowingApiCall = true; setTimeout(function(){ if (loginData && loginData.isLoggedIn) { if (loginData.userName !== $('#followAuthor').val()) { is_following(); } else { $('.profileCard-profile-picture').css('background-color', '#E7E7E7'); } } else { $('.follow-btn').removeClass('hideIt'); } }, 3000); } } }); } $(".accordion-header").click(function() { var arrowIcon = $(this).find('.bottom-arrow-icon'); arrowIcon.toggleClass('rotate180'); }); }); window.isReportArticle = false; function report_article(){ if (!loginData || !loginData.isLoggedIn) { const loginModalButton = $('.login-modal-btn') if (loginModalButton.length) { loginModalButton.click(); } return; } if(!window.isReportArticle){ //to add loader $('.report-loader').addClass('spinner'); jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', { PRACTICE_API_URL: practiceAPIURL, PRACTICE_URL:practiceURL },function(responseTxt, statusTxt, xhr){ if(statusTxt == "error"){ alert("Error: " + xhr.status + ": " + xhr.statusText); } }); }else{ window.scrollTo({ top: 0, behavior: 'smooth' }); $("#report_modal_content").show(); } } function closeShareModal() { const shareOption = document.querySelector('[data-gfg-action="share-article"]'); shareOption.classList.remove("hover_share_menu"); let shareModal = document.querySelector(".hover__share-modal-container"); shareModal && shareModal.remove(); } function openShareModal() { closeShareModal(); // Remove existing modal if any let shareModal = document.querySelector(".three_dot_dropdown_share"); shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" })); document.querySelector(".hover__share-modal-container").append( Object.assign(document.createElement('div'), { className: "share__modal" }), ); document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" })); const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"]; socialOptions.forEach((socialOption) => { const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" }); const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` }); const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` }); const shareLink = (socialOption === "Copy Link") ? Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) : Object.assign(document.createElement('a'), { className: "link-container" }); if (socialOption === "LinkedIn") { shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`); shareLink.setAttribute('target', '_blank'); } if (socialOption === "WhatsApp") { shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } if (socialOption === "Twitter") { shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } shareLink.append(icon, socialText); socialContainer.append(shareLink); document.querySelector(".share__modal").appendChild(socialContainer); //adding copy url functionality if(socialOption === "Copy Link") { shareLink.addEventListener("click", function() { var tempInput = document.createElement("input"); tempInput.value = window.location.href; document.body.appendChild(tempInput); tempInput.select(); tempInput.setSelectionRange(0, 99999); // For mobile devices document.execCommand('copy'); document.body.removeChild(tempInput); this.querySelector(".share__option-text").textContent = "Copied" }) } }); // document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu")); } function toggleLikeElementVisibility(selector, show) { document.querySelector(`.${selector}`).style.display = show ? "block" : "none"; } function closeKebabMenu(){ document.getElementById("myDropdown").classList.toggle("show"); }
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Campus Training Program
  • Explore
  • POTD
  • Job-A-Thon
  • Blogs
  • Nation Skill Up
  • Tutorials
  • Programming Languages
  • DSA
  • Web Technology
  • AI, ML & Data Science
  • DevOps
  • CS Core Subjects
  • Interview Preparation
  • Software and Tools
  • Courses
  • ML and Data Science
  • DSA and Placements
  • Web Development
  • Programming Languages
  • DevOps & Cloud
  • GATE
  • Trending Technologies
  • Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
  • Preparation Corner
  • Interview Corner
  • Aptitude
  • Puzzles
  • GfG 160
  • System Design
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences