 Myself Professor Prithish Chittay, working as an assistant professor in mechanical engineering department, W.T.Solapur. Today we will see the features of Java programming. What are the learning outcomes? At the end of the session, the students will be able to explain the consist of object oriented programming and its types. And the students will be able to classify the difference between C, C++ programming and Java programming. The contents are, first we will see the object oriented programming, Java programming is object oriented programming, after that there are different features of Java programming and at the last we will see the difference between C, C++ and Java programming. What is meant by object oriented programming? First of all we will see what are the different types of programming. There are the different types of programming like modular programming, top-down programming, bottom-up programming, structural programming and object oriented programming. The structural programming consists of C and C++ programming. Structural programming is very simplest type of programming. We can have the output with the help of structural programming in the C and C++ for the different code. But only for the simple programs only. For the complex program it is really difficult to achieve the output with the help of structural programming. That's why object oriented programming is used in the Java programming to achieve the output from the complex programs. Object oriented programming, what it consists of? You can see this figure which has the different sections, the types of object oriented programming like abstraction, inheritance, encapsulation, polymorphism, these are the types of the object oriented programming and the classes and objects. Classes, objects, methods and the data are very important part of object oriented programming. Class is the heart of the object oriented programming. The class consists of object, method and data. Means we can say that the class consists of the combination of method, data and object. Suppose we are having one simple example here. Suppose there are the class is the car, different types of cars will be the objects. For example, in the mechanical engineering there are the machines. But the types of machines like lathe machine, drilling machine, milling machine, shaping machine, planing machines, these are the types of machines which will be in objects. Means machines will be in the class and the types of machines, the different types of machines will be in the objects. Types of object oriented programming. There are three types of object oriented programming, encapsulation, polymorphism and inheritance. Encapsulation. You can see the classes consist of the different methods and the different data and the variable. The class is the, I just said earlier, the class is the heart of the object oriented programming that is Java programming. The starting of the program will be starting with the name of the class. Method. Method means the types of methods with the help of which we can solve the problem. Means we can solve the problem with the help of taking the value from the user or you can take the value in the program only. So these are the types of methods. Variable. Suppose you want to provide the value in the program. It must consist of the variable. It should consist of the variable. For example, int a is equal to 50. 50 is the value, a is the variable and integer is the data type. Means encapsulation means grouping together or the wrapping together all the content in one single item. For example, one application, mobile cells or the mobile phones, Android phones is the best application for the Java programming. The different applications which are the inside one mobile phone that is encapsulation. Second one is the inheritance. You can see here the class A is having the class B. The class A is also showing the class C. Means the class A is having the properties of the class B also. The class A is also having the properties of the class C. Means they are interchanging the properties from A to B or maybe the B to A vice versa. Also A to C or C to A vice versa. For example, there are different types of machines like conventional machines and non-conventional machines. But the conventional machines always interchanging the properties from the non-conventional machines. Also the non-conventional machines like EDM, ECM or UCM are interchanging the properties from the conventional machines like lathe machine or maybe the drilling machines. Means the properties will be same for both the entities and they can interchange the properties that is inheritance. Polymorphism. You can see in the figure. Suppose we can have to draw the shape. Shape are different types of shapes like triangle or maybe the rectangle or maybe the circle. Means we can draw the different types of shape like the triangle, rectangle and the circle for a particular function that is draw in the section shape. This is called as polymorphism. Correlate the classes, objects and methods in Java programming. Think about this question. Now features of Java programming. There are different types of features in Java programming. Compilation and interpretation. Robust and secure. Type once and run anywhere. Multithreaded and distribution. Java programming is two-stage process. C and C++ is a one-stage process. Compilation and interpretation. These are the two stages of the Java programming. We'll go one by one. Compilation. What it consists of? Source code means a program or a transcript. Suppose I want to achieve the source code into the output. That will be achieved with the help of two steps. First one will be the compilation and second step will be the interpretation. In the compilation, there will be the JDK file that is called as Java development kit which is called as Java C, Java compiler. Suppose I want to achieve the output. The first we have to convert source code into the bytecode. That is class file. So source code will be converted into the bytecode with the help of Java compiler. After that we are having the bytecode means class file. With the help of class file, we can calculate the output. So bytecode will be converted into the output that is with the help of Java interpreter. That is the Java development kit. Robust and secure. Java programming is a robust and secure programming language. Robust means which can withstand all the properties at any environment. The Java programming can be stored in each and every OS. We can type once and run anywhere. Suppose I want to run the program in my system. I can type at any remote place and I can run the program in my house. Multi-threaded means multitasking. Java programming is a multi-threaded language because suppose take an example of web page. The web page consists of maybe the text, lines, sentences which also consist of the pictures. We can scroll the page. We can share the images. We can listen the song. Means in one page it consists of multi-threading or multitasking. Distribution. The Java programming software we can distribute very easily. We can distribute the input and output from one center to another center. Difference between C++ and Java programming. In the C++, we can write once and compile everywhere. C++ is one-stage process. Java programming, the tagline for the Java program is write once and run anywhere. Java programming is a two-stage process. Compilation and interpretation. There is no relationship between the class name and the file name. Here, we are using during the compilation the file name and further using the interpretation we are using the class name. C++ is a compiled language. The Java consists of compilation and interpretation. The C++ fully support the pointers. The Java language restricted to support the pointers. C++ or C programming is not having the multi-tasking feature. Java programming as we have discussed in the future. Java programming is a multi-tasking or multi-threading feature. C++ programs are platform dependent. Java programs are written for Java virtual machine. In the C++, there will be the manual memory management like malloc and free functions. Java relies on the automatic memory management. Suppose we want to delete something. Automatically, there will be the deletion of the unwanted files. In the C++ program, we can create 1D and 2D arrays. But in the Java programming, multi-dimensional arrays we can create. In the C++, there will not be any files like JDK, JRE and JVM. In the Java programming, it consists of Java development kit, Java runtime environment and Java virtual machines. C++ consists of header files i.e. preprocessor files. Java programming does not consist of any preprocessor files. The Java programming consists of the applets. We can create the different types of webpages with the help of applets programming. But C++ does not have any applets feature. These are the references. Thank you.