Java OOPS Concepts, Java IDEs and Servers
Java Object Oriented Programming Concepts
EncapsulationThe concept of safeguarding or hiding the data from improper or accidental usage is called encapsulation.This is just like hiding the powdered medicine inside a capsule. This is just like hiding the details of a car within a bonnet and to drive the car, all the user needs to know is how to use the steering wheel, brake, accelerator, clutch and gear. A driver does not need to know what is inside the engine or what is inside the steering wheel. If you are using a TV, all you need to know how to use the remote controls or manual controls and buttons on TV and you do not need to know what is inside the TV and that is encapsulated or hidden from you.
Encapsulation is supported in Java by use of private, public, protected or default keywords
InheritanceThe concept of reusing the data and activties from a parent entity is called inheritance. Creating a hierarchy of inheritance like C inheriting from B and B inhering from A is called Multi-level inheritance. Inheriting from more than one parent entity is called Multiple inheritance. A child can inheritance its behaviour from Father and Mother.
Java supports only Multi-Level inheritance and does NOT support Multiple inheritance.
AbstractionThe concept of enabling reuse by extracting common information and behaviours from multiple entities and creating entities from the extrtacted information and behaviours. Inheritance is one form of Abstraction. An example for abstraction is abstracting the common information of various types of account like Savings Account, Current Account, Fixed Deposit Account, Recurring Deposit account or any other type and putting that information in Generic entity named Account.
Polymorphism - It is the ability of programming constructs to exist in different forms. In Java, behaviours named as Java methods can exist with different method signatures.
What is an IDE?Integrated Development Environment (IDE) helps you compile, execute programs and debug programs. Other than these primary functionality, IDEs supports a lot of features like Autocomplete, refactoring, debugging, intergating with several tools using plugins.
AutocompleteThis feature provides autocompletion of word you type. IDE provides suggestions for each keyword, java API class name, method name or field name that you are trying to type.
RefactoringLet us say, you have created a Java class name or interface name or method name or field name, and used it throughout you code. Now, if you want to change the name, you have to change it everywhere and it is time consuming. Refactoring is a feature in which if you change the class or interface or method or field name, it will be renamed in all the places.
DebuggingDebugging is the way in which you identify the defects or bugs or issues and fix those. IDEs provide a way in which you can pause execution of the java code and verify the values of all the objects and fields.
Java IDEs - Eclipse, NetBeans, IntelliJ Idea, STS, RSA
EclipseMost popular IDE and is mostly written in Java, is opensource and is free. IDEs written on top of Eclipse have also become popular like Springsource Tool Suite(STS) and IBM Rational Software Architect(RSA). Eclipse hass a very wider developer community and support from various forums on the internet.
IntelliJIt is the IDE from JetBrains and it is quite good in Autocomplete and Refactoring. Google built Android Studio on top of IntelliJ.
NetBeansIt is the IDE developed by Sun Microsystems and Oracle acquired Sun Microsystems. Since NetBeans is from Oracle, currently owning Java development, the NetBeans support for newer Java version will be faster than other IDEs.
Popular Servers that can host Java Applications are: