OOP: Encapsulation

Learn the Basic Java Concepts Object Oriented Programming
12 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€65.43
List Price:  €93.47
You save:  €28.04
£55.38
List Price:  £79.12
You save:  £23.73
CA$95.75
List Price:  CA$136.80
You save:  CA$41.04
A$107.11
List Price:  A$153.03
You save:  A$45.91
S$95.36
List Price:  S$136.24
You save:  S$40.87
HK$547.90
List Price:  HK$782.75
You save:  HK$234.85
CHF 63.27
List Price:  CHF 90.39
You save:  CHF 27.12
NOK kr772.60
List Price:  NOK kr1,103.76
You save:  NOK kr331.16
DKK kr487.88
List Price:  DKK kr697.01
You save:  DKK kr209.12
NZ$117.84
List Price:  NZ$168.36
You save:  NZ$50.51
د.إ257.06
List Price:  د.إ367.25
You save:  د.إ110.18
৳7,700.43
List Price:  ৳11,001.09
You save:  ৳3,300.65
₹5,837.33
List Price:  ₹8,339.41
You save:  ₹2,502.07
RM333.67
List Price:  RM476.70
You save:  RM143.02
₦92,489.99
List Price:  ₦132,134.22
You save:  ₦39,644.23
₨19,533.24
List Price:  ₨27,905.82
You save:  ₨8,372.58
฿2,588.46
List Price:  ฿3,697.97
You save:  ฿1,109.50
₺2,275.23
List Price:  ₺3,250.47
You save:  ₺975.23
B$358.08
List Price:  B$511.57
You save:  B$153.48
R1,314.42
List Price:  R1,877.82
You save:  R563.40
Лв127.95
List Price:  Лв182.79
You save:  Лв54.84
₩96,452.39
List Price:  ₩137,795.03
You save:  ₩41,342.64
₪267.23
List Price:  ₪381.78
You save:  ₪114.54
₱4,034.64
List Price:  ₱5,764.02
You save:  ₱1,729.38
¥11,065.06
List Price:  ¥15,807.91
You save:  ¥4,742.85
MX$1,201.03
List Price:  MX$1,715.83
You save:  MX$514.80
QR255.83
List Price:  QR365.49
You save:  QR109.65
P965.79
List Price:  P1,379.76
You save:  P413.97
KSh9,296.24
List Price:  KSh13,280.92
You save:  KSh3,984.67
E£3,349.82
List Price:  E£4,785.67
You save:  E£1,435.84
ብር4,026.64
List Price:  ብር5,752.60
You save:  ብር1,725.95
Kz58,375.85
List Price:  Kz83,397.65
You save:  Kz25,021.80
CLP$66,628.33
List Price:  CLP$95,187.41
You save:  CLP$28,559.08
CN¥507.11
List Price:  CN¥724.48
You save:  CN¥217.36
RD$4,113.13
List Price:  RD$5,876.15
You save:  RD$1,763.02
DA9,393.54
List Price:  DA13,419.92
You save:  DA4,026.38
FJ$158.35
List Price:  FJ$226.22
You save:  FJ$67.87
Q545.71
List Price:  Q779.62
You save:  Q233.91
GY$14,678.83
List Price:  GY$20,970.66
You save:  GY$6,291.82
ISK kr9,808.34
List Price:  ISK kr14,012.52
You save:  ISK kr4,204.17
DH708.72
List Price:  DH1,012.51
You save:  DH303.78
L1,243.72
List Price:  L1,776.81
You save:  L533.09
ден4,025.16
List Price:  ден5,750.48
You save:  ден1,725.31
MOP$565.76
List Price:  MOP$808.27
You save:  MOP$242.50
N$1,323.80
List Price:  N$1,891.23
You save:  N$567.42
C$2,582.07
List Price:  C$3,688.83
You save:  C$1,106.76
रु9,353.99
List Price:  रु13,363.42
You save:  रु4,009.42
S/263.57
List Price:  S/376.55
You save:  S/112.97
K270.82
List Price:  K386.91
You save:  K116.08
SAR262.49
List Price:  SAR375
You save:  SAR112.51
ZK1,859.31
List Price:  ZK2,656.27
You save:  ZK796.96
L325.94
List Price:  L465.65
You save:  L139.71
Kč1,644.39
List Price:  Kč2,349.23
You save:  Kč704.84
Ft25,663.75
List Price:  Ft36,664.08
You save:  Ft11,000.32
SEK kr762.14
List Price:  SEK kr1,088.81
You save:  SEK kr326.67
ARS$61,304.48
List Price:  ARS$87,581.58
You save:  ARS$26,277.10
Bs486.59
List Price:  Bs695.16
You save:  Bs208.56
COP$277,527.04
List Price:  COP$396,484.19
You save:  COP$118,957.15
₡35,650.64
List Price:  ₡50,931.67
You save:  ₡15,281.02
L1,732.56
List Price:  L2,475.19
You save:  L742.63
₲522,432.19
List Price:  ₲746,363.69
You save:  ₲223,931.50
$U2,704.33
List Price:  $U3,863.50
You save:  $U1,159.16
zł282.07
List Price:  zł402.98
You save:  zł120.90
Already have an account? Log In

Transcript

Hello there, and welcome back to this Java development course. So last time we went over modifier types you guys want to do your job was to create one of every single modifier type that we went over a variable with the every single modifier type that we went over in the last lesson. So here is essentially what should have done. So here I have first of all a private integer A equals one. This means that it will only be visible inside this class, then I have a default integer B, which is equal to two, which means that this will only be visible inside this package, then I have a protected integer C, which is equal to three. This means that it will only be visible inside this package and in other packages, but only in other packages with classes that extend this class.

And it can only be accessed using the super keyword. Then we have public and deep which essentially means it can be accessed anywhere, anywhere you want. Have a static int E, which means that we can refer to it without creating an instance of this class without doing new classes and objects. And then finally have a final int F, which just makes this variable constant, meaning it cannot be changed. So the only thing to note here very quickly is that we can actually have multiple modifier types. So we can have final static, so they don't interfere at all.

And then we can also have public final static. So we can have, there's three things. This is an access modifier. And then final and then static. There's sort of different, different in different leagues, but we can't have public and then private as well. So we can't have public private, so you can only have one access modifier.

All right, so that is essentially how we work with modifiers. Now really, the important thing about last lesson to understand was this private modifier here. Since today, we're going to be going over encapsulation and encapsulation heavily utilizes this private modifier. So let's take a look at exactly how that works. Alright, so before, the way we would do things is we would have a classifier, right, and we would have a number of eyes attribute inside that class spider. So as we have here, there we go, we have public int, number of eyes.

And I changed up the code a little bit here, just to make it a little bit less confusing. And just for demonstration purposes, so a little bit different. But yeah, so that's actually how we would do things without encapsulations just have public and number of eyes, and then we just refer to it by doing our DOT number of eyes, and then equals 56, or something like that. Now, encapsulation, on the other hand, would utilize something called getters and setters, form getter and setter methods. They're also called getter setter methods anyway. So what are they?

Well, they're essentially methods that we use to get and set an attribute of a class. So let's take a look here. So remember how we went over the private modifier? Well, that's actually what we're going to be utilizing. So we're going to do private Number of eyes Alright, so only this class can now refer to it directly. So here now we can't utilize this.

And now what we do is we generate getters and setters. So we do public void set. Number of eyes. All right? public void set number of eyes, it's going to take in an int, number of eyes, right? All right, and the inside we're going to do this DOT number of eyes.

There we go. Equals number of eyes. All right, there we go. So that is what we call a setter method. Then we're going to do the same thing for get number of eyes. So we're going to do public int, get number of eyes.

All right. Then we're going to do return number of eyes. And there we go. Alright, so now how would we actually refer or get the number of eyes? Well, you would do it using our dot set number of eyes 56 and then system dot out, dot print ln r dot get number of eyes. And there we go.

And now if we run this it appears that there is an error somewhere. Let me just take a look as everywhere there is an error. In project one or thematic operators, right, let's remove this. Okay. There we go. All right now, everything should work.

There we go. So now if you run classes and objects, we get 56. So you'll see how we refer to the number of eyes attribute inside spider, not directly so not by doing our DOT number of eyes. But by using the getter and setter methods, so that is essentially the very basis on what encapsulation is built. And technically, that is encapsulation itself. So there are actually a number of benefits that come along with encapsulation.

So first of all, we have complete control over what exactly is set. So, for example, let's just say that we wanted to know, a spider to have a maximum number of eyes. So clearly 56 eyes is a pretty crazy number. So I don't think a single spider has 36 eyes. So let's say that there's a limit of like 11. For example, we could go ahead and put in, put in sort of a barrier so we can do if number of eyes is less than or no is yeah is less than 11 or so.

Just as an example, then we only do it and if it isn't less than that, we just don't set it. So Now when we do this, it will go ahead and return zero since we don't set it. All right, and then that is one of the benefits. Another benefit is that we can make fields read only or write only. So let's say that we wanted number of eyes to be read only. So we can read it, but we cannot set it, all we would have to do is just remove this set number of eyes method.

Just remove that. And now we can read it. So we can use get number of eyes, but we cannot use set number of eyes. So if we go ahead and actually in here, we can't use it since doesn't exist. So we would have to not set it so we cannot set it vantage of using Oh, Andre advantage of using encapsulation. And then the final advantage is that we can actually change how we set or get variables inside the class.

But we don't necessarily need to change any of the code that uses the given class. So let's just for example, let's have a, for example here, let's just return back our set number of eyes method, right? And so alright, so we have, you know, set number of eyes, we're doing it, we're using it, everything is working, okay? But then all of a sudden, we say, you know what, we want to set the number of eyes as a string. So it's going to be, you know, a number, but it's going to be a string instead of an integer. So if we refer to it using the old method, without encapsulation, we would do our DOT number of eyes.

Right? Right, right, right. Who did that have to do this make this public? Make it default just totally matter. Okay? r dot number of eyes equals six, right?

But now we want to make this a string, right? So we change this into two string. So now in results, we get an error. So we get an error. We have to put a string here, but we have an integer. So now we have to change our code.

So the client that's using the class has to change this code, right? But if we had encapsulation on the other hand, we can simply do private string. And then inside the method to get the setter method, we would just do this DOT number of eyes equals a string plus number of eyes will just convert this integer to a string. And then and then for get number of eyes, you would just do public string, get number of eyes and then we're actually no it will be public int get number of eyes, it would be it actually, we would have to actually have to use integer dot parse int to convert a string to an integer. There we go. So this is a method inside the class integer which is a built in class.

So this will just return return a string as an integer, so it'll find an integer in the string and then return that. So there we go. So now since we are using encapsulation, so our dot set number of eyes to 56. There we go. Since we are using encapsulation, we can now change the data type without actually modifying any of the code that is actually using the class. So in this case, let's say that we want to change it back to integer at this point.

So right now you'll see, change it back to integer, or better, better yet, let's just actually float. So what if you want to change it from string? Now for floats, we would just do float number of eyes, right? Then here, what we would do it would be number of eyes. Yeah, just number of eyes. And then here, all we would do is return number of eyes, right?

But castering so just int number of eyes and remember this just cast a float down to an int. There we go. And so yeah, that's all we have to do. So we cannot change the data type. And in here, nothing actually changes we can keep on using the same exact code. So that is the third advantage of using encapsulation.

So encapsulation in general is actually one of the four fundamental concepts of object oriented programming. So they are actually abstraction, encapsulation, polymorphism and inheritance. So we've already gone over inheritance, which is just a class extends another class. And then we've also gone over encapsulation. So all we have left now to understand is abstraction, and polymorphism. So there are another two things, they're also pretty simple to understand.

That's actually what we're going to be going over in the following lessons in the final two lessons. Now, encapsulation, so encapsulation, it's generally a pretty important part of Java in general. Pretty much all code that you're going to be writing or all class you're going to be writing are going to use encapsulation. So it's important that you understand the concept. calculation is just a different way of writing class, and it's stead of actually referring to a variable directly. So doing our dot variable name equals 56.

It's just the practice of using getter and setter methods on a attributes of a class. And that's all that it is. So nothing difficult there. All right, now let's assign you some homework. Alright, so homework is very simple. Just take the insect class that we already have, and go ahead and encapsulate it.

So encapsulate everything as well as the spider class. I mean, I encapsulated to get in the lesson just now. But go ahead and calculate the insect class as well. So very simple homework should probably take like two minutes if you understand the calculation. And the more important part is to actually understand the calculation. So make sure you do that.

And you're good to go. So next time, we're going to be going over polymorphism, which has a very sort of weird name. I would say perhaps it's not I mean, I personally found it weird, but you'll notice In the next lesson what I'm talking about and yeah, so yeah, encapsulate insect and spider if you haven't done that already and I'll see you next time

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.