Skip to main content

Encapsulation(what is the need?)

Let's try to generate the need of encapsulation.

For an instance, When money is in the Bank, It is secured. Bank takes responsibility and provides security for our money.
But If we have withdrawn that and carried in a bag, Now It can be snatched. Same happens, when we create an application. The database takes responsibility and provides security to our data. But when our application access data from the database and stores in the variable, Now It can be theft.

Data should not travel openly. Must have a container to wrap that same as In the real world(from this point you should know that how a real-world object will be defined in a program),
If I am an object of the Human class, with variables

  • name: "foo"
  • height: 5.8
  • color: "fair"

Nobody can know my name by just looking at me without asking. So now name became secured. To wrapping up data like this in a class is called Encapsulation.

In code:
class Human{
    var name = "foo";
    var height = 5.8;
    var color = "fair"

    public static void main(String[] args){

        Human object1 = new Human();
    }
}
In the code you must do like object1.name then you'll get the name.

Even data became secured from other objects also. For an instance, If  I will workout, I'll get the Muscular body, not my neighbor. In the same way, If one object changed it's variable's value, the variable will not be changed for any other objects except this. i.e variables and functions of one object cannot be accessed by other objects, and it just because of Encapsulation.

for example(in code):
class Human{
    var name;
    var height;
    var color;
    var weight;

    public Human(String name, float height, String color, float weight){

        name = name;
        height = height;
        color = color;
        weight = weight;
    }

    public void workout(){

        weight = weight + 5;
    }

    public static void main(String[] args){

        Human object1 = new Human("foo", 5.7, "fair", 70);
        Human object2 = new Human("bar", 5.9, "fair", 70);
        
        object1.workout();
        // object1 did workout, object2 not
        
        System.out.println(object1.weight) // 75
        System.out.println(object2.weight) // 70
    }
}


Comments

Popular posts from this blog

Why "F" and "L" suffix | (10.0F, 10L)

Let us take it this way, We will create their needs. So we will get why they are needed. Try to guess, which functions will be executed in the following program: public class MyClass {     public static void main(String args[]) {         MyClass obj = new MyClass();         obj.fun1(10);     }     void fun1(byte val){         System.out.println(val);     }     void fun1(int val){         System.out.println(val);     }     void fun1(float val){         System.out.println(val);     }     void fun1(long val){         System.out.println(val);     }     } It seems like every method is capable to run this program because 10 is still literal because It has no data type. Before Java, In previous technologies, this scenario gave an ambiguity error. But Java solves this problem by removing the concepts of literals. It means Java provide a data type immediately when these born. So here 10 is no more literal. Java provides Integer data type for it. So now it is of Integer t

only large files upload on S3 | Ruby On Rails

models/attachment.rb class Attachment < ApplicationRecord after_initialize :set_storage private def set_storage # larger that 5mb file would be upload on s3 if file . blob . byte_size > 5_000_000 Rails . application . config . active_storage . service = :amazon else Rails . application . config . active_storage . service = :local end end # end of private end

Typecasting | How is Long to Float Conversion possible?

We will take a brief description of Typecasting and will try to do focus on Log to Float Conversion. Typecasting: Assigning a value of one data type to another. When we assign a value of smaller data type to a bigger one. it is called Widening. Java did this conversion automatically as they are compatible. As shown in the following figure: One another kind of conversion, when automatic conversion not possible i.e. when they are not compatible is Shortening. It will be just opposite of above and diagram will be reversed. How is Long to Float Conversion possible? If we look carefully at the diagram, there is one conversion which looks questionable is Long(8 bytes) to Float(4 bytes) conversion. It looks like data lossy conversion. Actually, Type conversion does two things: Either change in range or change in behavior or both. Change in Range: short a = 3456 // this value can be varied within the range of -32768 to 32767 int b = a // now this value can be varied wi