title
Java OOPs Concepts in 120 minutes |Object Oriented Programming | Java Placement Course | Simplilearn

description
🔥 IITM Pravartak Professional Certificate Program In Full Stack Development - MERN (India Only): https://www.simplilearn.com/full-stack-developer-course-and-certification-iitm-pravartak?utm_campaign=SCE-FullstackIITM&utm_medium=DescriptionFF&utm_source=youtube 🔥Post Graduate Program In Full Stack Web Development: https://www.simplilearn.com/pgp-full-stack-web-development-certification-training-course?utm_campaign=OOPInJavaMar16-6T_HgnjoYwM&utm_medium=DescriptionFirstFold&utm_source=youtube 🔥Caltech Coding Bootcamp(US Only): https://www.simplilearn.com/coding-bootcamp?utm_campaign=OOPInJavaMar16-6T_HgnjoYwM&utm_medium=DescriptionFirstFold&utm_source=youtube This video is on Java object-oriented programming Concepts. This Object-Oriented Programming Java video will help you understand the fundamentals of OOPS in Java with practical examples for a better learning experience and job placement. The video will include the following: 00:00 Introduction (Object-Oriented Programming) oops In Java 01:00 Classes in (Object-Oriented Programming) oops In Java 29:30 Inheritance in (Object-Oriented Programming) oops In Java 43:15 Encapsulation in Java (Object-Oriented Programming) oops In Java 52:50 Abstraction in (Object-Oriented Programming) oops In Java 01:05:50 Interface in (Object-Oriented Programming) oops In Java 01:16:00 Inheritance (Object-Oriented Programming) oops In Java 01:30:00 ATM Project (Object-Oriented Programming) oops In Java 01:45:30 Calculator Project (Object-Oriented Programming) oops In Java ✅Subscribe to our Channel to learn more about the top Technologies: https://bit.ly/2VT4WtH ⏩ Check out the Java training videos: https://www.youtube.com/watch?v=i6AZdFxTK9I&list=PLEiEAq2VkUUI5_Z4vOtWE6AMcSrYbth1t #JavaOOPConcepts #ObjectOrientedProgrammingInJava #JavaOOPBasicsConcepts #ObjectOrientedProgramming #JavaOOPExplained #JavaProgramming #JavaForBeginners #JavaTutorialForBeginnners #Java #Simplilearn #bjectOrientedProgrammingInJava #javaOop #oopInJava #javaOopTutorial What is Java? Java is an object-oriented, class-based, high-level programming language used for software development, mobile application development, website development, desktop application development, and much more. Java is one of the leading and in-demand programming languages in the current IT industry. What is OOPs in Java OOPs, often abbreviated as Object-Oriented Programming is a method of designing and developing software using the class and object terminologies. Where class is the blueprint and object is the product developed by inheriting the methods and variables from class. Post Graduate Program in Full Stack Web Development: ➡️ About Post Graduate Program In Full Stack Web Development This program will give you the foundation for building full-stack web apps using the Java programming language. You'll begin with the basics of JavaScript, and then venture into some of the more advanced concepts like Angular, Spring Boot, Hibernate, JSPs, and MVC. Now is the perfect time to get started on your career as a full-stack web developer! ✅ Key Features - Caltech CTME Post Graduate Certificate - Enrolment in Simplilearn’s JobAssist - Receive up to 25 CEUs from Caltech CTME - Simplilearn's JobAssist helps you get noticed by top hiring companies - Attend Masterclasses from Caltech CTME instructors - Live virtual classes led by industry experts, hands-on projects and integrated labs - Online Convocation by Caltech CTME Program Director - 20 lesson-end and 5 phase-end projects - Capstone Project in 4 domains - Caltech CTME Circle Membership - Build your own portfolio on GitHub ✅ Skills Covered - Agile - JAVA - Hibernate and JPA - Spring Core 50 - DevOps - HTML5 and CSS3 - AWS - JavaScript ES6 - Servlets - SOAP and REST - JSP 👉Learn more at: https://www.simplilearn.com/pgp-full-stack-web-development-certification-training-course?utm_campaign=OOPInJavaMar16-6T_HgnjoYwM&utm_medium=Description&utm_source=youtube 🔥Explore Our Free Courses: https://www.simplilearn.com/skillup-free-online-courses?utm_campaign=CPlusPlusFunctionsTuorialForBeginners&utm_medium=Description&utm_source=youtube 🔥🔥 Interested in Attending Live Classes? Call Us: IN - 18002127688 / US - +18445327688

detail
{'title': 'Java OOPs Concepts in 120 minutes |Object Oriented Programming | Java Placement Course | Simplilearn', 'heatmap': [{'end': 792.28, 'start': 710.258, 'weight': 0.809}, {'end': 2148.289, 'start': 2072.344, 'weight': 0.919}, {'end': 2364.762, 'start': 2212.388, 'weight': 0.756}, {'end': 3227.272, 'start': 3142.63, 'weight': 0.711}, {'end': 3511.593, 'start': 3431.221, 'weight': 0.755}, {'end': 3650.856, 'start': 3574.966, 'weight': 0.725}, {'end': 4363.294, 'start': 4216.722, 'weight': 0.764}], 'summary': 'Course covers key object-oriented programming (oop) concepts in java, including classes, objects, inheritance, encapsulation, abstract classes, and interfaces, with practical project implementations like atm and calculator projects, providing a comprehensive understanding in 120 minutes.', 'chapters': [{'end': 884.843, 'segs': [{'end': 36.238, 'src': 'embed', 'start': 7.611, 'weight': 0, 'content': [{'end': 10.352, 'text': 'Hey everyone, welcome to Simply Learns YouTube channel.', 'start': 7.611, 'duration': 2.741}, {'end': 14.673, 'text': 'In this session, we will be covering the Object Oriented Programming in Java.', 'start': 10.772, 'duration': 3.901}, {'end': 17.873, 'text': 'In this tutorial, we will discuss the following concepts.', 'start': 15.013, 'duration': 2.86}, {'end': 26.055, 'text': 'Classes and Objects, Access Modifiers, Inheritance and Protected Access Modifiers, Encapsulation, Abstract Classes,', 'start': 18.334, 'duration': 7.721}, {'end': 30.717, 'text': 'Interface Multiple Inheritance in Java using Interfaces and finally,', 'start': 26.055, 'duration': 4.662}, {'end': 36.238, 'text': 'we will cover some of the projects based on our learnings i.e. ATM Project and Calculator Project.', 'start': 30.717, 'duration': 5.521}], 'summary': 'Covering object oriented programming in java, including classes, inheritance, encapsulation, and multiple inheritance using interfaces. also, projects like atm and calculator will be covered.', 'duration': 28.627, 'max_score': 7.611, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM7611.jpg'}, {'end': 97.749, 'src': 'embed', 'start': 72.76, 'weight': 1, 'content': [{'end': 81.461, 'text': 'Technically, if you go by the definition, a class is basically a blueprint of an object, which brings the question as what is object.', 'start': 72.76, 'duration': 8.701}, {'end': 84.742, 'text': 'An object is basically an instance of the class.', 'start': 81.842, 'duration': 2.9}, {'end': 89.343, 'text': "I know this becomes more confusing, so let's break it down into simpler definitions.", 'start': 85.502, 'duration': 3.841}, {'end': 94.144, 'text': 'A class is technically a logical entity.', 'start': 90.303, 'duration': 3.841}, {'end': 97.749, 'text': 'You can think of it as any entity in the world.', 'start': 94.928, 'duration': 2.821}], 'summary': 'A class is a blueprint of an object; an object is an instance of a class, representing a logical entity.', 'duration': 24.989, 'max_score': 72.76, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM72760.jpg'}, {'end': 227.887, 'src': 'embed', 'start': 197.088, 'weight': 2, 'content': [{'end': 201.05, 'text': 'because a class in Java will exactly have these two properties.', 'start': 197.088, 'duration': 3.962}, {'end': 205.033, 'text': 'It will have some attributes, which we call as properties.', 'start': 201.771, 'duration': 3.262}, {'end': 210.723, 'text': 'and it will have some behaviors which technically are called as methods.', 'start': 205.962, 'duration': 4.761}, {'end': 214.804, 'text': 'So it will have attributes, it will have properties and methods.', 'start': 211.263, 'duration': 3.541}, {'end': 218.045, 'text': 'Similar to real world entity where we have attributes and behavior.', 'start': 215.264, 'duration': 2.781}, {'end': 220.125, 'text': 'Behavior are methods and attributes are properties.', 'start': 218.085, 'duration': 2.04}, {'end': 222.185, 'text': "That's how it is.", 'start': 220.485, 'duration': 1.7}, {'end': 227.887, 'text': 'If you apply this simple philosophy whenever you are taking requirements from a customer for a particular project,', 'start': 222.266, 'duration': 5.621}], 'summary': 'A java class has attributes and behaviors, mirroring real-world entities. this philosophy can be applied in gathering project requirements.', 'duration': 30.799, 'max_score': 197.088, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM197088.jpg'}, {'end': 611.063, 'src': 'embed', 'start': 580.67, 'weight': 4, 'content': [{'end': 585.093, 'text': 'Now you need to create a new student object for each of those students.', 'start': 580.67, 'duration': 4.423}, {'end': 589.535, 'text': 'You need to initialize this student class 5,000 times.', 'start': 585.533, 'duration': 4.002}, {'end': 594.892, 'text': 'How do you do that? To do that, We do that with the help of constructors.', 'start': 589.955, 'duration': 4.937}, {'end': 596.233, 'text': 'We call this constructor.', 'start': 594.992, 'duration': 1.241}, {'end': 598.155, 'text': 'This is a special type of method.', 'start': 596.353, 'duration': 1.802}, {'end': 604.519, 'text': 'Remember, this is a special type of method which is provided by Java to initialize any classes objects.', 'start': 598.395, 'duration': 6.124}, {'end': 611.063, 'text': 'If you want to create multiple objects of the student class, you can repeatedly call this student constructor.', 'start': 605.239, 'duration': 5.824}], 'summary': 'Initialize student class 5,000 times using constructors in java.', 'duration': 30.393, 'max_score': 580.67, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM580670.jpg'}, {'end': 678.77, 'src': 'embed', 'start': 646.25, 'weight': 3, 'content': [{'end': 648.992, 'text': "So you're going to create the name, the age, and the address.", 'start': 646.25, 'duration': 2.742}, {'end': 651.614, 'text': 'So the name, age, and address.', 'start': 649.392, 'duration': 2.222}, {'end': 655.738, 'text': 'And then you set those values again, similar to the setter methods we have seen.', 'start': 652.216, 'duration': 3.522}, {'end': 657.979, 'text': 'The reason we need to use this here?', 'start': 656.358, 'duration': 1.621}, {'end': 661.381, 'text': 'because if you write it like this,', 'start': 657.979, 'duration': 3.402}, {'end': 667.384, 'text': "then Java doesn't understand the difference between the current object's name and the name coming from the argument.", 'start': 661.381, 'duration': 6.003}, {'end': 670.246, 'text': 'So to differentiate that, you need to use this here.', 'start': 667.764, 'duration': 2.482}, {'end': 678.77, 'text': "If you use n here, and if I just use n here, then this is fine because there's only single name variable in this whole class then.", 'start': 670.606, 'duration': 8.164}], 'summary': "Java method to differentiate object's name and argument's name.", 'duration': 32.52, 'max_score': 646.25, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM646250.jpg'}, {'end': 792.28, 'src': 'heatmap', 'start': 710.258, 'weight': 0.809, 'content': [{'end': 717.642, 'text': 'so you basically initialize all the properties of your class with some values, with the help of constructor.', 'start': 710.258, 'duration': 7.384}, {'end': 720.363, 'text': 'so we have the constructor, we have the setter, we have the getter.', 'start': 717.642, 'duration': 2.721}, {'end': 721.724, 'text': 'we can cover about this two string.', 'start': 720.363, 'duration': 1.361}, {'end': 725.706, 'text': 'basically, this two string is to print, print something, but we can cover that later.', 'start': 721.724, 'duration': 3.982}, {'end': 728.887, 'text': "now, uh, let's initialize this particular class.", 'start': 725.706, 'duration': 3.181}, {'end': 732.009, 'text': "so i'm similar to the initialization we have seen so far.", 'start': 728.887, 'duration': 3.122}, {'end': 734.779, 'text': 'you just write student, You write the object name.', 'start': 732.009, 'duration': 2.77}, {'end': 735.68, 'text': 'This can be anything.', 'start': 734.799, 'duration': 0.881}, {'end': 740.241, 'text': 'And then you use the new keyword, which is used to initialize anything in Java.', 'start': 736.02, 'duration': 4.221}, {'end': 744.402, 'text': 'New is a keyword in Java, which you can use to initialize literally anything in Java.', 'start': 740.801, 'duration': 3.601}, {'end': 746.323, 'text': 'So you use new student.', 'start': 744.762, 'duration': 1.561}, {'end': 752.625, 'text': 'And when you say new student, you can provide all the values which should match its constructor.', 'start': 746.803, 'duration': 5.822}, {'end': 757.326, 'text': 'So here we have three values, string, integer, and string.', 'start': 753.125, 'duration': 4.201}, {'end': 763.188, 'text': 'And here also we are supplying three values, string, integer, and string again.', 'start': 758.106, 'duration': 5.082}, {'end': 768.66, 'text': 'So remember to match this exactly with one of the constructors which is available in the class.', 'start': 763.578, 'duration': 5.082}, {'end': 770.661, 'text': "If it doesn't match, it is going to fail.", 'start': 768.94, 'duration': 1.721}, {'end': 771.661, 'text': 'It will not work.', 'start': 770.921, 'duration': 0.74}, {'end': 780.405, 'text': "So if I, for example, if I do this, then I'm supplying four arguments to the student class, but there is no constructor matching four arguments.", 'start': 772.042, 'duration': 8.363}, {'end': 781.466, 'text': 'So it is going to complain.', 'start': 780.425, 'duration': 1.041}, {'end': 784.027, 'text': 'You see this red line and the code is not compiling.', 'start': 781.806, 'duration': 2.221}, {'end': 786.348, 'text': 'If I remove this, then it is matching it.', 'start': 784.747, 'duration': 1.601}, {'end': 789.309, 'text': "And that's how you basically create a student object.", 'start': 786.748, 'duration': 2.561}, {'end': 792.28, 'text': 'So an object is basically an instance of the class.', 'start': 789.679, 'duration': 2.601}], 'summary': 'Initializing class properties and creating objects in java with constructor, setter, and getter methods. new keyword used to initialize objects with matching constructor values.', 'duration': 82.022, 'max_score': 710.258, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM710258.jpg'}, {'end': 757.326, 'src': 'embed', 'start': 728.887, 'weight': 5, 'content': [{'end': 732.009, 'text': "so i'm similar to the initialization we have seen so far.", 'start': 728.887, 'duration': 3.122}, {'end': 734.779, 'text': 'you just write student, You write the object name.', 'start': 732.009, 'duration': 2.77}, {'end': 735.68, 'text': 'This can be anything.', 'start': 734.799, 'duration': 0.881}, {'end': 740.241, 'text': 'And then you use the new keyword, which is used to initialize anything in Java.', 'start': 736.02, 'duration': 4.221}, {'end': 744.402, 'text': 'New is a keyword in Java, which you can use to initialize literally anything in Java.', 'start': 740.801, 'duration': 3.601}, {'end': 746.323, 'text': 'So you use new student.', 'start': 744.762, 'duration': 1.561}, {'end': 752.625, 'text': 'And when you say new student, you can provide all the values which should match its constructor.', 'start': 746.803, 'duration': 5.822}, {'end': 757.326, 'text': 'So here we have three values, string, integer, and string.', 'start': 753.125, 'duration': 4.201}], 'summary': "In java, objects are initialized using the 'new' keyword, providing values for the constructor parameters.", 'duration': 28.439, 'max_score': 728.887, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM728887.jpg'}], 'start': 7.611, 'title': 'Object-oriented programming in java', 'summary': 'Covers key oop concepts in java, such as classes, objects, inheritance, encapsulation, abstract classes, interface multiple inheritance, and practical project implementations like atm and calculator projects.', 'chapters': [{'end': 52.626, 'start': 7.611, 'title': 'Object-oriented programming in java', 'summary': 'Covers object-oriented programming in java, discussing key concepts such as classes, objects, access modifiers, inheritance, encapsulation, abstract classes, interface multiple inheritance, and practical project implementations like atm and calculator projects.', 'duration': 45.015, 'highlights': ['The tutorial covers various concepts including Classes and Objects, Access Modifiers, Inheritance, Encapsulation, Abstract Classes, Interface Multiple Inheritance, and practical projects like ATM and Calculator Projects.', 'Vikesh introduces the topic of classes and objects in Java and emphasizes the importance of subscribing to the YouTube channel and enabling notifications for updates.', 'The session will also delve into projects such as the ATM Project and Calculator Project, providing practical application of the discussed concepts.']}, {'end': 884.843, 'start': 53.207, 'title': 'Classes and objects in java', 'summary': 'Covers the concept of classes and objects in java, emphasizing that a class is a blueprint of an object, entities in the real world can be mapped as classes in a java program, and the process of creating and initializing objects using constructors and methods.', 'duration': 831.636, 'highlights': ['A class is a blueprint of an object, representing entities in the real world, with attributes and behaviors. A class in Java serves as a blueprint of an object, mapping real-world entities such as students, cars, and human beings, which have attributes and behaviors.', "Entities in a Java program are identified based on their attributes and behavior, and corresponding Java classes need to represent these entities with attributes (properties) and behaviors (methods). When identifying entities in a Java program, it's essential to recognize their attributes and behaviors, which are then represented in Java classes as properties and methods.", 'The concept of setters and getters is used to set and retrieve the values of attributes such as name, age, and address in a class, providing a way to interact with the class properties. The use of setters and getters allows for the setting and retrieval of attribute values, providing a means to interact with the properties of a class such as name, age, and address.', 'Constructors are used to initialize objects of a class, enabling the creation of multiple instances of the class with specific attribute values. Constructors are crucial for initializing objects of a class, allowing the creation of multiple instances with distinct attribute values, facilitating efficient object management.', "The 'new' keyword is utilized to create and initialize objects, ensuring that the provided values match the constructor of the class to successfully create an instance. The 'new' keyword is employed to create and initialize objects, ensuring that the supplied values align with the class constructor to create an instance successfully."]}], 'duration': 877.232, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM7611.jpg', 'highlights': ['The tutorial covers various concepts including Classes and Objects, Access Modifiers, Inheritance, Encapsulation, Abstract Classes, Interface Multiple Inheritance, and practical projects like ATM and Calculator Projects.', 'A class is a blueprint of an object, representing entities in the real world, with attributes and behaviors.', 'Entities in a Java program are identified based on their attributes and behavior, and corresponding Java classes need to represent these entities with attributes (properties) and behaviors (methods).', 'The concept of setters and getters is used to set and retrieve the values of attributes such as name, age, and address in a class, providing a way to interact with the class properties.', 'Constructors are used to initialize objects of a class, enabling the creation of multiple instances of the class with specific attribute values.', "The 'new' keyword is utilized to create and initialize objects, ensuring that the provided values match the constructor of the class to successfully create an instance."]}, {'end': 1858.919, 'segs': [{'end': 931.303, 'src': 'embed', 'start': 903.538, 'weight': 0, 'content': [{'end': 909.08, 'text': 'So remember, whenever you create a class, identify the properties and the behaviors like setters and getters.', 'start': 903.538, 'duration': 5.542}, {'end': 914.102, 'text': 'Write a constructor which can cover all the values which you want to initialize.', 'start': 909.961, 'duration': 4.141}, {'end': 922.481, 'text': 'And after that just initialize that class, create an object of that particular class, basically, And once you have the object,', 'start': 914.803, 'duration': 7.678}, {'end': 923.502, 'text': 'then you can call getters.', 'start': 922.481, 'duration': 1.021}, {'end': 925.922, 'text': 'You can also call this in this way.', 'start': 924.322, 'duration': 1.6}, {'end': 931.303, 'text': "If I don't supply any of this, then it currently it complains and why it complains.", 'start': 926.002, 'duration': 5.301}], 'summary': 'When creating a class, identify properties, behaviors, write a constructor, and initialize values. then create an object and call getters.', 'duration': 27.765, 'max_score': 903.538, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM903538.jpg'}, {'end': 976.684, 'src': 'embed', 'start': 946.387, 'weight': 1, 'content': [{'end': 950.479, 'text': 'then Student class does not have a constructor which is parameterless.', 'start': 946.387, 'duration': 4.092}, {'end': 954.183, 'text': 'Student class has only one constructor which is taking three parameters.', 'start': 950.62, 'duration': 3.563}, {'end': 961.23, 'text': "And that's why Java complains because it is not able to find a representation of a constructor which accepts no parameter.", 'start': 954.463, 'duration': 6.767}, {'end': 967.056, 'text': 'But like I said, we will find a solution to this particular problem in the coming session.', 'start': 961.53, 'duration': 5.526}, {'end': 969.297, 'text': 'for this session.', 'start': 968.616, 'duration': 0.681}, {'end': 970.618, 'text': 'this is all we are going to cover.', 'start': 969.297, 'duration': 1.321}, {'end': 976.684, 'text': 'we covered about classes, we covered about objects and we also saw how we can write getters and setters.', 'start': 970.618, 'duration': 6.066}], 'summary': 'Student class lacks parameterless constructor. java complains due to absence of such constructor. covered classes, objects, getters, and setters.', 'duration': 30.297, 'max_score': 946.387, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM946387.jpg'}, {'end': 1086.692, 'src': 'embed', 'start': 1057.26, 'weight': 2, 'content': [{'end': 1060.042, 'text': 'Give access to different functions, different variables,', 'start': 1057.26, 'duration': 2.782}, {'end': 1066.948, 'text': 'different programs only by providing them the kind of access which they need to run efficiently.', 'start': 1060.042, 'duration': 6.906}, {'end': 1069.359, 'text': 'and do not give them complete access.', 'start': 1067.458, 'duration': 1.901}, {'end': 1078.686, 'text': 'So, with that notion in mind, Java created the concept of access modifiers and it created these three modifiers, which are called public,', 'start': 1069.94, 'duration': 8.746}, {'end': 1080.067, 'text': 'protected and private.', 'start': 1078.686, 'duration': 1.381}, {'end': 1086.692, 'text': 'If you do not provide any modifier, then it goes to no modifier, or some people also call it as default modifier,', 'start': 1080.267, 'duration': 6.425}], 'summary': 'Java introduced access modifiers: public, protected, private.', 'duration': 29.432, 'max_score': 1057.26, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1057260.jpg'}, {'end': 1146.516, 'src': 'embed', 'start': 1121.331, 'weight': 4, 'content': [{'end': 1131.033, 'text': 'And whenever you put public in front of a class or a variable or a method, that particular component becomes available to the whole of the program.', 'start': 1121.331, 'duration': 9.702}, {'end': 1134.314, 'text': 'It will be available to the whole world basically.', 'start': 1131.533, 'duration': 2.781}, {'end': 1146.516, 'text': 'Any subclass or any package or any other class which might have been written in your Java program will be able to access that particular class or variable or method if you put public in front of that.', 'start': 1134.814, 'duration': 11.702}], 'summary': "Using 'public' in java makes the component accessible to the whole program, including any subclass, package, or other class.", 'duration': 25.185, 'max_score': 1121.331, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1121331.jpg'}, {'end': 1239.326, 'src': 'embed', 'start': 1214.639, 'weight': 5, 'content': [{'end': 1220.701, 'text': "technically, that's all the packages mean that you can wrap multiple related classes into a single package.", 'start': 1214.639, 'duration': 6.062}, {'end': 1226.583, 'text': 'so coming back to the access modifier, whenever you write protected in front of a class or a variable or a method,', 'start': 1220.701, 'duration': 5.882}, {'end': 1234.445, 'text': 'then that particular component will be accessible to everybody within the same class, everybody within the same package.', 'start': 1226.583, 'duration': 7.862}, {'end': 1239.326, 'text': 'it will also be accessible to everybody which is a subclass of the class.', 'start': 1234.445, 'duration': 4.881}], 'summary': "Packages allow grouping related classes. 'protected' grants access within class, package, and subclass.", 'duration': 24.687, 'max_score': 1214.639, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1214639.jpg'}, {'end': 1304.854, 'src': 'embed', 'start': 1279.465, 'weight': 6, 'content': [{'end': 1286.131, 'text': 'If you do not write anything in front of a class or a method or a variable, it gets the default access modifier privileges.', 'start': 1279.465, 'duration': 6.666}, {'end': 1294.478, 'text': 'And that privilege mean that anybody within the same class will be able to access that default variable or a default component.', 'start': 1286.611, 'duration': 7.867}, {'end': 1297.301, 'text': 'Anybody within the package will also be able to access it.', 'start': 1294.979, 'duration': 2.322}, {'end': 1304.854, 'text': 'The subclasses of the class where the default component was declared, those subclasses will not be able to access it.', 'start': 1297.83, 'duration': 7.024}], 'summary': 'Default access modifier allows access within class and package, but not by subclasses.', 'duration': 25.389, 'max_score': 1279.465, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1279465.jpg'}, {'end': 1515.483, 'src': 'embed', 'start': 1487.884, 'weight': 7, 'content': [{'end': 1492.147, 'text': 'And if I click on this, double click, it gets imported and everything is happy.', 'start': 1487.884, 'duration': 4.263}, {'end': 1497.41, 'text': 'So you can see the whole access modifier in effect here, the default versus public.', 'start': 1492.727, 'duration': 4.683}, {'end': 1503.736, 'text': "You can also try the other kind of access modifiers, let's try private as well.", 'start': 1497.93, 'duration': 5.806}, {'end': 1510.84, 'text': 'I think private will also have the same effect because it will still not be accessible from the package or from the subclass or from the whole world.', 'start': 1503.796, 'duration': 7.044}, {'end': 1515.483, 'text': "We already saw this particular in effect, but we'll see the private in a different way now.", 'start': 1511.101, 'duration': 4.382}], 'summary': 'Demonstrating access modifiers in java, including default, public, and private.', 'duration': 27.599, 'max_score': 1487.884, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1487884.jpg'}, {'end': 1676.602, 'src': 'embed', 'start': 1644.761, 'weight': 8, 'content': [{'end': 1648.103, 'text': 'So let me again go back to the default privilege here.', 'start': 1644.761, 'duration': 3.342}, {'end': 1654.626, 'text': 'So I put the test class access as the default class or default access and same goes for display.', 'start': 1648.783, 'duration': 5.843}, {'end': 1659.449, 'text': "So can other classes in the same package access the test class now? Let's see that.", 'start': 1654.806, 'duration': 4.643}, {'end': 1668.896, 'text': 'If I go to test demo, And here, if I try to get the test class initialize, does it work or does it give me a compilation error? Yes, it works.', 'start': 1659.669, 'duration': 9.227}, {'end': 1676.602, 'text': 'It works because the test class and the test demo are in the same package and test class has a default access privilege.', 'start': 1669.417, 'duration': 7.185}], 'summary': 'Test class has default access; can be accessed by classes in the same package.', 'duration': 31.841, 'max_score': 1644.761, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1644761.jpg'}, {'end': 1803.279, 'src': 'embed', 'start': 1780.339, 'weight': 10, 'content': [{'end': 1789.705, 'text': 'and the concept says that what if you have a scenario where you want multiple classes to share similar behavior and similar properties?', 'start': 1780.339, 'duration': 9.366}, {'end': 1792.327, 'text': "Let's understand this with the help of an example.", 'start': 1790.145, 'duration': 2.182}, {'end': 1794.248, 'text': "Let's take the example of a bank.", 'start': 1792.827, 'duration': 1.421}, {'end': 1799.011, 'text': 'When you go to a bank to open an account, there are multiple types of accounts.', 'start': 1794.988, 'duration': 4.023}, {'end': 1803.279, 'text': 'There can be a savings account, It can be a type of current account.', 'start': 1799.591, 'duration': 3.688}], 'summary': 'Concept of multiple classes sharing behavior and properties, illustrated with bank account types.', 'duration': 22.94, 'max_score': 1780.339, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1780339.jpg'}], 'start': 884.843, 'title': 'Java class creation, access modifiers, and inheritance', 'summary': 'Explains creating and initializing a class in java, covering the importance of identifying properties, writing constructors, and understanding behavior. it also discusses access modifiers in java, including public, protected, default, and private, and their impact on class, package, and subclass accessibility. additionally, it covers the effects of access modifiers on class and method accessibility and provides a brief introduction to inheritance in java using a banking scenario as an example.', 'chapters': [{'end': 969.297, 'start': 884.843, 'title': 'Creating and initializing a class', 'summary': 'Explains how to create and initialize a class in java, emphasizing the importance of identifying properties, writing a constructor to cover initialization values, and understanding the behavior when dealing with constructors that accept arguments.', 'duration': 84.454, 'highlights': ['When creating a class in Java, it is important to identify its properties and behaviors like setters and getters, and write a constructor to cover all the values for initialization.', 'Java complains when there is no parameterless constructor in a class and only constructors with parameters are available, providing a preview of the upcoming session on handling multiple constructors.']}, {'end': 1425.416, 'start': 969.297, 'title': 'Access modifiers in java', 'summary': 'Covers the concept of access modifiers in java, including public, protected, default, and private modifiers and their impact on class, package, and subclass accessibility, emphasizing the principle of least privilege.', 'duration': 456.119, 'highlights': ['The concept of access modifiers in Java is driven by the principle of least privilege, with the aim of restricting access to classes, packages, and modules to only those components intended for consumption, ensuring efficient program execution. The concept of access modifiers in Java is driven by the principle of least privilege, with the aim of restricting access to classes, packages, and modules to only those components intended for consumption, ensuring efficient program execution.', 'Java access modifiers include public, protected, default (no modifier), and private, each providing varying levels of accessibility to classes, variables, and methods, with public having the broadest access and private being the most restricted. Java access modifiers include public, protected, default (no modifier), and private, each providing varying levels of accessibility to classes, variables, and methods, with public having the broadest access and private being the most restricted.', 'When using the public modifier, the associated class, variable, or method becomes accessible to the entire program, including any subclasses or packages within the program. When using the public modifier, the associated class, variable, or method becomes accessible to the entire program, including any subclasses or packages within the program.', 'The protected modifier grants access to the associated class, package, and subclasses, but not to entities outside the package. The protected modifier grants access to the associated class, package, and subclasses, but not to entities outside the package.', 'Default (no modifier) provides access within the same class and package, but not to subclasses or entities outside the package. Default (no modifier) provides access within the same class and package, but not to subclasses or entities outside the package.']}, {'end': 1858.919, 'start': 1426.237, 'title': 'Java access modifiers and inheritance', 'summary': 'Covers the concept of access modifiers, demonstrating the effects of public, default, and private access modifiers on class and method accessibility, along with a brief introduction to inheritance in java, using a banking scenario as an example.', 'duration': 432.682, 'highlights': ['Effects of Access Modifiers The chapter extensively explains the effects of public, default, and private access modifiers on class and method accessibility, emphasizing the immediate propagation of changes and the importance of understanding different kinds of modifiers.', 'Usage of Default Modifier The demonstration of the default access privilege, showing that classes in the same package can access a class with default access privilege, and the method with default access privilege can be accessed by other classes in the same package.', 'Importance of Access Modifiers Highlighting the critical importance of access modifiers in Java programming, as they form the foundation for basic security level premises in applications, from simple programs to highly complex applications.', 'Introduction to Inheritance A brief introduction to inheritance in Java, using a banking scenario as an example to explain the concept of multiple classes sharing similar behavior and properties, while also having some differences in behavior.']}], 'duration': 974.076, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM884843.jpg', 'highlights': ['When creating a class in Java, it is important to identify its properties and behaviors like setters and getters, and write a constructor to cover all the values for initialization.', 'Java complains when there is no parameterless constructor in a class and only constructors with parameters are available, providing a preview of the upcoming session on handling multiple constructors.', 'The concept of access modifiers in Java is driven by the principle of least privilege, with the aim of restricting access to classes, packages, and modules to only those components intended for consumption, ensuring efficient program execution.', 'Java access modifiers include public, protected, default (no modifier), and private, each providing varying levels of accessibility to classes, variables, and methods, with public having the broadest access and private being the most restricted.', 'When using the public modifier, the associated class, variable, or method becomes accessible to the entire program, including any subclasses or packages within the program.', 'The protected modifier grants access to the associated class, package, and subclasses, but not to entities outside the package.', 'Default (no modifier) provides access within the same class and package, but not to subclasses or entities outside the package.', 'The chapter extensively explains the effects of public, default, and private access modifiers on class and method accessibility, emphasizing the immediate propagation of changes and the importance of understanding different kinds of modifiers.', 'The demonstration of the default access privilege, showing that classes in the same package can access a class with default access privilege, and the method with default access privilege can be accessed by other classes in the same package.', 'Highlighting the critical importance of access modifiers in Java programming, as they form the foundation for basic security level premises in applications, from simple programs to highly complex applications.', 'A brief introduction to inheritance in Java, using a banking scenario as an example to explain the concept of multiple classes sharing similar behavior and properties, while also having some differences in behavior.']}, {'end': 2453.002, 'segs': [{'end': 1925.42, 'src': 'embed', 'start': 1882.115, 'weight': 0, 'content': [{'end': 1886.337, 'text': 'is a, for example, car is a vehicle.', 'start': 1882.115, 'duration': 4.222}, {'end': 1889.118, 'text': 'savings account is a type of account.', 'start': 1886.337, 'duration': 2.781}, {'end': 1892.579, 'text': 'similarly, you will find many other types of similar examples.', 'start': 1889.118, 'duration': 3.461}, {'end': 1899.942, 'text': 'so whenever you will see that is a relationship between two different kinds of objects or two different kind of entities,', 'start': 1892.579, 'duration': 7.363}, {'end': 1905.45, 'text': 'That means that there might be an inheritance relationship being applied between them.', 'start': 1900.407, 'duration': 5.043}, {'end': 1908.711, 'text': "And that's how you will spot the usage of inheritance.", 'start': 1905.83, 'duration': 2.881}, {'end': 1914.774, 'text': 'So, so far we have understood this concept that there would be some sort of relationship between the two classes.', 'start': 1909.532, 'duration': 5.242}, {'end': 1919.317, 'text': 'What will be this relationship? The relationship will be of parent child type.', 'start': 1915.235, 'duration': 4.082}, {'end': 1920.757, 'text': 'There will be a parent class.', 'start': 1919.497, 'duration': 1.26}, {'end': 1925.42, 'text': 'Some people also call that as base class, and then there will be a child class.', 'start': 1921.118, 'duration': 4.302}], 'summary': 'Inheritance establishes parent-child relationship between classes.', 'duration': 43.305, 'max_score': 1882.115, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1882115.jpg'}, {'end': 1988.506, 'src': 'embed', 'start': 1963.874, 'weight': 2, 'content': [{'end': 1971.599, 'text': 'And this is how you can conceptualize it, that you will have a base class or a parent class, and then you can have multiple children.', 'start': 1963.874, 'duration': 7.725}, {'end': 1975.842, 'text': 'And then those children can again have their own children and so on and so forth.', 'start': 1971.859, 'duration': 3.983}, {'end': 1981.106, 'text': 'So this hierarchy, this whole inheritance hierarchy can go as deep as you want it to be.', 'start': 1976.082, 'duration': 5.024}, {'end': 1988.506, 'text': "And that's the basic idea and basic conceptualization of how you understand and how you visualize inheritance.", 'start': 1981.621, 'duration': 6.885}], 'summary': 'Inheritance allows for a hierarchy of parent and child classes, which can extend as deep as needed.', 'duration': 24.632, 'max_score': 1963.874, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1963874.jpg'}, {'end': 2148.289, 'src': 'heatmap', 'start': 2072.344, 'weight': 0.919, 'content': [{'end': 2076.806, 'text': 'I define two properties in the bicycle class, which is gear and speed.', 'start': 2072.344, 'duration': 4.462}, {'end': 2081.172, 'text': "We will come back to protected in a while, but let's leave that there.", 'start': 2077.21, 'duration': 3.962}, {'end': 2083.953, 'text': 'So I have two properties, which is gear and speed.', 'start': 2081.612, 'duration': 2.341}, {'end': 2088.074, 'text': "I have a constructor where I'm initializing the starting speed and the starting gear.", 'start': 2084.313, 'duration': 3.761}, {'end': 2094.717, 'text': 'And then I have three methods here, which says set gear, apply break, and speed up.', 'start': 2088.675, 'duration': 6.042}, {'end': 2098.76, 'text': 'When I apply break, the speed is going to get reduced.', 'start': 2095.158, 'duration': 3.602}, {'end': 2101.501, 'text': "So that's why you see minus equal to unary operator.", 'start': 2099.04, 'duration': 2.461}, {'end': 2105.635, 'text': "And when I'm trying to speed up, the speed is going to increase.", 'start': 2102.472, 'duration': 3.163}, {'end': 2108.297, 'text': "That's why I'm using the plus equal to unary operator.", 'start': 2106.015, 'duration': 2.282}, {'end': 2114.401, 'text': 'So when you use the method speed up, the speed is going to be increased by the value you supply in the method.', 'start': 2108.857, 'duration': 5.544}, {'end': 2121.947, 'text': 'Similarly, when you apply the break, the speed is going to get reduced by the amount you supply in the method argument.', 'start': 2114.842, 'duration': 7.105}, {'end': 2126.511, 'text': 'And that is my base class, bicycle, gear, speed, and three methods.', 'start': 2122.288, 'duration': 4.223}, {'end': 2128.853, 'text': "Now let's have a look at the child class.", 'start': 2127.031, 'duration': 1.822}, {'end': 2135.164, 'text': 'So the way you will define the inheritance relationship in Java is by using this extends keyword.', 'start': 2129.662, 'duration': 5.502}, {'end': 2137.565, 'text': 'Remember, I told you to remember the extends keyword.', 'start': 2135.424, 'duration': 2.141}, {'end': 2139.305, 'text': 'So what you will do?', 'start': 2137.985, 'duration': 1.32}, {'end': 2148.289, 'text': 'that you will write your class name as usual and then you will use extends keyword and then you will use the parent class name or the base class name.', 'start': 2139.305, 'duration': 8.984}], 'summary': 'Bicycle class has gear and speed properties, with methods to set gear, apply brake, and speed up. child class uses inheritance relationship in java.', 'duration': 75.945, 'max_score': 2072.344, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM2072344.jpg'}, {'end': 2364.762, 'src': 'heatmap', 'start': 2212.388, 'weight': 0.756, 'content': [{'end': 2218.293, 'text': 'And then once you do that, how do you initialize the base class constructor is by calling the super method.', 'start': 2212.388, 'duration': 5.905}, {'end': 2226.079, 'text': 'This is again a keyword in Java and you will use this super keyword to refer to the base class constructor in this way.', 'start': 2218.493, 'duration': 7.586}, {'end': 2234.846, 'text': 'So what you will do technically is that you will write super and you will supply the arguments which is required by the base class constructor.', 'start': 2226.419, 'duration': 8.427}, {'end': 2241.04, 'text': 'If I go back, the base class constructor requires two arguments, start speed and start gear.', 'start': 2235.498, 'duration': 5.542}, {'end': 2245.302, 'text': 'So I write super and then I write start speed and start gear.', 'start': 2241.981, 'duration': 3.321}, {'end': 2251.384, 'text': "So whatever I got from here in the constructor of mountain bike, I'm supplying those values as is to super.", 'start': 2245.382, 'duration': 6.002}, {'end': 2260.608, 'text': 'And Java will automatically take care of invoking this particular constructor the moment it encounters this kind of statement.', 'start': 2251.945, 'duration': 8.663}, {'end': 2268.318, 'text': 'Another thing to notice is that the super keyword or super statement has to be the first statement inside your constructor.', 'start': 2261.453, 'duration': 6.865}, {'end': 2277.204, 'text': 'Remember that whenever you are dealing with inheritance and whenever you have to initialize the super class constructor or the base class constructor,', 'start': 2268.618, 'duration': 8.586}, {'end': 2284.089, 'text': 'use the super constructor invocation as the very first statement inside your child class constructor.', 'start': 2277.204, 'duration': 6.885}, {'end': 2289.613, 'text': 'Otherwise, Java will not compile the program and then you will initialize the local variables.', 'start': 2284.509, 'duration': 5.104}, {'end': 2291.442, 'text': 'I should call this as this.', 'start': 2290.242, 'duration': 1.2}, {'end': 2295.764, 'text': 'Remember I, we discussed about this in this, uh, in the classes session.', 'start': 2291.863, 'duration': 3.901}, {'end': 2299.545, 'text': 'Okay And then it just has a method of set height.', 'start': 2296.764, 'duration': 2.781}, {'end': 2302.767, 'text': "So there's no extra method with this mountain bike is providing,", 'start': 2299.665, 'duration': 3.102}, {'end': 2310.489, 'text': 'but this mountain bike will have access to all the methods which have been provided here and all the properties which have been provided here.', 'start': 2302.767, 'duration': 7.722}, {'end': 2314.191, 'text': 'This mountain bike can access everything from the bicycle class.', 'start': 2311.01, 'duration': 3.181}, {'end': 2321.584, 'text': "And that's the whole idea of inheritance that the child class can access the properties of the base class by extending the base class.", 'start': 2314.271, 'duration': 7.313}, {'end': 2325.106, 'text': "Now let's look at how do we invoke this particular class.", 'start': 2322.405, 'duration': 2.701}, {'end': 2331.208, 'text': 'So for that, I have a simple class name as inheritance demo, which has a public static void main method.', 'start': 2325.706, 'duration': 5.502}, {'end': 2335.03, 'text': 'And then I am initializing the mountain by class.', 'start': 2331.728, 'duration': 3.302}, {'end': 2339.512, 'text': "I'm supplying three values as 20, 10, and 1.", 'start': 2335.05, 'duration': 4.462}, {'end': 2341.692, 'text': 'So the 20 goes to start height.', 'start': 2339.512, 'duration': 2.18}, {'end': 2345.534, 'text': 'The 10 here goes to start speed.', 'start': 2342.573, 'duration': 2.961}, {'end': 2352.939, 'text': "and one here goes to gear or the start gear, and that's how i'm setting the values.", 'start': 2346.597, 'duration': 6.342}, {'end': 2357.48, 'text': 'so when i call this particular constructor here, the mountain bike constructor is going to,', 'start': 2352.939, 'duration': 4.541}, {'end': 2364.762, 'text': 'this mountain bike constructor is going to get called and which in turn is going to call the base class bicycle class constructor as well,', 'start': 2357.48, 'duration': 7.282}], 'summary': 'In java, the super keyword is used to initialize the base class constructor in child classes, ensuring the access to properties and methods through inheritance. the super statement must be the first statement inside the child class constructor to compile the program. an example of invoking the class and setting values is provided.', 'duration': 152.374, 'max_score': 2212.388, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM2212388.jpg'}, {'end': 2325.106, 'src': 'embed', 'start': 2302.767, 'weight': 3, 'content': [{'end': 2310.489, 'text': 'but this mountain bike will have access to all the methods which have been provided here and all the properties which have been provided here.', 'start': 2302.767, 'duration': 7.722}, {'end': 2314.191, 'text': 'This mountain bike can access everything from the bicycle class.', 'start': 2311.01, 'duration': 3.181}, {'end': 2321.584, 'text': "And that's the whole idea of inheritance that the child class can access the properties of the base class by extending the base class.", 'start': 2314.271, 'duration': 7.313}, {'end': 2325.106, 'text': "Now let's look at how do we invoke this particular class.", 'start': 2322.405, 'duration': 2.701}], 'summary': 'Mountain bike inherits all methods and properties of the bicycle class.', 'duration': 22.339, 'max_score': 2302.767, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM2302767.jpg'}], 'start': 1859.419, 'title': 'Understanding inheritance in oop and java inheritance', 'summary': "Covers the concept of inheritance in object-oriented programming, emphasizing the identification of 'is a' relationships between classes, hierarchical relationships of parent and child classes, and demonstrates inheritance in java using bicycle and mountain bike classes, showcasing seamless access to properties and methods.", 'chapters': [{'end': 2006.666, 'start': 1859.419, 'title': 'Understanding inheritance in oop', 'summary': "Explains the concept of inheritance in object-oriented programming, highlighting the identification of 'is a' relationships between classes and the hierarchical relationship of parent and child classes, emphasizing the potential depth of the inheritance hierarchy.", 'duration': 147.247, 'highlights': ["Inheritance is identified through 'is a' relationships, such as car is a vehicle, savings account is a type of account, indicating the potential application of inheritance between objects or entities.", 'The relationship in inheritance is of parent-child type, where the child class inherits properties and behaviors from the parent or base class, and the inheritance hierarchy can extend to multiple levels, demonstrating the depth of the relationship.', 'Understanding and visualizing inheritance involves conceptualizing a base or parent class with multiple potential child classes and hierarchical layers, forming a deep inheritance hierarchy.']}, {'end': 2453.002, 'start': 2006.846, 'title': 'Java inheritance: bicycle and mountain bike', 'summary': "Explains the concept of inheritance in java using the example of a base class 'bicycle' and a child class 'mountain bike', demonstrating the extension of properties and methods, with an example of creating and accessing instances of the child class, showcasing the seamless access to both base and child class properties and methods.", 'duration': 446.156, 'highlights': ["The chapter emphasizes the concept of inheritance in Java, illustrating the relationship between a base class 'bicycle' and a child class 'mountain bike', showcasing the extension of properties and methods from the base class to the child class. The explanation of inheritance and the relationship between the base class 'bicycle' and the child class 'mountain bike' provides a foundational understanding of extending properties and methods from the base class to the child class.", "A detailed explanation of how the child class 'mountain bike' inherits properties from the base class 'bicycle', including the additional property of adjusting seat height specific to the child class, and the process of initializing the base class constructor within the child class constructor using the 'super' keyword. The detailed explanation of how the child class 'mountain bike' inherits properties from the base class 'bicycle', including the additional property of adjusting seat height specific to the child class and the process of initializing the base class constructor within the child class constructor using the 'super' keyword, elucidates the practical implementation of inheritance in Java.", "An illustrative example of creating an instance of the child class 'mountain bike' and accessing both base and child class properties and methods, demonstrating the seamless access to inherited properties and methods as well as the local properties specific to the child class. The illustrative example of creating an instance of the child class 'mountain bike' and accessing both base and child class properties and methods, showcasing the seamless access to inherited properties and methods as well as the local properties specific to the child class, provides a practical demonstration of the inheritance concept."]}], 'duration': 593.583, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM1859419.jpg', 'highlights': ["Inheritance is identified through 'is a' relationships, such as car is a vehicle, savings account is a type of account, indicating the potential application of inheritance between objects or entities.", 'The relationship in inheritance is of parent-child type, where the child class inherits properties and behaviors from the parent or base class, and the inheritance hierarchy can extend to multiple levels, demonstrating the depth of the relationship.', 'Understanding and visualizing inheritance involves conceptualizing a base or parent class with multiple potential child classes and hierarchical layers, forming a deep inheritance hierarchy.', "The chapter emphasizes the concept of inheritance in Java, illustrating the relationship between a base class 'bicycle' and a child class 'mountain bike', showcasing the extension of properties and methods from the base class to the child class.", "A detailed explanation of how the child class 'mountain bike' inherits properties from the base class 'bicycle', including the additional property of adjusting seat height specific to the child class and the process of initializing the base class constructor within the child class constructor using the 'super' keyword, elucidates the practical implementation of inheritance in Java.", "An illustrative example of creating an instance of the child class 'mountain bike' and accessing both base and child class properties and methods, showcasing the seamless access to inherited properties and methods as well as the local properties specific to the child class, provides a practical demonstration of the inheritance concept."]}, {'end': 3213.174, 'segs': [{'end': 2507.315, 'src': 'embed', 'start': 2476.255, 'weight': 0, 'content': [{'end': 2478.416, 'text': 'set gear, set height, speed up.', 'start': 2476.255, 'duration': 2.161}, {'end': 2482.939, 'text': 'all the methods which are defined in the base class are accessible in the child class as well.', 'start': 2478.416, 'duration': 4.523}, {'end': 2484.741, 'text': 'This is the power of inheritance.', 'start': 2483.46, 'duration': 1.281}, {'end': 2490.745, 'text': 'One more thing which I said I will come back to is around the usage of protected access modifier.', 'start': 2485.241, 'duration': 5.504}, {'end': 2499.85, 'text': 'Remember, when we discussed about the access modifiers in the previous session, I said that protected is used when you are dealing with inheritance,', 'start': 2491.564, 'duration': 8.286}, {'end': 2507.315, 'text': 'that whenever you define something as protected, it will be available to be accessible in the child classes of the base class.', 'start': 2499.85, 'duration': 7.465}], 'summary': 'Inheritance allows access to base class methods in child class. protected modifier is used for inheritance.', 'duration': 31.06, 'max_score': 2476.255, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM2476255.jpg'}, {'end': 2584.498, 'src': 'embed', 'start': 2554.522, 'weight': 2, 'content': [{'end': 2555.202, 'text': 'The error is gone.', 'start': 2554.522, 'duration': 0.68}, {'end': 2556.322, 'text': "There's no red line here.", 'start': 2555.222, 'duration': 1.1}, {'end': 2561.003, 'text': "So that's how you can use the protected access modifiers.", 'start': 2556.862, 'duration': 4.141}, {'end': 2566.284, 'text': 'It is always recommended to use them when you write any kind of inheritance logic.', 'start': 2561.403, 'duration': 4.881}, {'end': 2573.486, 'text': 'And in inheritance logic as well, intentionally, if you want to hide a particular property from the child classes, just make it private.', 'start': 2566.765, 'duration': 6.721}, {'end': 2579.957, 'text': "And that's all I want to cover in this particular session where we dive deep into the concept of inheritance.", 'start': 2574.116, 'duration': 5.841}, {'end': 2584.498, 'text': 'We had a look at an example using the bicycle and mountain bike kind of construct,', 'start': 2580.037, 'duration': 4.461}], 'summary': 'Use protected access modifiers in inheritance logic to hide properties; example: bicycle and mountain bike.', 'duration': 29.976, 'max_score': 2554.522, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM2554522.jpg'}, {'end': 2744.392, 'src': 'embed', 'start': 2717.193, 'weight': 3, 'content': [{'end': 2723.995, 'text': 'you see, intentionally i have used the keyword private in front of these three properties,', 'start': 2717.193, 'duration': 6.802}, {'end': 2734.41, 'text': 'and that is the first thing which you need to do to implement encapsulation on your object that you hide all the properties from the outside world.', 'start': 2723.995, 'duration': 10.415}, {'end': 2737.071, 'text': 'remember the moment you make anything as private.', 'start': 2734.41, 'duration': 2.661}, {'end': 2744.392, 'text': 'only the class, which is the student class itself, only the class itself, can see these variables or these properties.', 'start': 2737.071, 'duration': 7.321}], 'summary': "To implement encapsulation, use 'private' keyword to hide properties from outside world.", 'duration': 27.199, 'max_score': 2717.193, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM2717193.jpg'}, {'end': 3154.658, 'src': 'embed', 'start': 3127.286, 'weight': 4, 'content': [{'end': 3136.348, 'text': 'so you created everything as all the properties as private, and then you define how you want to replace the values by providing the setters,', 'start': 3127.286, 'duration': 9.062}, {'end': 3141.05, 'text': 'and you define how you want the outside world to access your properties.', 'start': 3136.348, 'duration': 4.702}, {'end': 3142.63, 'text': 'so you have full control of the class.', 'start': 3141.05, 'duration': 1.58}, {'end': 3147.311, 'text': 'now you you control the visibility, you control how they are going to get initialized,', 'start': 3142.63, 'duration': 4.681}, {'end': 3154.658, 'text': 'You are controlling how the properties are going to be overwritten or set and you control how the properties are going to be returned.', 'start': 3147.813, 'duration': 6.845}], 'summary': 'Control class properties through private access, setters, and visibility.', 'duration': 27.372, 'max_score': 3127.286, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3127286.jpg'}, {'end': 3193.569, 'src': 'embed', 'start': 3167.729, 'weight': 5, 'content': [{'end': 3172.072, 'text': "Let's first understand the definition of abstraction before we relate this to Java.", 'start': 3167.729, 'duration': 4.343}, {'end': 3175.475, 'text': 'Abstraction generally means hiding something.', 'start': 3172.433, 'duration': 3.042}, {'end': 3184.302, 'text': 'When you want to hide some details of a particular object from the outside world, you apply the concept of abstraction.', 'start': 3175.796, 'duration': 8.506}, {'end': 3191.427, 'text': 'For example, when you drive a particular car, you just hit the accelerator and the car speeds up.', 'start': 3184.602, 'duration': 6.825}, {'end': 3193.569, 'text': "Now, it's not only one action.", 'start': 3191.848, 'duration': 1.721}], 'summary': 'Abstraction in java involves hiding details of an object. for instance, accelerating a car.', 'duration': 25.84, 'max_score': 3167.729, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3167729.jpg'}], 'start': 2453.982, 'title': 'Inheritance, access modifiers, encapsulation, and abstraction in java', 'summary': 'Explains inheritance and access modifiers, illustrating their impact on base and child classes. additionally, it covers encapsulation and abstraction, emphasizing controlled access and the concept of hiding object details with practical examples from driving a car.', 'chapters': [{'end': 2573.486, 'start': 2453.982, 'title': 'Inheritance and access modifiers', 'summary': 'Explains the concept of inheritance, showcasing how methods and properties of the base class are accessible in the child class, and emphasizes the usage and impact of protected and private access modifiers.', 'duration': 119.504, 'highlights': ['Methods and properties of the base class are accessible in the child class, demonstrating the power of inheritance. All methods defined in the base class are accessible in the child class, showcasing the power of inheritance.', 'Protected access modifier allows the property to be accessible in the child classes of the base class, while private restricts access to within the class only. Protected access modifier enables access to the property in child classes, while private restricts access exclusively within the class.', 'Recommended use of protected access modifiers in inheritance logic and deliberate use of private to hide properties from child classes. It is advised to use protected access modifiers in inheritance logic and deliberately use private to conceal properties from child classes.']}, {'end': 3213.174, 'start': 2574.116, 'title': 'Encapsulation and abstraction in java', 'summary': 'Covers the concepts of encapsulation and abstraction in java, including hiding class properties from the outside world, creating getters and setters for controlled access, and the definition of abstraction as hiding details of an object, with examples from driving a car.', 'duration': 639.058, 'highlights': ['Encapsulation involves hiding class properties from the outside world by using the private keyword, creating public constructor for object initialization, and providing getters and setters for controlled access. By using the private keyword, the class properties are hidden from the outside world, ensuring that only the class itself can access them, while providing public constructors for object initialization and getters and setters for controlled access.', "Getters and setters are created to control the access of class properties and provide prescriptive guidance on exposing the properties of the class, ensuring a controlled and secure way of accessing the object's properties. Getters and setters are created to control the access of class properties, providing a prescribed way of exposing the properties of the class, ensuring a secure and controlled access to the object's properties.", 'Abstraction is defined as hiding details of an object from the outside world, with an example provided of how driving a car involves hitting the accelerator to speed up, hiding the complex internal workings of the car. Abstraction is defined as hiding details of an object from the outside world, with the example of driving a car provided to illustrate how hitting the accelerator to speed up hides the complex internal workings of the car.']}], 'duration': 759.192, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM2453982.jpg', 'highlights': ['All methods defined in the base class are accessible in the child class, showcasing the power of inheritance.', 'Protected access modifier enables access to the property in child classes, while private restricts access exclusively within the class.', 'It is advised to use protected access modifiers in inheritance logic and deliberately use private to conceal properties from child classes.', 'By using the private keyword, the class properties are hidden from the outside world, ensuring that only the class itself can access them, while providing public constructors for object initialization and getters and setters for controlled access.', "Getters and setters are created to control the access of class properties, providing a prescribed way of exposing the properties of the class, ensuring a secure and controlled access to the object's properties.", 'Abstraction is defined as hiding details of an object from the outside world, with the example of driving a car provided to illustrate how hitting the accelerator to speed up hides the complex internal workings of the car.']}, {'end': 3991.729, 'segs': [{'end': 3310.385, 'src': 'embed', 'start': 3267.838, 'weight': 0, 'content': [{'end': 3272.6, 'text': 'Now, abstract is a keyword which can be used in front of a class or a method.', 'start': 3267.838, 'duration': 4.762}, {'end': 3277.742, 'text': 'When you use it in front of a class, the whole class becomes abstract.', 'start': 3272.94, 'duration': 4.802}, {'end': 3279.763, 'text': 'Abstract class is a type of class.', 'start': 3278.182, 'duration': 1.581}, {'end': 3282.846, 'text': 'So the class itself becomes an abstract class.', 'start': 3280.305, 'duration': 2.541}, {'end': 3289.867, 'text': 'One of the things to remember is that abstract class cannot be instantiated, but can be subclassed.', 'start': 3283.466, 'duration': 6.401}, {'end': 3294.548, 'text': 'Remember we talked about the concept of subclass and the parent class when we talked about inheritance.', 'start': 3290.207, 'duration': 4.341}, {'end': 3301.85, 'text': 'So if you make a class as abstract class, you cannot call the constructor of the class because you cannot instantiate it,', 'start': 3295.048, 'duration': 6.802}, {'end': 3306.171, 'text': 'but you can extend the abstract class and create a child class out of it.', 'start': 3301.85, 'duration': 4.321}, {'end': 3308.051, 'text': "That's the concept of abstract class.", 'start': 3306.571, 'duration': 1.48}, {'end': 3310.385, 'text': 'another concept is abstract method.', 'start': 3308.604, 'duration': 1.781}], 'summary': 'Abstract class cannot be instantiated, but can be subclassed and extended to create a child class. this concept applies to a method as well.', 'duration': 42.547, 'max_score': 3267.838, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3267838.jpg'}, {'end': 3393.99, 'src': 'embed', 'start': 3349.879, 'weight': 2, 'content': [{'end': 3357.44, 'text': 'So that child class will be having the responsibility to provide a concrete implementation of the declared method.', 'start': 3349.879, 'duration': 7.561}, {'end': 3360.021, 'text': "Let's understand this better with the help of an example.", 'start': 3357.72, 'duration': 2.301}, {'end': 3367.985, 'text': 'So here I have created a class called graphic object And I have made the class as abstract class.', 'start': 3360.441, 'duration': 7.544}, {'end': 3374.386, 'text': 'This is the keyword which you need to use in front before the class keyword and the class becomes an abstract class.', 'start': 3368.485, 'duration': 5.901}, {'end': 3378.407, 'text': 'Now, when you create an abstract class, it automatically gets some properties.', 'start': 3374.986, 'duration': 3.421}, {'end': 3385.128, 'text': 'The first property is that this particular class must have at least one abstract method.', 'start': 3378.867, 'duration': 6.261}, {'end': 3388.009, 'text': 'And this is how you define the abstract methods,', 'start': 3385.488, 'duration': 2.521}, {'end': 3393.99, 'text': 'where you just provide the declaration but you do not provide the implementation of the draw method or the resize method.', 'start': 3388.009, 'duration': 5.981}], 'summary': 'Abstract classes must have at least one abstract method, like draw or resize.', 'duration': 44.111, 'max_score': 3349.879, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3349879.jpg'}, {'end': 3438.223, 'src': 'embed', 'start': 3412.099, 'weight': 3, 'content': [{'end': 3417.96, 'text': 'So that is the liberty which abstract class gives you, that you can have abstract methods which are just declared,', 'start': 3412.099, 'duration': 5.861}, {'end': 3423.882, 'text': 'but you can also have normal methods where you can also provide the implementation.', 'start': 3417.96, 'duration': 5.922}, {'end': 3428.52, 'text': 'So you can have normal methods and abstract methods as well in an abstract class.', 'start': 3424.178, 'duration': 4.342}, {'end': 3430.74, 'text': 'So this is the abstract class.', 'start': 3429.36, 'duration': 1.38}, {'end': 3438.223, 'text': 'Now, if you want to provide an implementation of the draw and resize method, you have to extend this abstract class.', 'start': 3431.221, 'duration': 7.002}], 'summary': 'Abstract classes allow both abstract and normal methods, providing flexibility in implementation.', 'duration': 26.124, 'max_score': 3412.099, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3412099.jpg'}, {'end': 3511.593, 'src': 'heatmap', 'start': 3431.221, 'weight': 0.755, 'content': [{'end': 3438.223, 'text': 'Now, if you want to provide an implementation of the draw and resize method, you have to extend this abstract class.', 'start': 3431.221, 'duration': 7.002}, {'end': 3445.946, 'text': 'So we extend this abstract class by creating two child classes out of this particular abstract class, which is circle.java,', 'start': 3438.703, 'duration': 7.243}, {'end': 3450.748, 'text': 'where you can see I create a normal class and I use the extends keyword for inheritance.', 'start': 3445.946, 'duration': 4.802}, {'end': 3460.227, 'text': "And I'm saying that circle class is inheriting from the graphic object class, which was my abstract class, and once I use this extends keyword,", 'start': 3451.168, 'duration': 9.059}, {'end': 3466.332, 'text': 'then I have the responsibility of providing the implementation of the abstract methods.', 'start': 3460.227, 'duration': 6.105}, {'end': 3474.059, 'text': 'actually, Java will force me to provide the implementation of these two methods if I do not provide all the declared methods.', 'start': 3466.332, 'duration': 7.727}, {'end': 3475.68, 'text': 'so there are two declared methods here.', 'start': 3474.059, 'duration': 1.621}, {'end': 3483.025, 'text': 'so if the circuit class does not provide the implementation for both draw and resize methods,', 'start': 3475.68, 'duration': 7.345}, {'end': 3491.093, 'text': 'then java will throw an error and it will ask you to take an action which can be either define all the methods,', 'start': 3483.025, 'duration': 8.068}, {'end': 3497.739, 'text': 'meaning provide implementation for all the methods, or make the circle class itself as abstract.', 'start': 3491.093, 'duration': 6.646}, {'end': 3500.682, 'text': "let's see, if i just comment this particular out.", 'start': 3497.739, 'duration': 2.943}, {'end': 3501.382, 'text': 'i get an error.', 'start': 3500.682, 'duration': 0.7}, {'end': 3504.345, 'text': 'you see a red line here and if you click on this particular balloon here,', 'start': 3501.382, 'duration': 2.963}, {'end': 3511.593, 'text': 'It will say either you can add the unimplemented methods or you can make the circle type as abstracts.', 'start': 3504.85, 'duration': 6.743}], 'summary': 'In java, extending an abstract class requires implementing all declared methods to avoid errors.', 'duration': 80.372, 'max_score': 3431.221, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3431221.jpg'}, {'end': 3650.856, 'src': 'heatmap', 'start': 3574.966, 'weight': 0.725, 'content': [{'end': 3581.33, 'text': 'So one abstract class is the parent class, which is the graphic object, and two children, circle and rectangle,', 'start': 3574.966, 'duration': 6.364}, {'end': 3587.699, 'text': 'both providing the implementation of the abstract methods which were declared in the base class.', 'start': 3581.33, 'duration': 6.369}, {'end': 3593.804, 'text': "now let's go to the main class, where i've defined, defined the public static void main method, and here, you see,", 'start': 3587.699, 'duration': 6.105}, {'end': 3597.086, 'text': 'i have created two different kind of blocks of code.', 'start': 3593.804, 'duration': 3.282}, {'end': 3607.255, 'text': "here one block is where i'm saying graphic object, creating a reference of the graphic object named as circle and initializing the circle object.", 'start': 3597.086, 'duration': 10.169}, {'end': 3612.01, 'text': 'now you see a difference here here is the abstract class and here is the concrete class.', 'start': 3607.255, 'duration': 4.755}, {'end': 3619.152, 'text': 'so whatever you define on the right hand side, whatever is the type of object, will be the type of methods being caught.', 'start': 3612.01, 'duration': 7.142}, {'end': 3627.215, 'text': 'so if you created a circle object and then if you call the draw method and resize method, these methods will be called from the circle class.', 'start': 3619.152, 'duration': 8.063}, {'end': 3629.836, 'text': 'if you initialized it as new rectangle,', 'start': 3627.215, 'duration': 2.621}, {'end': 3637.311, 'text': 'then you are creating a rectangle class object and then the draw and the resize method will be called from the rectangle class.', 'start': 3629.836, 'duration': 7.475}, {'end': 3644.234, 'text': "That's the basic construct and that's how you will initialize a particular class which is using an abstract class.", 'start': 3637.771, 'duration': 6.463}, {'end': 3650.856, 'text': 'So I call graphic object circle new circle and I call circle.draw and circle.resize.', 'start': 3644.754, 'duration': 6.102}], 'summary': 'Illustrates inheritance and abstract class implementation in java with circle and rectangle objects.', 'duration': 75.89, 'max_score': 3574.966, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3574966.jpg'}, {'end': 3873.6, 'src': 'embed', 'start': 3847.763, 'weight': 6, 'content': [{'end': 3855.928, 'text': 'Though even I have defined the default constructor here, but still Java is not able to find it because this class is abstract.', 'start': 3847.763, 'duration': 8.165}, {'end': 3860.431, 'text': 'So hence proved abstract classes cannot be instantiated explicitly.', 'start': 3856.268, 'duration': 4.163}, {'end': 3867.036, 'text': 'They can only be instantiated by the child classes through the internal mechanisms of Java itself.', 'start': 3860.791, 'duration': 6.245}, {'end': 3873.6, 'text': "And that's all I want to talk about in this particular session where we looked in detail about the concept of abstraction.", 'start': 3867.496, 'duration': 6.104}], 'summary': 'Abstract classes cannot be instantiated explicitly in java.', 'duration': 25.837, 'max_score': 3847.763, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3847763.jpg'}, {'end': 3904.707, 'src': 'embed', 'start': 3882.461, 'weight': 7, 'content': [{'end': 3890.808, 'text': 'When I say multiple inheritance, what it means that you will not have a scenario where a child will be extending from two base classes.', 'start': 3882.461, 'duration': 8.347}, {'end': 3892.449, 'text': 'Java does not support it.', 'start': 3891.348, 'duration': 1.101}, {'end': 3897.714, 'text': 'It does support it with the, with the help of interfaces, but I will talk about interfaces in the coming sessions.', 'start': 3892.71, 'duration': 5.004}, {'end': 3904.707, 'text': 'But here, Just understand this that you cannot use multiple inheritance with classes in Java.', 'start': 3898.175, 'duration': 6.532}], 'summary': 'Java does not support multiple inheritance with classes.', 'duration': 22.246, 'max_score': 3882.461, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3882461.jpg'}, {'end': 3974.012, 'src': 'embed', 'start': 3927.881, 'weight': 5, 'content': [{'end': 3932.604, 'text': "by using the concept of interfaces, but that's something which will be coming later.", 'start': 3927.881, 'duration': 4.723}, {'end': 3940.068, 'text': 'another thing to understand is that when you create an abstract class here, these variables, you can declare these variables as well,', 'start': 3932.604, 'duration': 7.464}, {'end': 3945.592, 'text': 'and these variables will be accessible by all the child classes as you access them.', 'start': 3940.068, 'duration': 5.524}, {'end': 3948.934, 'text': "let's get started with interfaces in java.", 'start': 3945.592, 'duration': 3.342}, {'end': 3957.659, 'text': "now again, let's understand what do we mean by an interface in general, and then we will see how do we apply the concept of interfaces in java.", 'start': 3948.934, 'duration': 8.725}, {'end': 3966.248, 'text': "So imagine, let's take the same example of vehicle industry, because that's something which we see every day around ourselves and we can relate to it.", 'start': 3958.004, 'duration': 8.244}, {'end': 3974.012, 'text': 'So imagine if all the car manufacturers were creating a different way of driving a car.', 'start': 3966.609, 'duration': 7.403}], 'summary': 'Understanding interfaces and abstract classes in java, using the example of the vehicle industry.', 'duration': 46.131, 'max_score': 3927.881, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3927881.jpg'}], 'start': 3213.434, 'title': 'Java abstraction and inheritance', 'summary': 'Explains the concept of abstraction and inheritance in java, highlighting the use of abstract classes, methods, and interfaces. it discusses the implementation, instantiation, and limitations of abstract classes, as well as the importance of standardizing functionalities through interfaces.', 'chapters': [{'end': 3545.085, 'start': 3213.434, 'title': 'Java abstraction basics', 'summary': 'Explains the concept of abstraction in java, highlighting the use of abstract classes and methods, and how they enforce implementation in child classes through an example of a graphic object class and its extensions.', 'duration': 331.651, 'highlights': ["Java provides the concept of abstraction through the 'abstract' keyword, which can be used in front of a class or method, making the class or method abstract and requiring concrete implementation in child classes. Java provides the concept of abstraction through the 'abstract' keyword, which can be used in front of a class or method, making the class or method abstract and requiring concrete implementation in child classes.", 'Abstract classes cannot be instantiated but can be subclassed, and if a class is made abstract, its constructor cannot be called, enforcing the extension and implementation of the abstract methods in child classes. Abstract classes cannot be instantiated but can be subclassed, and if a class is made abstract, its constructor cannot be called, enforcing the extension and implementation of the abstract methods in child classes.', 'Abstract methods are declared without implementation and it is the responsibility of the child classes to provide concrete implementation of the declared methods. Abstract methods are declared without implementation and it is the responsibility of the child classes to provide concrete implementation of the declared methods.', 'Abstract classes can have both abstract methods, which are just declared, and normal methods, where implementation is provided, offering flexibility in the design of abstract classes. Abstract classes can have both abstract methods, which are just declared, and normal methods, where implementation is provided, offering flexibility in the design of abstract classes.', 'When extending an abstract class, the child class must provide implementation for all the declared abstract methods, and if not, Java will prompt to either implement the methods or make the child class abstract. When extending an abstract class, the child class must provide implementation for all the declared abstract methods, and if not, Java will prompt to either implement the methods or make the child class abstract.']}, {'end': 3991.729, 'start': 3545.545, 'title': 'Abstraction and inheritance in java', 'summary': 'Discusses the concept of abstraction and inheritance in java, explaining the implementation of abstract classes, the instantiation of concrete classes, and the power of inheritance. it also highlights the limitations of abstract classes, the use of interfaces in java, and the importance of standardizing functionalities through interfaces.', 'duration': 446.184, 'highlights': ["The concept of abstraction and inheritance in Java is explained, focusing on the implementation of abstract methods and instantiation of concrete classes. It explains the role of an abstract class as a parent class, with children classes providing implementations of abstract methods, and demonstrates the instantiation of concrete classes and calling of methods based on the object's type.", "The limitations of abstract classes are discussed, highlighting that abstract classes cannot be instantiated explicitly and can only be instantiated by child classes through the internal mechanisms of Java. It clarifies that abstract classes cannot be instantiated explicitly, emphasizing that they can only be instantiated by child classes through Java's internal mechanisms, and demonstrates the error that occurs when attempting to instantiate an abstract class directly.", 'The importance and limitations of multiple inheritance in Java are addressed, emphasizing that Java does not support multiple inheritance with classes but provides a workaround using interfaces. It explains that Java does not support multiple inheritance with classes, highlighting the diamond problem and the inability of a class to extend from two base classes, while mentioning that interfaces can be used as a workaround for achieving similar functionalities.', 'The relevance and application of interfaces in Java are introduced, drawing parallels with standardizing functionalities in the vehicle industry. It introduces the concept of interfaces in Java, drawing parallels with standardizing functionalities in the vehicle industry and highlighting the importance of uniformity in functionalities across different implementations.']}], 'duration': 778.295, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3213434.jpg', 'highlights': ["Java provides the concept of abstraction through the 'abstract' keyword, which can be used in front of a class or method, making the class or method abstract and requiring concrete implementation in child classes.", 'Abstract classes cannot be instantiated but can be subclassed, and if a class is made abstract, its constructor cannot be called, enforcing the extension and implementation of the abstract methods in child classes.', 'Abstract methods are declared without implementation and it is the responsibility of the child classes to provide concrete implementation of the declared methods.', 'Abstract classes can have both abstract methods, which are just declared, and normal methods, where implementation is provided, offering flexibility in the design of abstract classes.', 'When extending an abstract class, the child class must provide implementation for all the declared abstract methods, and if not, Java will prompt to either implement the methods or make the child class abstract.', 'The concept of abstraction and inheritance in Java is explained, focusing on the implementation of abstract methods and instantiation of concrete classes.', 'The limitations of abstract classes are discussed, highlighting that abstract classes cannot be instantiated explicitly and can only be instantiated by child classes through the internal mechanisms of Java.', 'The importance and limitations of multiple inheritance in Java are addressed, emphasizing that Java does not support multiple inheritance with classes but provides a workaround using interfaces.', 'The relevance and application of interfaces in Java are introduced, drawing parallels with standardizing functionalities in the vehicle industry.']}, {'end': 4550.397, 'segs': [{'end': 4038.138, 'src': 'embed', 'start': 4013.276, 'weight': 0, 'content': [{'end': 4018.978, 'text': 'whenever the users have to buy a new car or they have to switch from one manufacturer to other manufacturer,', 'start': 4013.276, 'duration': 5.702}, {'end': 4022.68, 'text': 'they are completely clueless as to how to drive that particular class,', 'start': 4018.978, 'duration': 3.702}, {'end': 4030.562, 'text': 'because the interface they were using in the previous car is completely different from the interface they are being shown in the other car.', 'start': 4022.68, 'duration': 7.882}, {'end': 4035.617, 'text': "And that's the basic need for the concept of interface.", 'start': 4031.042, 'duration': 4.575}, {'end': 4038.138, 'text': 'think of it as a contract agreement.', 'start': 4035.617, 'duration': 2.521}], 'summary': 'Users face interface challenges when switching car manufacturers, leading to confusion and the need for a standard interface.', 'duration': 24.862, 'max_score': 4013.276, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM4013276.jpg'}, {'end': 4112.169, 'src': 'embed', 'start': 4058.72, 'weight': 1, 'content': [{'end': 4063.803, 'text': 'So interface is again a keyword in Java, and the basic idea, or the basic construct,', 'start': 4058.72, 'duration': 5.083}, {'end': 4071.067, 'text': 'is that the interfaces are going to define the specifications of how a class would act.', 'start': 4063.803, 'duration': 7.264}, {'end': 4073.308, 'text': 'Let me repeat this in a more generic way.', 'start': 4071.627, 'duration': 1.681}, {'end': 4085.935, 'text': 'Interfaces are going to define the contract or the specification which is going to govern how an application or code or programming logic will behave.', 'start': 4073.548, 'duration': 12.387}, {'end': 4088.116, 'text': "That's the basic idea of interfaces.", 'start': 4086.355, 'duration': 1.761}, {'end': 4098.417, 'text': 'So interfaces are their own type and the basic property of interface is that it can only contain constants,', 'start': 4088.911, 'duration': 9.506}, {'end': 4105.604, 'text': 'method declarations similar to abstract classes and some default methods or static methods or nested types.', 'start': 4098.417, 'duration': 7.187}, {'end': 4108.345, 'text': 'What is nested type? We will cover that later.', 'start': 4105.984, 'duration': 2.361}, {'end': 4112.169, 'text': "Default methods we'll touch upon a bit here and the static methods as well.", 'start': 4108.746, 'duration': 3.423}], 'summary': 'In java, interfaces define class behavior and have method declarations, constants, default methods, and static methods.', 'duration': 53.449, 'max_score': 4058.72, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM4058720.jpg'}, {'end': 4173.017, 'src': 'embed', 'start': 4147.886, 'weight': 4, 'content': [{'end': 4157.751, 'text': 'And also before we go to the example, let me also phrase this here that if an interface cannot define a concrete implementation of the methods,', 'start': 4147.886, 'duration': 9.865}, {'end': 4162.553, 'text': 'then naturally the interface is going to be extended by a child class,', 'start': 4157.751, 'duration': 4.802}, {'end': 4169.256, 'text': 'a concrete class which is going to provide the implementation of the methods declared in the interface.', 'start': 4162.553, 'duration': 6.703}, {'end': 4173.017, 'text': 'It does sound like abstract classes, but there is a difference.', 'start': 4169.756, 'duration': 3.261}], 'summary': 'Interfaces without concrete methods are extended by concrete classes to provide implementation.', 'duration': 25.131, 'max_score': 4147.886, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM4147886.jpg'}, {'end': 4363.294, 'src': 'heatmap', 'start': 4216.722, 'weight': 0.764, 'content': [{'end': 4223.687, 'text': "But bicycle.java here, which is because it's an interface, it is not going to allow you to create a concrete method.", 'start': 4216.722, 'duration': 6.965}, {'end': 4229.632, 'text': 'Another thing is that if you try to declare a variable inside the class, they will have to be constant.', 'start': 4224.088, 'duration': 5.544}, {'end': 4231.653, 'text': 'You cannot just declare them without any value.', 'start': 4229.712, 'duration': 1.941}, {'end': 4233.955, 'text': 'For example, I cannot do this.', 'start': 4231.793, 'duration': 2.162}, {'end': 4236.857, 'text': 'If I do this, it is going to give an error.', 'start': 4234.635, 'duration': 2.222}, {'end': 4237.918, 'text': 'You see an error here.', 'start': 4236.917, 'duration': 1.001}, {'end': 4243.709, 'text': 'And it says initialize field X at declaration, something like this public static final.', 'start': 4238.263, 'duration': 5.446}, {'end': 4254.699, 'text': 'So interface is going to force you to declare all the variables as public static final with some value if you try to use them inside interface.', 'start': 4243.929, 'duration': 10.77}, {'end': 4258.243, 'text': 'So that is also something which interface will mandate.', 'start': 4255.4, 'duration': 2.843}, {'end': 4260.165, 'text': 'So you see interfaces are more strict.', 'start': 4258.363, 'duration': 1.802}, {'end': 4262.804, 'text': 'They are more strict in terms of what you can do.', 'start': 4260.543, 'duration': 2.261}, {'end': 4268.488, 'text': 'You can only declare public static final variables and you can only declare methods.', 'start': 4263.085, 'duration': 5.403}, {'end': 4269.729, 'text': 'You cannot define methods.', 'start': 4268.588, 'duration': 1.141}, {'end': 4272.671, 'text': 'So abstract class is less restrictive.', 'start': 4270.129, 'duration': 2.542}, {'end': 4275.052, 'text': 'Interface is more restrictive.', 'start': 4273.051, 'duration': 2.001}, {'end': 4281.656, 'text': 'And that is the differentiation which you have to keep in mind whether to use abstract classes or whether to use interfaces.', 'start': 4275.452, 'duration': 6.204}, {'end': 4285.739, 'text': 'That is also a very common confusing question in the interviews as well.', 'start': 4281.977, 'duration': 3.762}, {'end': 4293.305, 'text': 'And remember that interfaces are only for contracts or specifications where, in case of abstract class,', 'start': 4286.181, 'duration': 7.124}, {'end': 4298.508, 'text': 'you can write a concrete behavior as well in terms of a concrete method in the base class.', 'start': 4293.305, 'duration': 5.203}, {'end': 4301.79, 'text': "Interfaces, there's no concrete implementation in the base class.", 'start': 4298.769, 'duration': 3.021}, {'end': 4306.233, 'text': 'Abstract classes, yes, there can be a concrete implementation in the base class.', 'start': 4302.331, 'duration': 3.902}, {'end': 4307.894, 'text': "That's the basic difference.", 'start': 4306.693, 'duration': 1.201}, {'end': 4312.537, 'text': 'Moving on, I have created a child class here, which is again mountain bike.', 'start': 4308.414, 'duration': 4.123}, {'end': 4317.532, 'text': 'And it has three properties, seat height, gear, and speed, similar to the previous example.', 'start': 4312.947, 'duration': 4.585}, {'end': 4319.554, 'text': 'It has a constructor.', 'start': 4318.012, 'duration': 1.542}, {'end': 4323.818, 'text': 'And remember, again, interfaces cannot be initialized directly.', 'start': 4319.854, 'duration': 3.964}, {'end': 4328.443, 'text': "So you don't even need to call a super method here because there is nothing to initialize.", 'start': 4323.838, 'duration': 4.605}, {'end': 4330.565, 'text': 'You initialize a class to create a state.', 'start': 4328.763, 'duration': 1.802}, {'end': 4339.547, 'text': 'State is denoted by the properties, but interfaces will force you to write a public static final property and initialize its value automatically.', 'start': 4331.044, 'duration': 8.503}, {'end': 4343.709, 'text': 'So you do not need a constructor for the interface because there is nothing to initialize.', 'start': 4339.907, 'duration': 3.802}, {'end': 4348.891, 'text': 'Everything has been initialized in terms of the variables and the methods are anywhere just declared.', 'start': 4344.029, 'duration': 4.862}, {'end': 4350.912, 'text': "That's why you don't need to call super here.", 'start': 4349.131, 'duration': 1.781}, {'end': 4359.515, 'text': 'After that, the moment you write this particular keyword here implements, and that is how you will basically extend from the interface.', 'start': 4351.372, 'duration': 8.143}, {'end': 4363.294, 'text': 'You will use the implements bicycle keyword here.', 'start': 4360.131, 'duration': 3.163}], 'summary': 'Interfaces enforce strict rules and only allow declaration of public static final variables and methods, while abstract classes are less restrictive, allowing concrete implementation in the base class.', 'duration': 146.572, 'max_score': 4216.722, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM4216722.jpg'}], 'start': 3992.11, 'title': 'Car interface standardization and understanding java interfaces', 'summary': 'Addresses the issue of poor user experience due to lack of standardization in car interfaces, impacting buying decisions and driving experience. it also explains java interfaces, their purpose, properties, and differences from abstract classes, with a practical example demonstrating their strictness and functionality in defining class behavior.', 'chapters': [{'end': 4035.617, 'start': 3992.11, 'title': 'Car interface standardization', 'summary': 'Discusses the problem of poor user experience due to lack of standardization in car interfaces across manufacturers, leading to confusion and cluelessness among users when switching between cars, impacting buying decisions and driving experience.', 'duration': 43.507, 'highlights': ['The lack of standardization in car interfaces across manufacturers leads to a poor user experience, as it causes confusion and cluelessness among users when switching between cars, impacting buying decisions and driving experience.', 'Different car manufacturers not working on a single interface creates a problem for users when buying or switching cars, as they are completely clueless about how to operate a new car due to the varying interfaces.', 'The problem arises from the absence of a single contract or respect for a standardized interface, resulting in different-looking doors and handles in cars, further contributing to the poor user experience.']}, {'end': 4550.397, 'start': 4035.617, 'title': 'Understanding java interfaces', 'summary': 'Explains the concept of java interfaces, including their purpose, properties, and the differences from abstract classes, with a practical example of implementing and using an interface in java, demonstrating the strictness and functionality of interfaces in defining the behavior of classes and governing code behavior.', 'duration': 514.78, 'highlights': ['Interfaces define the specifications of how a class would act and govern how an application or code will behave. Interfaces in Java define the contract or the specification governing how an application or code will behave.', 'Interfaces can only contain constants, method declarations, default methods, static methods, or nested types. Interfaces in Java can only contain constants, method declarations, default methods, static methods, or nested types.', 'Interface restricts the definition of concrete methods and mandates all variables to be declared as public static final with a value. Interfaces in Java restrict the definition of concrete methods and mandate all variables to be declared as public static final with a value.', 'The interface is more restrictive than abstract classes and is used for contracts or specifications. Interfaces in Java are more restrictive than abstract classes and are used for contracts or specifications.', 'Child classes extending an interface must provide the implementation of the methods declared in the interface. Child classes extending an interface in Java must provide the implementation of the methods declared in the interface.', "The 'override' annotation is used to signify the overriding of methods from the base class in the child class. The 'override' annotation is used to signify the overriding of methods from the base class in the child class in Java."]}], 'duration': 558.287, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM3992110.jpg', 'highlights': ['The lack of standardization in car interfaces across manufacturers leads to a poor user experience, impacting buying decisions and driving experience.', 'Interfaces define the specifications of how a class would act and govern how an application or code will behave.', 'Interfaces can only contain constants, method declarations, default methods, static methods, or nested types.', 'The interface is more restrictive than abstract classes and is used for contracts or specifications.', 'Child classes extending an interface must provide the implementation of the methods declared in the interface.']}, {'end': 5352.696, 'segs': [{'end': 4686.393, 'src': 'embed', 'start': 4658.425, 'weight': 1, 'content': [{'end': 4661.268, 'text': 'inheritance is also called is a relationship.', 'start': 4658.425, 'duration': 2.843}, {'end': 4668.556, 'text': 'so whenever you read the requirements from a customer, just try to find the words which use this particular phrase.', 'start': 4661.75, 'duration': 6.806}, {'end': 4672.78, 'text': 'is a, for example, car is a vehicle?', 'start': 4668.556, 'duration': 4.224}, {'end': 4675.563, 'text': 'savings account is a type of account?', 'start': 4672.78, 'duration': 2.783}, {'end': 4679.046, 'text': 'similarly, you will find many other types of similar examples.', 'start': 4675.563, 'duration': 3.483}, {'end': 4686.393, 'text': 'so whenever you will see that is a relationship between two different kinds of objects or two different kind of entities,', 'start': 4679.046, 'duration': 7.347}], 'summary': "Inheritance explores 'is a' relationship between objects, entities, and examples.", 'duration': 27.968, 'max_score': 4658.425, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM4658425.jpg'}, {'end': 4793.1, 'src': 'embed', 'start': 4746.304, 'weight': 0, 'content': [{'end': 4749.866, 'text': 'And the basic idea, which I told you, lies in the parent and child relationship.', 'start': 4746.304, 'duration': 3.562}, {'end': 4758.031, 'text': 'And this is how you can conceptualize it, that you will have a base class or a parent class, and then you can have multiple children.', 'start': 4750.326, 'duration': 7.705}, {'end': 4762.274, 'text': 'And then those children can again have their own children and so on and so forth.', 'start': 4758.291, 'duration': 3.983}, {'end': 4767.557, 'text': 'So this hierarchy, this whole inheritance hierarchy can go as deep as you want it to be.', 'start': 4762.534, 'duration': 5.023}, {'end': 4774.938, 'text': "And that's the basic idea and basic conceptualization of how you understand and how you visualize inheritance.", 'start': 4768.052, 'duration': 6.886}, {'end': 4780.362, 'text': "Now let's move to Eclipse IDE and try to understand this with the help of an example.", 'start': 4775.578, 'duration': 4.784}, {'end': 4790.09, 'text': 'So for this particular case, I have created a set of classes basically, which we will be using to demonstrate the relationship of inheritance.', 'start': 4780.782, 'duration': 9.308}, {'end': 4793.1, 'text': "And I've taken the simple example of a bicycle.", 'start': 4790.578, 'duration': 2.522}], 'summary': 'Inheritance involves parent-child relationship where classes can have multiple children and form a deep hierarchy.', 'duration': 46.796, 'max_score': 4746.304, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM4746304.jpg'}, {'end': 5111.538, 'src': 'embed', 'start': 5089.218, 'weight': 4, 'content': [{'end': 5096.92, 'text': 'but this mountain bike will have access to all the methods which have been provided here and all the properties which have been provided here.', 'start': 5089.218, 'duration': 7.702}, {'end': 5100.622, 'text': 'This mountain bike can access everything from the bicycle class.', 'start': 5097.461, 'duration': 3.161}, {'end': 5108.037, 'text': "And that's the whole idea of inheritance that the child class can access the properties of the base class by extending the base class.", 'start': 5100.722, 'duration': 7.315}, {'end': 5111.538, 'text': "Now let's look at how do we invoke this particular class.", 'start': 5108.857, 'duration': 2.681}], 'summary': 'Mountain bike inherits methods and properties from the bicycle class.', 'duration': 22.32, 'max_score': 5089.218, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM5089218.jpg'}, {'end': 5293.748, 'src': 'embed', 'start': 5264.845, 'weight': 5, 'content': [{'end': 5269.387, 'text': 'All the methods which are defined in the base class are accessible in the child class as well.', 'start': 5264.845, 'duration': 4.542}, {'end': 5271.168, 'text': 'This is the power of inheritance.', 'start': 5269.907, 'duration': 1.261}, {'end': 5273.469, 'text': 'One more thing which I said I will come back to.', 'start': 5271.668, 'duration': 1.801}, {'end': 5277.201, 'text': 'is around the usage of protected access modifier.', 'start': 5274.039, 'duration': 3.162}, {'end': 5286.285, 'text': 'Remember, when we discussed about the access modifiers in the previous session, I said that protected is used when you are dealing with inheritance,', 'start': 5278.021, 'duration': 8.264}, {'end': 5293.748, 'text': 'that whenever you define something as protected, it will be available to be accessible in the child classes of the base class.', 'start': 5286.285, 'duration': 7.463}], 'summary': 'Inheritance allows child class access to base class methods and protected access modifier facilitates this.', 'duration': 28.903, 'max_score': 5264.845, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM5264845.jpg'}], 'start': 4550.758, 'title': 'Understanding inheritance', 'summary': 'Explains the concept of inheritance in object-oriented programming, using the example of different types of bank accounts sharing common properties while having differential behavior and discusses the concept of inheritance in java, exemplifying how a base class called bicycle with properties and methods is extended by a child class called mountain bike.', 'chapters': [{'end': 4793.1, 'start': 4550.758, 'title': 'Understanding inheritance', 'summary': "Explains the concept of inheritance in object-oriented programming, using the example of different types of bank accounts sharing common properties while having differential behavior, and highlights the 'is a' relationship as a way to identify inheritance, with the parent-child relationship being fundamental to the concept.", 'duration': 242.342, 'highlights': ["The 'is a' relationship can be used to identify inheritance, such as 'car is a vehicle' or 'savings account is a type of account', indicating a potential inheritance relationship.", 'Inheritance is the concept of sharing similar behavior and properties among multiple classes, demonstrated through the example of different types of bank accounts sharing common properties like maintaining an interest rate and the ability to deposit or withdraw money while having differential behavior in calculating interest rates for different types of accounts.', 'The concept of inheritance involves a parent-child relationship, where the child class inherits properties and behaviors from the parent class, forming an inheritance hierarchy that can go as deep as desired.']}, {'end': 5352.696, 'start': 4793.28, 'title': 'Inheritance in java', 'summary': 'Discusses the concept of inheritance in java, exemplifying how a base class called bicycle with properties and methods is extended by a child class called mountain bike, showcasing the inheritance relationship, constructor invocation, method invocation, and access modifiers.', 'duration': 559.416, 'highlights': ['The chapter discusses the concept of inheritance in Java The transcript emphasizes the concept of inheritance in Java and provides a detailed example of a base class being extended by a child class.', 'Exemplifying how a base class called bicycle with properties and methods is extended by a child class called mountain bike The transcript provides a specific example of a base class named bicycle being extended by a child class named mountain bike, showcasing the practical implementation of inheritance in Java.', 'Showcasing the inheritance relationship, constructor invocation, method invocation, and access modifiers The transcript covers various aspects of inheritance, including the inheritance relationship, constructor invocation, method invocation, and the usage of access modifiers, providing a comprehensive understanding of the topic.']}], 'duration': 801.938, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM4550758.jpg', 'highlights': ['The concept of inheritance involves a parent-child relationship, where the child class inherits properties and behaviors from the parent class, forming an inheritance hierarchy that can go as deep as desired.', 'Inheritance is the concept of sharing similar behavior and properties among multiple classes, demonstrated through the example of different types of bank accounts sharing common properties like maintaining an interest rate and the ability to deposit or withdraw money while having differential behavior in calculating interest rates for different types of accounts.', "The 'is a' relationship can be used to identify inheritance, such as 'car is a vehicle' or 'savings account is a type of account', indicating a potential inheritance relationship.", 'The chapter discusses the concept of inheritance in Java The transcript emphasizes the concept of inheritance in Java and provides a detailed example of a base class being extended by a child class.', 'Exemplifying how a base class called bicycle with properties and methods is extended by a child class called mountain bike The transcript provides a specific example of a base class named bicycle being extended by a child class named mountain bike, showcasing the practical implementation of inheritance in Java.', 'Showcasing the inheritance relationship, constructor invocation, method invocation, and access modifiers The transcript covers various aspects of inheritance, including the inheritance relationship, constructor invocation, method invocation, and the usage of access modifiers, providing a comprehensive understanding of the topic.']}, {'end': 6296.816, 'segs': [{'end': 5438.785, 'src': 'embed', 'start': 5409.839, 'weight': 0, 'content': [{'end': 5414.283, 'text': 'java and oops concepts we can use to build such atm application.', 'start': 5409.839, 'duration': 4.444}, {'end': 5416.165, 'text': 'this is not a super versatile application,', 'start': 5414.283, 'duration': 1.882}, {'end': 5424.713, 'text': 'but but this is just to give you the idea of how to use those oops concepts to build a simple or a complex java application.', 'start': 5416.165, 'duration': 8.548}, {'end': 5431.439, 'text': "So let's start from the options menu class, because that will give us the understanding of what kind of functionality I'm using.", 'start': 5425.054, 'duration': 6.385}, {'end': 5438.785, 'text': "And here you will use that I'm using different concepts which I have taught you so far in this particular series.", 'start': 5431.819, 'duration': 6.966}], 'summary': 'Using java and oops concepts to build an atm application, demonstrating functionality and concepts from the series.', 'duration': 28.946, 'max_score': 5409.839, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM5409839.jpg'}, {'end': 5489.436, 'src': 'embed', 'start': 5454.491, 'weight': 2, 'content': [{'end': 5456.712, 'text': "But let's see what this option menu class is doing.", 'start': 5454.491, 'duration': 2.221}, {'end': 5465.595, 'text': 'This particular class is using a decimal format, money format class, which is to denote what kind of format of money you have.', 'start': 5457.112, 'duration': 8.483}, {'end': 5467.096, 'text': 'Then we have a HashMap.', 'start': 5466.016, 'duration': 1.08}, {'end': 5472.431, 'text': 'which is storing the couple of records of account number to pin mapping.', 'start': 5467.509, 'duration': 4.922}, {'end': 5478.713, 'text': 'So we create a map and inside the get login method, we add a couple of entries to the map.', 'start': 5472.711, 'duration': 6.002}, {'end': 5489.436, 'text': 'Here the first entry the first integer is pointing to the customer number and the second integer is pointing to the pin of the account of this particular customer number.', 'start': 5478.953, 'duration': 10.483}], 'summary': 'Option menu class using decimal format and hashmap for account number to pin mapping.', 'duration': 34.945, 'max_score': 5454.491, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM5454491.jpg'}, {'end': 5667.732, 'src': 'embed', 'start': 5638.579, 'weight': 5, 'content': [{'end': 5643.521, 'text': 'customer can deposit the funds to the checking account or they can just exit the application.', 'start': 5638.579, 'duration': 4.942}, {'end': 5651.504, 'text': "And again, I'm using a switch case here based on the customer types one, two, three, or four, the corresponding case block will be executed.", 'start': 5643.761, 'duration': 7.743}, {'end': 5656.226, 'text': 'For example, if the customer wants to view the balance, then this block will get executed.', 'start': 5651.784, 'duration': 4.442}, {'end': 5658.626, 'text': 'And I call the get account type method.', 'start': 5656.666, 'duration': 1.96}, {'end': 5667.732, 'text': 'If the customer selects the two as the withdraw fund, then get checkings with withdraw input method gets called and then get account type gets called.', 'start': 5659.067, 'duration': 8.665}], 'summary': 'Customers can deposit funds or exit. switch cases executed based on customer type for actions like balance view and fund withdrawal.', 'duration': 29.153, 'max_score': 5638.579, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM5638579.jpg'}, {'end': 5784.338, 'src': 'embed', 'start': 5755.625, 'weight': 1, 'content': [{'end': 5758.046, 'text': 'That is what is happening inside this option menu class.', 'start': 5755.625, 'duration': 2.421}, {'end': 5764.57, 'text': "Now let's go to the account class and all the methods which we saw here will be provided a definition in the account class.", 'start': 5758.506, 'duration': 6.064}, {'end': 5767.872, 'text': 'You also see this option menu is extending the accounts class.', 'start': 5764.95, 'duration': 2.922}, {'end': 5770.053, 'text': 'So an inheritance concept is being used here.', 'start': 5767.912, 'duration': 2.141}, {'end': 5771.774, 'text': "Let's go to the account class now.", 'start': 5770.493, 'duration': 1.281}, {'end': 5777.331, 'text': 'So this is the account class where I have defined some private member variables like customer number.', 'start': 5772.045, 'duration': 5.286}, {'end': 5784.338, 'text': 'So now you will be familiar with the customer number pin number which I just described and also with the checking balance and the savings balance.', 'start': 5777.571, 'duration': 6.767}], 'summary': 'The option menu class extends the account class, utilizing inheritance, and defines private member variables including customer number, pin number, checking balance, and savings balance.', 'duration': 28.713, 'max_score': 5755.625, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM5755625.jpg'}, {'end': 5879.668, 'src': 'embed', 'start': 5847.228, 'weight': 3, 'content': [{'end': 5853.112, 'text': "so now let's look at some of the business functions of the account class how do you deposit, how do you view the balance,", 'start': 5847.228, 'duration': 5.884}, {'end': 5855.454, 'text': 'how do you withdraw the balance, etc.', 'start': 5853.112, 'duration': 2.342}, {'end': 5863.039, 'text': 'so you see these two methods which are specifically when the customer is trying to withdraw the money from their account.', 'start': 5855.454, 'duration': 7.585}, {'end': 5867.282, 'text': 'and these methods are basically called internally by other methods.', 'start': 5863.039, 'duration': 4.243}, {'end': 5868.523, 'text': 'so we will come to that.', 'start': 5867.282, 'duration': 1.241}, {'end': 5869.203, 'text': "let's see that.", 'start': 5868.523, 'duration': 0.68}, {'end': 5879.668, 'text': "let's just understand that we have two methods for calculating the withdrawable amount or executing the withdraw transaction for the checking account account and the savings account.", 'start': 5869.203, 'duration': 10.465}], 'summary': 'The account class has functions for deposit, balance view, and withdrawal. it includes methods for calculating withdrawable amount and executing the transaction.', 'duration': 32.44, 'max_score': 5847.228, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM5847228.jpg'}, {'end': 6124.665, 'src': 'embed', 'start': 6099.043, 'weight': 4, 'content': [{'end': 6106.587, 'text': 'And now we have the ATM class, which is the entry point, which basically initializes the option menu class and calls the get login method.', 'start': 6099.043, 'duration': 7.544}, {'end': 6112.111, 'text': 'Remember, get login was the first method, which asked you to provide the customer number and then get login.', 'start': 6106.906, 'duration': 5.205}, {'end': 6116.716, 'text': 'called the method to choose the account type and the account type methods.', 'start': 6112.111, 'duration': 4.605}, {'end': 6120.62, 'text': 'then called the method to choose the option to withdraw, deposit or exit.', 'start': 6116.716, 'duration': 3.904}, {'end': 6124.665, 'text': 'So now we have built a fair understanding of what is happening in this application.', 'start': 6121.061, 'duration': 3.604}], 'summary': 'The atm class initializes the option menu, prompts for customer number, account type, and transaction choice.', 'duration': 25.622, 'max_score': 6099.043, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM6099043.jpg'}, {'end': 6214.661, 'src': 'embed', 'start': 6181.204, 'weight': 6, 'content': [{'end': 6183.266, 'text': "So let's say I want to deposit funds.", 'start': 6181.204, 'duration': 2.062}, {'end': 6185.489, 'text': 'So I press three and hit enter.', 'start': 6183.547, 'duration': 1.942}, {'end': 6190.225, 'text': 'It says the current balance is zero and enter the amount you want to deposit.', 'start': 6185.822, 'duration': 4.403}, {'end': 6193.147, 'text': "Let's say I want to deposit 500 and I hit enter.", 'start': 6190.505, 'duration': 2.642}, {'end': 6198.03, 'text': 'You get the message saying the new checking account balance is 500 and you have successfully deposited the money.', 'start': 6193.387, 'duration': 4.643}, {'end': 6200.432, 'text': 'And that is what I did for the checking account.', 'start': 6198.31, 'duration': 2.122}, {'end': 6202.793, 'text': "Now let's try to withdraw something from the checking account.", 'start': 6200.592, 'duration': 2.201}, {'end': 6207.796, 'text': 'So you again get back the same option, because inside the get checking method we call the.', 'start': 6202.993, 'duration': 4.803}, {'end': 6214.661, 'text': 'once we have successfully done the business operation, we again call the account type method to display the menu, again to the user.', 'start': 6207.796, 'duration': 6.865}], 'summary': 'Deposited 500, checking account balance is now 500.', 'duration': 33.457, 'max_score': 6181.204, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM6181204.jpg'}, {'end': 6273.623, 'src': 'embed', 'start': 6242.672, 'weight': 7, 'content': [{'end': 6245.693, 'text': 'You can do exactly the same thing for the savings account as well.', 'start': 6242.672, 'duration': 3.021}, {'end': 6248.593, 'text': "And let's also run a negative condition.", 'start': 6245.913, 'duration': 2.68}, {'end': 6252.515, 'text': 'So I again select the checking account and I want to withdraw the funds.', 'start': 6248.633, 'duration': 3.882}, {'end': 6258.397, 'text': 'So I chose the option to current balance is 400 and I would like to withdraw a thousand.', 'start': 6252.835, 'duration': 5.562}, {'end': 6265.378, 'text': 'What happens? if you do that we get a message saying balance cannot be negative and this is coming from the calc checking method,', 'start': 6258.757, 'duration': 6.621}, {'end': 6266.798, 'text': 'which which is defined here.', 'start': 6265.378, 'duration': 1.42}, {'end': 6267.519, 'text': 'so what is happening?', 'start': 6266.798, 'duration': 0.721}, {'end': 6273.623, 'text': 'that i wanted to withdraw the funds from the checking account and here get checking withdraw input called here.', 'start': 6267.519, 'duration': 6.104}], 'summary': 'Demonstration of withdrawing funds from a checking account and encountering a balance error.', 'duration': 30.951, 'max_score': 6242.672, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM6242672.jpg'}, {'end': 6305.442, 'src': 'embed', 'start': 6276.129, 'weight': 8, 'content': [{'end': 6281.631, 'text': 'So the checking balance was 400 and the amount I wanted to withdraw was 1000.', 'start': 6276.129, 'duration': 5.502}, {'end': 6285.612, 'text': 'So 400 minus 1000 is not greater than equal to zero.', 'start': 6281.631, 'duration': 3.981}, {'end': 6289.473, 'text': 'So it jumped into the else block and it said balance cannot be negative.', 'start': 6285.792, 'duration': 3.681}, {'end': 6294.635, 'text': 'So this is how you can also build some error conditions in your code, which are mandatory and which should be built.', 'start': 6289.693, 'duration': 4.942}, {'end': 6296.816, 'text': 'Otherwise your application will have a lot of bugs.', 'start': 6294.835, 'duration': 1.981}, {'end': 6298.779, 'text': 'We can also exit the application.', 'start': 6297.298, 'duration': 1.481}, {'end': 6305.442, 'text': 'So if you just type three and hit enter, you will exit from the application and it will again call the login method,', 'start': 6298.799, 'duration': 6.643}], 'summary': 'Balance check failed, demonstrating error handling and potential application exit.', 'duration': 29.313, 'max_score': 6276.129, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM6276129.jpg'}], 'start': 5353.191, 'title': 'Atm application development', 'summary': 'Focuses on inheritance in java, using oop concepts for an atm application, covers business functions of the account class, and explains the development of the atm application with features including logging in, deposit, withdrawal, and error handling.', 'chapters': [{'end': 5826.364, 'start': 5353.191, 'title': 'Inheritance and atm application', 'summary': 'Covers the concept of inheritance in java, focusing on an atm application using java and oop concepts, such as encapsulation, inheritance, and polymorphism, to provide functionality for viewing balance, withdrawing, and depositing funds, using the option menu class extending the accounts class.', 'duration': 473.173, 'highlights': ['The chapter covers the concept of inheritance in Java and demonstrates its implementation in an ATM application, utilizing Java and OOP concepts such as encapsulation, inheritance, and polymorphism to provide functionality for viewing balance, withdrawing, and depositing funds (relevance: 5)', 'The option menu class is extended from the accounts class, showcasing the use of inheritance in the ATM application (relevance: 4)', 'The option menu class provides functionality for handling customer input, including entering the customer number, pin number, and choosing between checking and savings account types, utilizing Java concepts such as IU exception, HashMap, and Scanner class for command-line input (relevance: 3)', 'Within the option menu class, methods are defined for handling different account types, including checking and savings accounts, with functionality for viewing balance, withdrawing funds, depositing funds, and exiting the application, utilizing switch case constructs for customer options (relevance: 2)', 'The account class encapsulates private member variables for customer number, pin number, checking balance, and savings balance, along with setter and getter methods for these variables, demonstrating encapsulation in the ATM application (relevance: 1)']}, {'end': 6083.915, 'start': 5826.704, 'title': 'Account class business functions', 'summary': 'Explains the business functions of the account class, including methods for depositing, withdrawing, and calculating balances for checking and savings accounts, with a focus on the internal logic and method interactions.', 'duration': 257.211, 'highlights': ['Explaining business functions The chapter details the methods for depositing, withdrawing, and calculating balances for checking and savings accounts, including the internal logic and method interactions.', 'Calculation methods for withdrawal and depositing Four calculation methods are defined for withdrawing and depositing for both checking and savings accounts, with the logic of subtracting or adding the amount from/to the balance and returning the new balance.', 'Internal method interactions The chapter describes how specific methods are called internally by other methods, such as get checking withdraw input and get checking deposit input, which are called from the option menu class when choosing checking account options.']}, {'end': 6296.816, 'start': 6084.355, 'title': 'Atm application development', 'summary': 'Explains the development of an atm application, covering the functionality of the account, option menu, and atm classes, demonstrating the process of logging in, choosing account type, performing deposit and withdrawal operations, and handling error conditions.', 'duration': 212.461, 'highlights': ['The ATM class serves as the entry point and initializes the option menu class and calls the get login method, which prompts for customer number and pin number. The ATM class acts as the entry point, initializing the option menu class and calling the get login method, prompting for the customer number and pin number.', 'The application provides options to choose account type, perform deposit or withdrawal, and exit, demonstrating the functionality of the account type methods. The application offers options to choose account type, perform deposit or withdrawal, and exit, showcasing the functionality of the account type methods.', 'The process of depositing funds into a checking account is demonstrated, with an example of depositing $500, resulting in a new checking account balance of 500. The process of depositing funds into a checking account is illustrated, with an example of depositing $500, resulting in a new checking account balance of 500.', 'An example of withdrawing funds from the checking account, where the current balance is reduced by the withdrawn amount, is presented. An example of withdrawing funds from the checking account is provided, showcasing the reduction of the current balance by the withdrawn amount.', 'The handling of error conditions is exemplified, with a scenario demonstrating the prevention of a negative balance when attempting to withdraw more funds than available in the checking account. The handling of error conditions is exemplified, showing the prevention of a negative balance when attempting to withdraw more funds than available in the checking account.']}], 'duration': 943.625, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM5353191.jpg', 'highlights': ['The chapter covers the concept of inheritance in Java and demonstrates its implementation in an ATM application, utilizing Java and OOP concepts such as encapsulation, inheritance, and polymorphism to provide functionality for viewing balance, withdrawing, and depositing funds', 'The option menu class is extended from the accounts class, showcasing the use of inheritance in the ATM application', 'The option menu class provides functionality for handling customer input, including entering the customer number, pin number, and choosing between checking and savings account types, utilizing Java concepts such as IU exception, HashMap, and Scanner class for command-line input', 'Explaining business functions The chapter details the methods for depositing, withdrawing, and calculating balances for checking and savings accounts, including the internal logic and method interactions', 'The ATM class serves as the entry point and initializes the option menu class and calls the get login method, which prompts for customer number and pin number. The ATM class acts as the entry point, initializing the option menu class and calling the get login method, prompting for the customer number and pin number', 'The application provides options to choose account type, perform deposit or withdrawal, and exit, demonstrating the functionality of the account type methods', 'The process of depositing funds into a checking account is demonstrated, with an example of depositing $500, resulting in a new checking account balance of 500', 'An example of withdrawing funds from the checking account, where the current balance is reduced by the withdrawn amount, is presented', 'The handling of error conditions is exemplified, with a scenario demonstrating the prevention of a negative balance when attempting to withdraw more funds than available in the checking account']}, {'end': 7147.859, 'segs': [{'end': 6354.707, 'src': 'embed', 'start': 6310.084, 'weight': 1, 'content': [{'end': 6318.487, 'text': 'And this was a simple use case for you to show how you can use the different object-oriented concepts, like classes, objects, methods, setters,', 'start': 6310.084, 'duration': 8.403}, {'end': 6323.61, 'text': 'getters, switch case et cetera, to build the application with the correct business logic.', 'start': 6318.487, 'duration': 5.123}, {'end': 6330.333, 'text': "Let's get started with walking through a core Java project using all the different oops concept we have learned so far.", 'start': 6323.81, 'duration': 6.523}, {'end': 6335.016, 'text': 'So in this example, we are going to have a look at a calculator application.', 'start': 6330.673, 'duration': 4.343}, {'end': 6344.801, 'text': 'And this calculator application supports primarily four different operations like addition, subtraction, multiplication and division.', 'start': 6336.076, 'duration': 8.725}, {'end': 6346.882, 'text': "So let's see how do we build that app.", 'start': 6345.382, 'duration': 1.5}, {'end': 6350.024, 'text': 'So in front of me right now is open the main class.', 'start': 6347.443, 'duration': 2.581}, {'end': 6354.707, 'text': 'So I have a main app class here, which has a public static void main method.', 'start': 6350.545, 'duration': 4.162}], 'summary': 'Demonstrating use of oop in java to build a calculator app with four operations.', 'duration': 44.623, 'max_score': 6310.084, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM6310084.jpg'}, {'end': 6996.56, 'src': 'embed', 'start': 6969.188, 'weight': 0, 'content': [{'end': 6974.33, 'text': "now let's try to see this in action and we'll try to execute the exact same expression.", 'start': 6969.188, 'duration': 5.142}, {'end': 6987.192, 'text': 'so if i right click and go to run as and run this as java application and i supply an expression saying 4 plus 5 star 3, divide 2,', 'start': 6974.33, 'duration': 12.862}, {'end': 6996.56, 'text': 'and if i now hit enter, i get the value as 13.5, which is exactly what we ran through, because 4 plus 5 will be evaluated first,', 'start': 6987.192, 'duration': 9.368}], 'summary': 'Executing 4 plus 5 multiplied by 3, divided by 2 results in 13.5.', 'duration': 27.372, 'max_score': 6969.188, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM6969188.jpg'}, {'end': 7052.575, 'src': 'embed', 'start': 7023.695, 'weight': 3, 'content': [{'end': 7029.058, 'text': 'Inside the while loop at each step, we pick up the first expression or the operator.', 'start': 7023.695, 'duration': 5.363}, {'end': 7034.141, 'text': 'We check what is the operator, whether it is an addition, subtraction, multiplication, or division operator.', 'start': 7029.358, 'duration': 4.783}, {'end': 7039.084, 'text': 'And whatever kind of operator we have, we initialize the corresponding class of it.', 'start': 7034.581, 'duration': 4.503}, {'end': 7043.987, 'text': 'And then we fetch the next value in the numbers queue.', 'start': 7039.444, 'duration': 4.543}, {'end': 7047.533, 'text': 'And then we call the get result based on the expression.', 'start': 7044.372, 'duration': 3.161}, {'end': 7052.575, 'text': 'And whatever result we get from the get result, we store it back into the rest variable.', 'start': 7048.053, 'duration': 4.522}], 'summary': 'Parsing expressions in a while loop to calculate results and store them in a variable.', 'duration': 28.88, 'max_score': 7023.695, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM7023695.jpg'}], 'start': 6297.298, 'title': 'Building a java calculator app and its program execution', 'summary': 'Discusses building a calculator application in java, supporting addition, subtraction, multiplication, and division, and explains the program execution using a queue-based approach, resulting in the final output of 13.5.', 'chapters': [{'end': 6749.815, 'start': 6297.298, 'title': 'Building a java calculator app', 'summary': 'Discusses building a calculator application in java, supporting addition, subtraction, multiplication, and division, utilizing object-oriented concepts like classes, objects, methods, and interfaces.', 'duration': 452.517, 'highlights': ['The chapter discusses building a calculator application in Java, supporting addition, subtraction, multiplication, and division. The calculator application primarily supports four different operations: addition, subtraction, multiplication, and division.', 'The chapter emphasizes utilizing object-oriented concepts like classes, objects, methods, and interfaces to build the application with correct business logic. The discussion involves utilizing various object-oriented concepts such as classes, objects, methods, setters, getters, switch case, and interfaces to ensure the correct business logic in the application.', 'The chapter explains the process of splitting the input expression into numbers and operators, converting them into respective queues, and using the poll method to fetch and process the elements. The process involves splitting the input expression into numbers and operators, converting them into queues, and utilizing the poll method to fetch and process the elements for further operations.']}, {'end': 7147.859, 'start': 6749.815, 'title': 'Calculator program execution', 'summary': "Explains the execution of a calculator program using a queue-based approach, performing arithmetic operations on the input expression '4 plus 5 star 3, divide 2', resulting in the final output of 13.5.", 'duration': 398.044, 'highlights': ["The program utilizes a queue-based approach to process the input expression, '4 plus 5 star 3, divide 2', and performs arithmetic operations, resulting in the final output of 13.5.", 'The program iterates through the input expression, evaluating the arithmetic operations by fetching numbers from the queue and invoking the corresponding operation classes, updating the result variable at each step.', 'The tutorial concludes with a brief overview of developing CLI applications using core Java concepts and emphasizes the potential for further enhancements, error handling, and exception scenarios.', 'The session ends with an invitation to engage with the content and subscribe to the Simply Learn YouTube channel for similar videos and certification opportunities.']}], 'duration': 850.561, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/6T_HgnjoYwM/pics/6T_HgnjoYwM6297298.jpg', 'highlights': ["The program utilizes a queue-based approach to process the input expression, '4 plus 5 star 3, divide 2', and performs arithmetic operations, resulting in the final output of 13.5.", 'The chapter discusses building a calculator application in Java, supporting addition, subtraction, multiplication, and division. The calculator application primarily supports four different operations: addition, subtraction, multiplication, and division.', 'The chapter emphasizes utilizing object-oriented concepts like classes, objects, methods, and interfaces to build the application with correct business logic. The discussion involves utilizing various object-oriented concepts such as classes, objects, methods, setters, getters, switch case, and interfaces to ensure the correct business logic in the application.', 'The chapter explains the process of splitting the input expression into numbers and operators, converting them into respective queues, and using the poll method to fetch and process the elements. The process involves splitting the input expression into numbers and operators, converting them into queues, and utilizing the poll method to fetch and process the elements for further operations.']}], 'highlights': ['The tutorial covers various concepts including Classes and Objects, Access Modifiers, Inheritance, Encapsulation, Abstract Classes, Interface Multiple Inheritance, and practical projects like ATM and Calculator Projects.', 'A class is a blueprint of an object, representing entities in the real world, with attributes and behaviors.', 'Entities in a Java program are identified based on their attributes and behavior, and corresponding Java classes need to represent these entities with attributes (properties) and behaviors (methods).', 'Constructors are used to initialize objects of a class, enabling the creation of multiple instances of the class with specific attribute values.', "The 'new' keyword is utilized to create and initialize objects, ensuring that the provided values match the constructor of the class to successfully create an instance.", 'The concept of access modifiers in Java is driven by the principle of least privilege, with the aim of restricting access to classes, packages, and modules to only those components intended for consumption, ensuring efficient program execution.', 'Java access modifiers include public, protected, default (no modifier), and private, each providing varying levels of accessibility to classes, variables, and methods, with public having the broadest access and private being the most restricted.', "The chapter emphasizes the concept of inheritance in Java, illustrating the relationship between a base class 'bicycle' and a child class 'mountain bike', showcasing the extension of properties and methods from the base class to the child class.", 'All methods defined in the base class are accessible in the child class, showcasing the power of inheritance.', 'Abstraction is defined as hiding details of an object from the outside world, with the example of driving a car provided to illustrate how hitting the accelerator to speed up hides the complex internal workings of the car.', "Java provides the concept of abstraction through the 'abstract' keyword, which can be used in front of a class or method, making the class or method abstract and requiring concrete implementation in child classes.", 'The concept of inheritance involves a parent-child relationship, where the child class inherits properties and behaviors from the parent class, forming an inheritance hierarchy that can go as deep as desired.', 'The chapter covers the concept of inheritance in Java and demonstrates its implementation in an ATM application, utilizing Java and OOP concepts such as encapsulation, inheritance, and polymorphism to provide functionality for viewing balance, withdrawing, and depositing funds', "The program utilizes a queue-based approach to process the input expression, '4 plus 5 star 3, divide 2', and performs arithmetic operations, resulting in the final output of 13.5.", 'The chapter discusses building a calculator application in Java, supporting addition, subtraction, multiplication, and division. The calculator application primarily supports four different operations: addition, subtraction, multiplication, and division.']}