Difference Between Information Hiding and Encapsulation (#14886)
* Difference Between Information Hiding and Encapsulation * Difference Between Information Hiding and Encapsulation
This commit is contained in:
parent
ee98df03f4
commit
604c45b8f0
|
@ -0,0 +1,7 @@
|
||||||
|
package com.baeldung.encapsulation;
|
||||||
|
|
||||||
|
public class Book {
|
||||||
|
public String author;
|
||||||
|
public int isbn;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.baeldung.encapsulation;
|
||||||
|
|
||||||
|
public class BookDetails {
|
||||||
|
|
||||||
|
public String bookDetails(Book book) {
|
||||||
|
return "author name: " + book.author + " ISBN: " + book.isbn;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.baeldung.encapsulation;
|
||||||
|
|
||||||
|
public class BookEncapsulation {
|
||||||
|
public String author;
|
||||||
|
public int isbn;
|
||||||
|
public int id = 1;
|
||||||
|
|
||||||
|
public BookEncapsulation(String author, int isbn) {
|
||||||
|
this.author = author;
|
||||||
|
this.isbn = isbn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBookDetails() {
|
||||||
|
return "author id: " + id + " author name: " + author + " ISBN: " + isbn;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.baeldung.encapsulation;
|
||||||
|
|
||||||
|
public class BookInformationHiding {
|
||||||
|
private String author;
|
||||||
|
private int isbn;
|
||||||
|
private int id = 1;
|
||||||
|
|
||||||
|
public BookInformationHiding(String author, int isbn) {
|
||||||
|
setAuthor(author);
|
||||||
|
setIsbn(isbn);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAuthor() {
|
||||||
|
return author;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuthor(String author) {
|
||||||
|
this.author = author;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsbn() {
|
||||||
|
return isbn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsbn(int isbn) {
|
||||||
|
if (isbn < 0) {
|
||||||
|
throw new IllegalArgumentException("ISBN can't be negative");
|
||||||
|
}
|
||||||
|
this.isbn = isbn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBookDetails() {
|
||||||
|
return "author id: " + id + " author name: " + author + " ISBN: " + isbn;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.baeldung.encapsulation;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public class EncapsulationAndInformationHidingUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenUnencapsulatedClass_whenImplementationClassIsSeparate_thenReturnResult() {
|
||||||
|
Book myBook = new Book();
|
||||||
|
myBook.author = "J.K Rowlings";
|
||||||
|
myBook.isbn = 67890;
|
||||||
|
BookDetails details = new BookDetails();
|
||||||
|
String result = details.bookDetails(myBook);
|
||||||
|
assertEquals("author name: " + myBook.author + " ISBN: " + myBook.isbn, result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenEncapsulatedClass_whenDataIsNotHidden_thenReturnResult() {
|
||||||
|
BookEncapsulation myBook = new BookEncapsulation("J.K Rowlings", 67890);
|
||||||
|
String result = myBook.getBookDetails();
|
||||||
|
assertEquals("author id: " + 1 + " author name: " + myBook.author + " ISBN: " + myBook.isbn, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenEncapsulatedClass_whenDataIsHidden_thenReturnResult() {
|
||||||
|
BookInformationHiding myBook = new BookInformationHiding("J.K Rowlings", 67890);
|
||||||
|
String result = myBook.getBookDetails();
|
||||||
|
assertEquals("author id: " + 1 + " author name: " + myBook.getAuthor() + " ISBN: " + myBook.getIsbn(), result);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue