object-oriented principles
what 2 ways to achieve abstraction.
1. abstract class (0 to 100%) 2. interface (100%)
public class Dog { String breed; int age; String color; void barking() { } void hungry() { } void sleeping() { } } The code above is a sample of a ___1___ Dog with ___2___ and ___3___.
1. class 2. attributes 3. behavior
what are the three rules while creating a constructor?
1. constructor name must be the same as its class name 2. a constructor must have no explicit return type 3. a java constructor cannot be abstract, static, final, and synchronized
what two types of constructors?
1. default constructor (no parameters) 2. parameterized constructor
3 rules of method overriding
1. must have the same name as in the parent class 2. must have the same parameter as in the parent class 3. must be IS-A relationship (inheritance)
what are the five types of inheritance?
1. single 2. multilevel 3. hierarchical 4. multiple 5. hybrid
two usages of method overriding
1. specific implementation of a method 2. used for runtime polymorphism
class definition
A class is a group of objects which have common properties. blueprint for objects.
what is an abstract method?
A method which is declared as abstract and does not have implementation
abstract void printStatus(); //no method body and abstract What is this?
Abstract method
inheritance
one object acquires all the properties and behaviors of a parent object
object
Any entity that has state and behavior is known as an object. For example a chair, pen, table, keyboard, bike, etc. It can be physical or logical.
abstract class Bike{ // Abstract class abstract void run(); // Abstract method } class Honda4 extends Bike{ void run(){System.out.println("running safely");} public static void main(String args[]){ Bike obj = new Honda4(); obj.run(); } } what is this?
Example of Abstract Class with an Abstract Method
the process of extracting shared characteristics from two or more classes, and combining them into a generalized superclass. what is this?
Generalization
why can't static methods be overriden?
It is because the static method is bound with class whereas instance method is bound with an object
is this a method overloading or overriding? Return type can be same or different. But you must have to change the parameter.
overloading
class Student4{ int id; String name; Student4(int i,String n){ id = i; name = n; } What is the constructor?
Student4(int i,String n){ id = i; name = n; }
subclass definition and what is it also called?
Subclass is a class which inherits the other class. It is also called a derived class, extended class, or child class.
superclass definition and what is it also called?
Superclass is the class from where a subclass inherits the features. It is also called a base class or a parent class.
Classes don't consume any space. T or F
T
class Subclass-name extends Superclass-name { //methods and fields added here } The extends keyword indicates that you are making a new class that derives from an existing class. The meaning of "extends" is to increase the functionality. T or F
T
Abstraction lets you focus on what the object does instead of how it does it. T or F
True
An abstract class must be declared with an abstract keyword. T or F
True
If members have default constructors or constructor without parameter then these constructors are called automatically T or F
True
If there is no constructor in the class, the compiler adds a default constructor T or F
True
If you implement any constructor then you no longer receive a default constructor. T or F
True
In Java, a constructor is a block of codes similar to the method. It is called when an instance of the object is created, and memory is allocated for the object. T or F
True
It is called constructor because it constructs the values at the time of object creation T or F
True
OOPs makes development and maintenance easier whereas in a procedure-oriented programming language it is not easy to manage if code grows as project size increases. T or F
True
OOPs provides data hiding whereas in a procedure-oriented programming language a global data can be accessed from anywhere. T or F
True
an abstract class can have abstract and non-abstract methods. T or F
True
an abstract class cannot be instantiated. T or F
True
class Employee{ float salary=40000; } class Programmer extends Employee{ int bonus=10000; public static void main(String args[]){ Programmer p=new Programmer(); System.out.println("Programmer salary is:"+p.salary); System.out.println("Bonus of Programmer is:"+p.bonus); } } The relationship between the two classes is Programmer IS-A Employee. It means that Programmer is a type of Employee. T or F
True
parameterized constructors can be called using initializer list T or F
True
a no-arg constructor contains a default call to super( ); T or F
True, this is default behavior
when would a constructor be called?
When an object is created
classes
a blueprint from which you can create an individual object.
It is a special type of method which is used to initialize the object. what is it?
a constructor
encapsulation
a process of wrapping code and data together into a single unit, for example, a capsule which is mixed of several medicines.
shows only essential things to the user and hides the internal details, for example, sending SMS where you type the text and send the message. You don't know the internal processing about the message delivery. what is this?
abstraction
A class which is declared as abstract is known as what?
an abstract class
package com.revature; public class Student{ //private data member private String name; //getter method for name public String getName(){ return name; } //setter method for name public void setName(String name){ this.name=name } } //A Java class to test the encapsulated class. package com.revature; class Test{ public static void main(String[] args){ //creating instance of the encapsulated class Student s=new Student(); //setting value in the name member s.setName("vijay"); //getting value of the name member System.out.println(s.getName()); } } What is this?
an example of encapsulation of a class called Student that has only one field with its setter and getter methods.
what can be shared characteristics?
attributes, associations, or methods
what is method overriding in java?
child class has the same method declared in the parent class
what four terms are used in inheritance?
class sub class/child class super class/parent class reusablility
templates that are used to create objects, and to define object data types and methods. what are these called?
classes
Is this a constructor or a method? The Java compiler provides a default constructor if you don't have any constructor in a class.
constructor
Is this a constructor or a method? is invoked implicitly.
constructor
Is this a constructor or a method? must not have a return type.
constructor
Is this a constructor or a method? the name must be same as the class name.
constructor
Is this a constructor or a method? used to initialize the state of an object.
constructor
polymorphism
he ability of an object to take on many forms
class Animal{ void eat(){System.out.println("eating...");} } class Dog extends Animal{ // Hierarchical Inheritance void bark(){System.out.println("barking...");} } class Cat extends Animal{ // Hierarchical Inheritance void meow(){System.out.println("meowing...");} } class TestInheritance3{ public static void main(String args[]){ Cat c=new Cat(); c.meow(); c.eat(); //c.bark(); //Error }} what level of inheritance is this?
hierarchical
what is also known as a parent-child relationship or IS-A relationship in oop?
inheritance
what are the four pillars of oop?
inheritance polymorphism abstraction encapsulation
//A Java class which has only getter methods. public class Student{ //private data member private String college="AKG"; //getter method for college public String getCollege(){ return college; } } why is this a read-only class?
it has only a getter to access the college name
Is this a constructor or a method? invoked explicitly.
method
Is this a constructor or a method? must have a return type.
method
Is this a constructor or a method? not provided by the compiler in any case.
method
Is this a constructor or a method? the name may or may not be same as class name
method
Is this a constructor or a method? used to expose the behavior of an object.
method
is this a method overloading or overriding? example of compile time polymorphism.
method overloading
is this a method overloading or overriding? parameters must be different.
method overloading
is this a method overloading or overriding? performed within class.
method overloading
is this a method overloading or overriding? used to increase the readability of the program.
method overloading
If a subclass provides the specific implementation of the method that has been declared by one of its parent class, it is known as
method overriding
is this a method overloading or overriding? Return type must be same or covariant
method overriding
is this a method overloading or overriding? occurs in two classes that have IS-A (inheritance) relationship.
method overriding
is this a method overloading or overriding? parameters must be same.
method overriding
is this a method overloading or overriding? used to provide the specific implementation of the method that is already provided by its super class.
method overriding
advantages of inheritance are
method overriding code reusablility
is this a method overloading or overriding? example of run time polymorphism.
method overridng
class Animal{ void eat(){System.out.println("eating...");} } class Dog extends Animal{ //Level 1 - Inheritance void bark(){System.out.println("barking...");} } class BabyDog extends Dog{ //Level 2 - Inheritance void weep(){System.out.println("weeping...");} } class TestInheritance2{ public static void main(String args[]){ BabyDog d=new BabyDog(); d.weep(); d.bark(); d.eat(); }} what level of inheritance is this?
multilevel
public Bicycle() { gear = 1; cadence = 10; speed = 0; } is this a no-arguement constructor or an parameterized constructor?
no arguement constructor
can a static method be overriden?
no, a static method cannot be overriden
what is no-args constructor?
no-argument constructor
what does OOPS stand for?
object oriented programming and systems
abstraction
process of hiding the implementation details and showing only functionality to the user.
why is reusability used?
reusing the fields and methods of the existing class when you create a new class. You can use the same fields and methods already defined in the previous class.
class Animal{ void eat(){System.out.println("eating...");} } class Dog extends Animal{ //Single Inheritance void bark(){System.out.println("barking...");} } class TestInheritance{ public static void main(String args[]){ Dog d=new Dog(); d.bark(); d.eat(); }} what level of inheritance is this?
single
creating new subclasses from an existing class. If it turns out that certain attributes, associations, or methods only apply to some of the objects of the class, a subclass can be created. what is this called?
specialization
An abstract class can have constructors and static methods also. T or F
true
In Java, all Java objects are polymorphic since any object will pass the IS-A test for their own type and for the class Object. T or F
true
It is not necessary to write a constructor for a class. It is because java compiler creates a default constructor if your class doesn't have any. T or F
true
Objects can communicate without knowing the details of each other's data or code. T or F
true
Static belongs to the class area, and an instance belongs to the heap area. T or F
true
We can create a fully encapsulated class in Java by making all the data members of the class private. Now we can use setter and getter methods to set and get the data in it. T or F
true
abstract classes can have final methods which will force the subclass not to change the body of the method. T or F
true
what is the most common use of polymorphism in oop?
when a parent class reference is used to refer to a child class object.
can an object can be defined as an instance of a class
yes
does a compiler make sure that constructors for all of its subobjects (it's member and inherited objects) are called?
yes
does object contain an address and takes up some space in memory
yes
is a default constructor a no argument constructor?
yes
is this an advantage of encapulation? By providing only a setter or getter method, you can make the class read-only or write-only
yes
is this an advantage of encapulation? It is a way to achieve data hiding
yes
is this an advantage of encapulation? It provides you the control over the data.
yes
is this an advantage of encapulation? easy to test. So, it is better for unit testing.
yes
class ABC{ //Overridden method public void disp() { System.out.println("disp() method of parent class"); } } class Demo extends ABC{ //Overriding method public void disp(){ System.out.println("disp() method of Child class"); } public void newMethod(){ System.out.println("new method of child class"); } public static void main( String args[]) { ABC obj = new ABC(); obj.disp(); ABC obj2 = new Demo(); // Covariance with reference types obj2.disp(); } } Does this follow the three rules of method overriding?
yes, it's named and parameterized the same in the subclass as in the parent class, and the keyword extends make it a IS-A relationship.