Skip to content

Commit fe0bbb6

Browse files
authored
Merge pull request #718 from javaistic/add-this-keyword
Add Java `this` keyword
2 parents 2ef41f8 + e388005 commit fe0bbb6

File tree

2 files changed

+105
-1
lines changed

2 files changed

+105
-1
lines changed

src/navs/documentation.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export const documentationNav = {
3434
pages['method-overloading'],
3535
pages['constructors'],
3636
pages['static-keyword'],
37-
pages['this-keyword']
37+
pages['this-keyword'],
38+
pages['final-keyword']
3839
],
3940
}

src/pages/docs/final-keyword.mdx

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
---
2+
title: Java final keyword
3+
description: In this tutorial, we will learn how to use the Java `final` keyword.
4+
---
5+
6+
In Java, the `final` keyword is used to define constants and can be applied to variables, methods, and classes. Declaring an entity as `final` ensures it is only assigned once, meaning:
7+
8+
- A `final` variable cannot be reassigned.
9+
- A `final` method cannot be overridden.
10+
- A `final` class cannot be subclassed.
11+
12+
## 1. final Variable in Java
13+
14+
A `final` variable cannot have its value changed once it has been assigned. For instance:
15+
16+
```java
17+
class Main {
18+
public static void main(String[] args) {
19+
20+
// create a final variable
21+
final int AGE = 32;
22+
23+
// attempt to change the final variable
24+
AGE = 45;
25+
System.out.println("Age: " + AGE);
26+
}
27+
}
28+
```
29+
30+
In this example, the variable `AGE` is marked `final`, meaning its value cannot be changed after its initial assignment. Attempting to reassign it will result in a compilation error:
31+
32+
```plaintext
33+
cannot assign a value to final variable AGE
34+
AGE = 45;
35+
^
36+
```
37+
38+
> **Note:** By convention, `final` variables in Java are typically written in uppercase.
39+
40+
## 2. final Method in Java
41+
A `final` method cannot be overridden by subclasses. For example:
42+
43+
```java
44+
class FinalDemo {
45+
// define a final method
46+
public final void display() {
47+
System.out.println("This is a final method.");
48+
}
49+
}
50+
51+
class Main extends FinalDemo {
52+
// attempt to override the final method
53+
public final void display() {
54+
System.out.println("The final method is overridden.");
55+
}
56+
57+
public static void main(String[] args) {
58+
Main obj = new Main();
59+
obj.display();
60+
}
61+
}
62+
```
63+
64+
Here, the `display()` method in the `FinalDemo` class is `final`, so it cannot be overridden in the `Main` class. Attempting to do so will generate a compilation error:
65+
66+
```plaintext
67+
display() in Main cannot override display() in FinalDemo
68+
public final void display() {
69+
^
70+
overridden method is final
71+
```
72+
73+
## 3. final Class in Java
74+
A `final` class cannot be extended by any other class. For example:
75+
76+
```java
77+
// define a final class
78+
final class FinalClass {
79+
public void display() {
80+
System.out.println("This is a final method.");
81+
}
82+
}
83+
84+
// attempt to extend the final class
85+
class Main extends FinalClass {
86+
public void display() {
87+
System.out.println("The final method is overridden.");
88+
}
89+
90+
public static void main(String[] args) {
91+
Main obj = new Main();
92+
obj.display();
93+
}
94+
}
95+
```
96+
97+
In this example, `FinalClass` is declared `final`, so it cannot be subclassed by `Main`. Attempting to inherit from it will result in a compilation error:
98+
99+
```plaintext
100+
cannot inherit from final FinalClass
101+
class Main extends FinalClass {
102+
^
103+
```

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy