Java OOP Flashcards

1
Q

Advantages of OOP

A

easy concept - faster than procedural-oriented programming - reusable code - keep important data hidden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Object & class

A

Object have a state (color , sex , height …)(attributes) and behaviour (swim , fly , dance…)(methods) , a class is the blueprint of object (instance of class)(example : dog , human, car).
An object is a variable of class

Note !!!! A class doesn t take any byte of memory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

3 Steps to create an object

A

Declaration
Instantiation
Initialization

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

how many public class can we have in a source file

A

we can have only one public class (the one with the same name of source file) , but multiple default classes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

“this” keyword

A

we use “this” keyword in constructor or an instance method to differentiate local variable from instance variable if they have the same name.

Call one type of contructor ( default with this() or parametrized with this(param) ) from
other in a class. it is known as explicit constructor invocation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

public vs static method

A

public method need a new object instantiation but static access is direct without instantiation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

finalize() method

A

has this form :
protected void finalize(){
//code here
}

it is called before object destroyed by GC

protected is used to prevent access from outside class.This means u won t know when or if finalize() execute. if you re program ends before GC occurs , finalize() will not execute

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Method overloading

A

have the same name but different parameter ( and also number of param )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Command line argument

A

it is the information that follows directly java program name in command line when it is executed.
($java program-name “…”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Java Methods Variables Arguments (var-args)

A

typeName… parameterName

In the method declaration, you specify the type followed by an ellipsis (…). Only one variable-length parameter may be specified in a method, and this parameter must be the last parameter. Any regular parameters must precede it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Constructor

A

it is a special type of method which initialize an object when created or do some procedures

name of constructor is same as class

java create automatically a constructor even if u don t create it , it initialize all variables to 0.

Once u created a constructor , default constructor provided by java is not invoked.

concept of creating multiple constructor in same class is : constructor overloading.

constructor don t have return type . DON T EVEN USE VOID TYPE !!!!!!!!!!!!!!!!!!!!!

access modifiers can be used to set its visibility/accessibility.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Type of constructor

A

has 3 types :
default constructor VS No-args constructor: default is provided by compiler , but no args is defined manually by programmer and u can give edit values of variables or do more process
they both don t accept arguments
Parametrized constructor: constructor with one or more param

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Java Inheritance

A

One of java oop concepts. it is when a class acquire properties ( attributes and methods ) of another class .
A subclass inherits properties of superclass by using extends keyword :
class Sub extends Super{}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Why we need inheritance ?

A

Code reusability
extensibility(extend functionnality of a class)
Method overriding require inheritance
Abstraction require inheritance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

“super” keyword

A

“super” keyword is like “this” keyword which differenciate between the members of a subclass from a superclass if they have same names.

for var : super.variable
for method:super.method()

It is also used to invoke superclass constructor from subclass

default constructor: super()
constructor with param: super(values)

if a class inherited properties from another class, the subclass automatically acquire default constructor of super class.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Java inheritance (IS-A relationship) type

A

Java support only single inheritance ( doesn t support multiple inheritance) but can implements multiple interfaces.

Interface in java can extends multiple interfaces.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is Aggregation in java ?

A

A relationship (HAS-A) between two classes where a class contains instance of another class(like binding a class to other in one way direction)

benefits : reusable code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Aggregation types

A

unidirectional : like above def
bidirectional : where each of class contains instance of other class

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Polymorphism

A

is the ability of an object to take on many forms , allow us to perform multiple operations using the single name of any method (interface).

method overriding is one of polymorphism concepts

any object that can pass more than one IS-A test is polymorphic.
All java objects are polymorphic, because an object can pass IS-A with its own type and the class Object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Polymorphism types

A

compile-time polymorphism: method overloading (static polymorphism).
runtime polymorphism: method overriding.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

method overriding

A

occur when a subclass implement a parent class method based on its requirement (overriding it ) without changing name , type , return type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

method overloading

A

occur when a class has two or more methods with same name but different parameter (different type and number of arguments)

in method overloading return type must not change

23
Q

What is abstraction in java ?

A

Its hidden implementation details from user. providing functionnalities only without giving how it is done (code).

24
Q

How we achieve abstraction?

A

with abstract classes and interfaces

25
Q

Abstract class rules

A

*may or may not contains abstract method ( methods without body : public void get() ).

*if it contains an abstract method it must be declared abstract

*cannot be instantiated.

*to use it you must inherit it from another class.

*if a class inherit abstract class it must implement all its abstract methods.

26
Q

abstract method

A

-abstract keyword is used to declare method as abstract.
-abstract method have a method signature but no body , it ends with semi colon “;” and without curly braces “{}”.

-Any class inheriting the abstract class must either override the abstract method or declare itself as abstract.

27
Q

Encapsulation

A

hidden data (variables) and code from other classes except for method which can access and modify data.

it is also known as data hiding.

28
Q

How to achieve encapsulation ?

A

-declare variables as private .

-provide public getter and setter to view and modify variables values.

29
Q

Benefits of encapsulation

A

-the field of a class can be made read-only (only getter) or write-only (only setter);

(or also fully encapsulated getter+setter)

-a class have total control over what is stored in its fields.

30
Q

What is interface ?

A

We use interface to achieve abstraction.
Interface is also a reference type and is similar to the class.
However, a class describes states and behaviors of object . Interface contains behaviors that a class implements.
Interface contains constants , abstract methods(without body) ; and static and default methods ( the only ones with body).
Interface is like a contract

31
Q

Class and interface similarities

A

-contains any number of methods
-Writting in .java extension , and have the same name of file
-byte code appears in .class file
-appears in packages, and their byte code appears in a directory structure that matches package name

32
Q

Class and interface differences

A

-interface cannot be instantiated
-interface doesn t have a constructor
-method in interface is by default abstract , and field must be both static and final
-A class can implements( don’t extends) multiple interfaces
- an interface can extends multiple interfaces.

33
Q

Properties of interface

A

-Interface is implicitly abstract, you don t need to declare abstract keyword , same thing for its methods.

-its methods are implicitly public.

34
Q

What is tagging interface

A

Also known as marker interface , is an interface with no method and field on it
=> it’s an interface with empty body

35
Q

What is tagging interface purpose

A

-Create a common parent(among a group of interfaces).
-Adds a data type to a class: class become interface type through polymorphism.

36
Q

Packages

A

is a grouping of related types ( classes , interfaces , enumerations and annotations ) providing access protection and namespace management

37
Q

Package types

A

Built-in packages
user-defined packages

38
Q

Examples of Built-in packages

A

java.lang:bundles/gathers the fundamental classes
java.io: bundles classes for input and output functions (like System.in and System.out).

39
Q

Why we use “Import” keyword Java ?

A

To make use of package we need to import it with import keyword.

40
Q

Inner , outer and nested classes

A

Inner class is a class that is defined in another class , it works with nested classes where both inner and outer class exists . An outer class is the main class in which all inner classes are defined

41
Q

static class

A

can be defined only inside outer class ( if it is a main/outer class or not a nested class it’s impossible to use static keyword)

we can access its members without instantiation we need only class name.

42
Q

Anonymous class (classe anonyme)

A

Is a nameless inner class , and because it’s nameless ,it doesn t have a constructor because constructor have same name as its class.

43
Q

Use of anonymous class

A

we mainly use it to instantiate interface (or an abstract class)

44
Q

Type of anonymous class

A

*anonymous inner class that extends class
__________________________
*anonymous inner class that implements interface
for example :

public interface Soft{
public void dev();
}

=> Soft s=new Soft(){
//code here
public void dev(){
sout(“hi”);
}
}
s.dev();
______________________________
*anonymous inner class as argument

45
Q

Singleton

A

is a design pattern , it’s a creational pattern.
This pattern involves only a single class which is responsible to create only one Object.this class provides a way to access it’s only object directly without the need to instantiate its object

46
Q

Advantages of Singleton

A

it saves memory because only one object instance is created and it also provides global access to its instance

47
Q

Use of Singleton

A

create classes related to database connection

48
Q

Rules to create Singleton

A

private constructor(to defeat instantiation)
*instance attribute is private static + SingletonType
*method to return instance :getInstance() is public + SingletonType

49
Q

3 common types of Singleton

A

*Eager Initialization: instance is already instantiated to new ClassName()
*Lazy Initialization: instance attribute is null at the beginning and we initialize instance on getInstance() after check it’s still null then we return it
*Thread-safe Singleton (syncronized method) : Lazy initialization + we use sychronized on getInstance();

50
Q

Wrapper classes

A

are does whose object wraps a primitive data type within them (java.lang package contain them).
All wrapper classes (Integer,Float,Short,Byte, Double,Long) are subclasses of the abstract class number

51
Q

Enum

A

is a special class which contains a group of pre-defined constant values and can be used in switch expressions for comparison.
By default an enum doesn’t require a constructor.

52
Q

enum constructor+attribute scope

A

as enum is a special class, it can only have a private or package-private(without access modifier) constructor , if it’s public , it will trigger a compile time error

+ it’s attribute should be private final

53
Q

some enum methods

A

toString(), name()