{"id":22928082,"url":"https://github.com/PratikMajage/Java","last_synced_at":"2025-10-22T05:31:55.520Z","repository":{"id":266255632,"uuid":"876562102","full_name":"PratikRameshMajage/Java_Programming","owner":"PratikRameshMajage","description":"📚 Learn and Master OOP Concepts in Java! This repository is a comprehensive collection of Object-Oriented Programming (OOP) examples, projects, and practice problems written in Java. Perfect for students, developers, and enthusiasts looking to sharpen their Java skills. 🖥️💡","archived":false,"fork":false,"pushed_at":"2024-12-06T02:24:56.000Z","size":554,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-14T09:17:30.984Z","etag":null,"topics":["dependency-injection","lang-java","static","super","this"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PratikRameshMajage.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-22T07:20:22.000Z","updated_at":"2024-12-06T02:24:59.000Z","dependencies_parsed_at":"2024-12-03T11:21:48.176Z","dependency_job_id":"cd39add5-d5c6-47c2-b0a0-d9035a343d40","html_url":"https://github.com/PratikRameshMajage/Java_Programming","commit_stats":null,"previous_names":["pratikrameshmajage/java_programming"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PratikRameshMajage%2FJava_Programming","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PratikRameshMajage%2FJava_Programming/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PratikRameshMajage%2FJava_Programming/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PratikRameshMajage%2FJava_Programming/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PratikRameshMajage","download_url":"https://codeload.github.com/PratikRameshMajage/Java_Programming/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237626314,"owners_count":19340760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependency-injection","lang-java","static","super","this"],"created_at":"2024-12-14T09:17:18.178Z","updated_at":"2025-10-22T05:31:54.476Z","avatar_url":"https://github.com/PratikRameshMajage.png","language":"Java","readme":"# `Java Notes:`\n# `Classes \u0026 Objects:`\n- **OOP: Object Oriented Programming:** Style of Writing Code.\n- **Objects:** Entities in Real World. \n- **Casses:** Group of these Entities | Collection of Real World Objects | BluePrint of on object | has Attributes \u0026 Methods | ex: Pen\n- **Attributes:** Properties | ex: color, thickness\n- **Methods:** Functions Which is use in the Class | Behaviours | ex: setColor(), setTip()\n- **Java Code Writing Convention: Traditional Java Developers Follow this Convention**\n    - Always Make Classes After Public Class. \n    - File_Name \u0026 Public_Class_Name Should be Same.\n    - **Class** name Should be Start With **Capital Letter**.\n    - **Methords** name Should be Start with **Small Letter** - **CamelCase**.\n# `Code:`\n```java \npublic class OOP{\n    // Compiler Always Start Execution From Main Method:\n    // Public: Access Specifier.\n    // Static: Without Creating Object to Use Main Method. \n    // Void: Return DataType.\n    public static void main(String args[]){ \n        // Pen: Class.\n        // P1: Reference Variable.\n        // new: Memory Allocation.\n        // Pen(): Pen Class Default Constructor.\n        // ; : Treminate the Line.\n        // Created a Pen Object called p1.\n        // Stack:\n        // Heap: Object Created in Heap Memory (alocates Memory) by using New Keyword.  \n        Pen p1 = new Pen(); \n        p1.setColor(\"BLue\");\n        // p1.color = \"Green\"; We can Also Write in this Way. \n        System.out.println(p1.color);\n        p1.setTip(10);\n        System.out.println(p1.tip);\n    }\n}\n// Pen Class\nclass Pen{\n    // Properties and Methods:\n    String color = \"Red\";\n    int tip = 5;\n    void setColor(String newColor){\n        color = newColor;\n    }\n    void setTip(int newTip){\n        tip = newTip;\n    }\n}\n// Student Class\nclass Student{\n    String name;\n    int age;\n    float percentage;\n\n    void calcPercentage(int phy, int che, int math){\n        percentage = (phy + che + math)/3;\n    }\n}\n```\n# `Access Modifiers:`\n|Access Specifier|Within Class|Within Package|Outside Package BySubClass Only|OutSide Package|\n|----------------|------------|--------------|-------------------------------|---------------|\n|- **Private:**  |Y           |NO            |NO                             |NO             |\n|- **Default:**  |Y           |Y             |NO                             |NO             |\n|- **Protected:**|Y           |Y             |Y                              |NO             |\n|- **Public:**   |Y           |Y             |Y                              |Y              |\n\n# `Getter \u0026 Setter:`\n- Get: To Return the Value.\n- Set: To Modify the Value.\n- This Keyword is Used to refer to the Current Object.\n```java\npublic class OOP{\n    public static void main(String args[]) {\n        Pen p1 = new Pen();\n        p1.setColor(\"Red\");\n        p1.setTip(10);\n        System.out.println(p1.getColor());\n        System.out.println(p1.getTip());\n        \n    }\n}\nclass Pen {\n    private String color;\n    private int tip;\n\n    String getColor(){\n        return this.color;\n    }\n    int getTip(){\n        return this.tip;\n    }\n\n    void setColor(String newColor){\n        // you can use this when instance variable and local variable names are same \n        // color: Instance Variable.\n        // newColor: Local Variable.  \n        this.color = newColor;\n    }\n    void setTip(int newTip){\n        this.tip = newTip;\n    }\n}\n```\n# `Encapsulation:`\n- **Four Pillers of OOP**.\n    - **Encpsulation:** Encapsulation is defined as the **wrapper up of Data \u0026 Methods ( Properties|Variables \u0026 Functions) under a Single Unit. It also Implements Data Hiding (Useless | Sensitive -\u003e Private|Protected|Default ).** \n    - **Abstraction:**\n    - **Inheritance:**\n    - **Polimorphisum:**\n# `Constructors:`\n- Constructor is a **Special Method** which is **invoked by Automatically at the time of Object Creation.**\n    - Constructor have the Same name as Class Structure.\n    - Constructor Don't have Return Type.(Not even void)\n    - Constructors are Only called Once.\n    - Memory Allocation happens when Constructor is Called.\n- **Types Of Constructor:** \n    - **Non-Parametrized:**\n    - **Parametrized:** \n        - Constructor Overloading - Polymorphisum\n    - **Copy Constructor:**\n        - Shallw (On a Surface Changes) Copy: Refrence Copy - Changes Reflect\n        - Deep (Totally Deep Inside Changes) Copy: New Copy - Changes Not Reflect\n```java\npublic class OOP{\n    public static void main(String args[]) {\n        Student s1 = new Student();\n        Student s2 = new Student(\"Pratik\",22,\"12345\");\n        s2.marks[0] = 90;\n        s2.marks[1] = 95;\n        s2.marks[2] = 99;\n        // Copy Constructor:\n        Student s3 = new Student(s2);\n        // Beacouse of Array are Referece Variables.\n        s3.password = \"67890\";\n        s2.marks[2] = 12; \n        for(int i=0; i\u003c3;i++){\n            System.out.println(s3.marks[i]);\n        }\n    }\n}\nclass Student{\n    String name;\n    int rollno;\n    String password;\n    int marks[];\n    // Default Constructor | Non-Parametrized Constructor:\n    Student(){\n        System.out.println(\"Student Constructor Called...\");\n    }\n    // Parametrized Constructor:\n    Student(String name, int rollno, String password){\n        this.name = name; \n        this.rollno = rollno;\n        this.password = password;\n        marks = new int[3];\n    }\n    // Copy Constructor: Shallw Copy Constructor\n    // Student(Student s2){\n    //     this.name = s2.name;\n    //     this.rollno = s2.rollno;\n    //     this.marks = s2.marks;\n    // }\n    // Deep Copy Constructor:\n    Student(Student s2){\n        marks = new int[3];\n        this.name = s2.name;\n        this.rollno = s2.rollno;\n        this.marks = s2.marks;\n        for(int i =0; i\u003c3; i++){\n            this.marks[i] = s2.marks[i];\n        }\n    }\n}\n```\n# `Destructors:`\n- Garbage Collector:\n# `Inheritance:`\n- Inheritance is when Properties and Methods of **base | Parent | Super** class are passed on **Derived | Child | Sub** Class.\n- In Java Multiple Inheritance is Not Exist | Not Possible by Classes. But We Can Achive by using Interface.\n- Multiple Base Class - Single Derived Class\n## `Single Level Inheritance:`\n- Single Base Class to Single Child Class (1 on 1): \n- ![Single Level Inheritance](OOPS%20Diagrams/Single%20Level%20Inheritance.png)\n```java\n// Inheritance\n// Singlr Level Inheritance\npublic class OOP{\n    public static void main(String[] args) {\n        Fish shark = new Fish();\n        shark.eat();    \n    }\n}\n// BaseCLass\nclass Animal{\n    String color;\n    void eat(){\n        System.out.println(\"Eats\");\n    }\n    void breath(){\n        System.out.println(\"Breathes\");\n    }\n}\n// DerivedClass\nclass Fish extends Animal{\n    int fins;\n    void swim(){\n        System.out.println(\"Swims in Water\");\n    }\n}\n```\n## `Multiple Inheritance:`\n- Single Base class to Single Child Class Again Inherit by Another Single Child Classes (1 on 1 on 1...):\n- ![Single Level Inheritance](OOPS%20Diagrams/Multi%20level%20Inheritance.png)\n```java\n```java\npublic class OOP{\n    public static void main(String[] args) {\n        Dog dobby = new Dog();\n        dobby.eat();\n        dobby.legs = 4;\n        System.out.println(dobby.legs);\n    }\n}\nclass Animal{\n    String color;\n    void eat(){\n        System.out.println(\"Eats\");\n    }\n    void breathe(){\n        System.out.println(\"Breaths\");\n    }\n}\nclass Mammal extends Animal{\n    int legs;\n}\nclass Dog extends Mammal{\n    String breed;\n}\n```\n## `Hierarchial Inheritance:`\n- Single Base class to Many Child Class (1 on MANY):\n- ![Single Level Inheritance](OOPS%20Diagrams/Hierarchial%20Inheritance.png)\n```java\npublic class OOP{\n    public static void main(String[] args) {\n        Mammal\n    }\n}\nclass Animal{\n    String color;\n    void eat(){\n        System.out.println(\"Eats\");\n    }\n    void Breath(){\n        System.out.println(\"Breathes\");\n    }\n}\nclass Mammal extends Animal{\n    void walk(){\n        System.out.println(\"Walks\");\n    }\n}\nclass Fish extends Animal{\n    void swim(){\n        System.out.println(\"Swims\");\n    }\n}\nclass Bird extends Animal{\n    void fly(){\n        System.out.println(\"Fly\");\n    }\n}\n```\n## `Hybrid Inheritance:`\n- Single Base class to Many Child Class Again Inherit by Another Many Child Classes (1 on MANY on Many) Combination of all inheritance:\n- ![Single Level Inheritance](OOPS%20Diagrams/Hybrid%20Inheritance.png)\n```java\n// Hybrid Inheritance:\npublic class OOP{\n    public static void main(String[] args) {\n        Dog dobby = new Dog();\n        dobby.eat();\n        dobby.breath();\n        dobby.walk();\n        dobby.bark();\n    }\n}\nclass Animal{\n    String color;\n    void eat(){\n        System.out.println(\"Eats\");\n    }\n    void breath(){\n        System.out.println(\"Breathes\");\n    }\n}\nclass Mammal extends Animal{\n    void walk(){\n        System.out.println(\"Walks\");\n    }\n}\nclass Fish extends Animal{\n    void swim(){\n        System.out.println(\"Swims\");\n    }\n}\nclass Bird extends Animal{\n    void fly(){\n        System.out.println(\"Fly\");\n    }\n}\nclass Dog extends Mammal{\n    void bark(){\n        System.out.println(\"Barking\");\n    }\n}\n```\n# `Polymorphism:`\n- Poly: Many \n- Morph: Forms\n- **Compile Time Polymorphism** (Static)\n    - Methord Overloading: Multiple Functions with the Same Name but Different Parameters.\n- **Run Time Polymorphism** (Dynamic)\n    - Method Overriding: Parent and Child Classes both Contain the Same functions with a Different Defination.   \n\n## `Method Overloading:`\n- Multiple Functions with the Same Name but Different Parameters.\n```java\n// Polymorphism:\n// Compile Time Polymorphism:\n// Method Overloading:\npublic class OOP{\n    public static void main(String[] args) {\n        Calculator calc = new Calculator();\n        System.out.println(calc.sum(2,3));\n        // System.out.println(calc.sum(2.2,3.3)); By Default it takes as a Double thts why we have to Type Cast.\n        System.out.println(calc.sum((float)2.2,(float)3.3));\n        System.out.println(calc.sum(2,3,4));\n    }\n} \nclass Calculator{\n    int sum(int num1, int num2){\n        return num1+num2;\n    }\n    float sum(float num1, float num2){\n        return num1+ num2;\n    }\n    int sum(int num1, int num2, int num3){\n        return num1+num2+num3;\n    }\n}\n```\n## `Method Overloading:`\n- Parent and Child Classes both Contain the Same functions with a Different Defination.\n```java\n// Polymorphism:\n// Run Time Polymorphism:\n// Method Overriding:\npublic class OOP{\n    public static void main(String[] args) {\n        Deer deer = new Deer();\n        deer.eat();\n        Animal animal = new Animal();\n        animal.eat();\n    }\n} \nclass Animal{\n    void eat(){\n        System.out.println(\"Eats\");\n    }\n}\nclass Deer extends Animal{\n    void eat(){\n        System.out.println(\"Eats Grass\");\n    }\n}\n```\n# `Packages:`\n- Packages is a Groupof Similar Types of Classes, Interfaces and Sub-Packages.\n- InBuild Packages: java.util.*;\n- UserDefined Packages: package myPackage;\n# `Abstraction:`\n- Hiding all the Unnecessary details and showing only the important parts to the user. Idea \u0026 Implimentation\n- Abstract Classes\n- Interfaces \n- Connot create create an instance | Object of Abstract Class.\n- Can have Abstract/Non-Abstract Class.\n- Can have Constructor.\n```java\n// Abstract:\npublic class OOP{\n    public static void main(String args[]){\n        Horse hourse = new Horse();\n        hourse.eat();\n        hourse.walk();\n        Peacock peacock = new Peacock();\n        peacock.eat();\n        peacock.walk();\n        Mustang myHorse = new Mustang();\n        // Animal - Horse - Mustang. \n    }\n}\nabstract class Animal{\n    String color;\n    Animal(){\n        color= \"White\";\n        System.out.println(\"Animal Constructor Called.\");\n    }\n    void eat(){\n        System.out.println(\"Animal Eats\");\n    }\n    abstract void walk();   //Gives Idea and You have to be this Methoed when you extends. \n}\nclass Horse extends Animal{\n    void changColor(){\n        color = \"Black\";\n    }\n    Horse(){\n        System.out.println(\"Hourse Constructor Called.\");\n    }\n    void walk(){\n        System.out.println(\"Hourse walks on 4 legs.\");\n    }\n}\nclass Mustang extends Horse{\n    Mustang(){\n        System.out.println(\"Mustang Constructor Called.\");\n    }\n}\nclass Peacock extends Animal{\n    void changColor(){\n        color = \"Purple\";\n    }\n    void walk(){\n        System.out.println(\"Peacock walks on 2 legs.\");\n    }\n}\n// Animal Constructor Called.\n// Hourse Constructor Called.\n// Animal Eats\n// Hourse walks on 4 legs.\n// Animal Constructor Called.\n// Animal Eats\n// Peacock walks on 2 legs.\n// Animal Constructor Called.\n// Hourse Constructor Called.\n// Mustang Constructor Called.\n```\n# `Interface:`\n- Interface is Blueprint of a class.\n- Interface(Blueprint of Class) - Class(Blueprint of Object) - Object\n- Use Interface Keyword\n- All Methods are Public, Abstract \u0026 Without Imlimentation.\n- Used to achieve total Abstraction.\n- Varible in the Interface are Finaly, Public and Static. \n- Class - Extends\n- Interface - Impliment\n- Total Abstraction (Interfaces)\n- Multiple Inheritance (Implimentation) \n- ![Single Level Inheritance](OOPS%20Diagrams/Multiple%20Inheritance.png)\n```java\n// Interface: Blueprint of Class: Achive Multiple Inheritance:\npublic class OOP{\n    public static void main(String args[]) {\n        Queen queen = new Queen();\n        queen.moves();\n    }\n}\ninterface ChessPlayer{\n    void moves();\n}\nclass Queen implements ChessPlayer{\n    public void moves(){\n        System.out.println(\"Queen: Up, Down, Left, Right, Diagonal, (in all 4 Directions)\");\n    }\n}\nclass Rook implements ChessPlayer{\n    public void moves(){\n        System.out.println(\"Rook: Up, Down, Left, Right\");\n    }\n}\nclass King implements ChessPlayer{\n    public void moves(){\n        System.out.println(\"King: Up, Down, Left, Right, Diagonal, (by 1 Step)\");\n    }\n}\n// Multiple Inheritance:\ninterface Herbivors{\n    void eat();\n}\ninterface Carnivore{\n    void eat();\n}\nclass Bear implements Herbivors, Carnivore{\n    public void eat(){\n        System.out.println(\"Eat Grass And Eat Meat.\");\n    }\n}\n```\n# `Static Keyword::`\n- Static Keyword in Java is used to **Share the Same Variable Or Method of a given Class**  \n- Properties: Variables\n- Methods: Funtions\n- Blocks: {--Club 2-3 Lines of Code--} (Black of Code)\n- Nested Classes: Similar as Nested Loops\n```java\n// Static:\npublic class OOP{\n    public static void main(String args[]) {\n        Student student1 = new Student();\n        student1.schoolName = \"SubhedarWada\";\n\n        Student student2 = new Student();\n        System.out.println(student2.schoolName);\n        System.out.println(student2.returnPercentage(12,12,12));\n\n\n    }\n}\nclass Student{\n    String name;\n    int rollno;\n    // Properties:\n    static String schoolName; \n    // Methods:\n    static int returnPercentage(int math, int phy, int chem){\n        return(math+phy+chem)/3;\n    }\n    void setName(String name){\n        this.name = name;\n    }\n    String getName(){\n        return this.name;\n    }\n}\n```\n# `Super Keyword::`\n- Super keywordis used to **refer Immediate Parent Class Object.**  \n- To Access Parent's Properties.\n- To Access Parent's Functions.\n- To Access Parent's Constructor.\n```java\n// Super:\npublic class OOP{\n    public static void main(String args[]) {\n        Horse horse = new Horse();\n        System.out.println(horse.color);\n    }   \n}\nclass Animal{\n    String color;\n    Animal(){\n        System.out.println(\"Animal Constructor Callaed\");\n    }\n}\nclass Horse extends Animal{\n    Horse(){\n        super.color = \"Brown\";\n        System.out.println(\"Horse Constructor Called\");\n    }\n}\n```\n- Advanced: Constructive Chaining You can Learn.\n- End OOP's\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nJava -\u003e Android, Web, Enterprise Market | Applications | Complex Web Applications | Mobile Applications | Emmbeded Softwares\nLanguage -\u003e Syntax Cahange\nBasic -\u003e Core (OOP) -\u003e JDBC(Java Database Connectivity) -\u003e Servelet -\u003e Jsp -\u003e Hybernate Framework -\u003e Spring -\u003e Spring Boot \nJava as Language: \n    - Basic: Syntax, Cnstruct, loop, Condition, logic.\n    - Core:- Object, Inheritance, Polymorphism, Encapsulation, Abstraction. \n    - Advanced:- Files, Database, Multithreading. \nJava as Technology: Servelet, Spring Framework, Hibernate Framework\nIDE: Integrated Devlopment Environment -\u003e Type - Compile - Run.\nIn Java Every Line make Scence.\nPrespective: Core Java: Java Prespective | Web: Java EE (Enterprise Editor)\nCreate:\n    New Java Project\n    New Package | Class  \n \nString Should be in Double Coatation: (\"\")\nSemicolan: Terminates the line: ();\nBlock of Code: Class{}, Methods(){}\nSource Code: Compile: Byte Code: Java Virtual Machine\nVariables: Container, Memory Name, To Store Data,\nPrimitive Data Types \u0026 Refrence Data Types:\nPremitive Data Types:\n|Data Type|Keyword|Size(bit)|Size(Byte)|\n|---------|-------|---------|----------|\n|CHarecter|Char   |16       |2         |\n|Byte     |Byte   |8        |1         |   \n|Short    |Short  |16       |2         |\n|Integer  |Int    |32       |4         |\n|Float    |FLoat  |32       |4         |\n|Long     |Long   |64       |8         |\n|Double   |Double |64       |8         |\n|Boolean  |Boolean|8        |1         |\n\n- Allowed in Variable: $ _ \n- Not Allowed: Start with Number\n- Decimal Numbers: By Default Double\n- To Declare Float: Mention 5.5f; \n- To Long Number: Mention 50000000000l;\n- Char ch = 'C';\n- American Standard Code For Information Interchange:\n- Implicit Convertion: Mean Java Do By Default.  \nDouble d1 = 5; \n- Explicit Conversion: Type Casting: Changes ForceFully Done By Us. \nint k = (int)5.6\nByte - Char - Short - int - long - Float - Double\n- Naming Convantion in Java: Specific Standards:\nLook Good, More Efficient, Readable\n- In Java We Follow Camel-Casing Rule:\n- Variable Name: sname, stockprice\n- Constant: PI, DENSITY, MAX_PRICE\n- Method: Verb : actionPerformed(), run(), print(), write()\n- Class Name: Noun : String, Integer, Student, Worker, Engineer, Person, Computer, HashMap\n- Constructor: Car(), Run(), Swim()\n- Interface Name: Adjective - able : Runable, Serializable, Remote, Readable \n- Multiline Comment: /*-----*/ \n- Single Line Comment: //\n- Operators:\n    - Arithmatic Operators:\n    - Bitwise Operators:\n    - Relational Operators:\n    - Logical Operators:\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPratikMajage%2FJava","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPratikMajage%2FJava","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPratikMajage%2FJava/lists"}