728x90
반응형

Java 80

[Java] OOP 5대 원칙

OOP 원칙이란? 소프트웨어를 설계함에 있어 이해하기 쉽고, 유연하고, 유지보수가 편하도록 도와주는 5가지 원칙을 말한다. 1. Single Responsibility Principle ( SRP : 단일 책임 원칙 ) 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다" - 로버트 C. 마틴 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 말한다. 만약, 새를 생각하고 Animal클래스를 하나 만들었다고 가정하자 public class Animal { public void cry(){}; public void eat(){}; public void run(){}; public void fly(){}; } 물론 이렇게 단순한 클래스에선 말이 안되지만 예를 들기 위함이..

Java 2021.01.10

[Java] 오버로딩 VS 오버라이드

오버로딩 ( overloading ) 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 * 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. ex ) PrintStream.java의 pringln() public class PrintStream extends FilterOutputStream implements Appendable, Closeable { . . . public void println(boolean x) { synchronized (this) { print(x); newLine(); } } public void println(char x) { synchronized (this) { print(x); newLine(); } } public voi..

Java 2020.12.27

[Java] OOP의 특징

1) 캡슐화 데이터와 코드의 형태를 외부로부터 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐형태로 만드는 방법이다. public class Member { private String mbrId; private String mbrNm; private Integer age; public String getMbrId() { return mbrId; } public void setMbrId(String mbrId) { this.mbrId = mbrId; } public String getMbrNm() { return mbrNm; } public void setMbrNm(String mbrNm) { this.mbrNm = mbrNm; } public Integer getAge() { return ..

Java 2020.12.27

[Java] 객체지향언어

객체지향언어 객체지향프로그래밍이라는 것은 컴퓨터 프로그래밍의 패러다임 중 하나입니다. 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉, "객체" 들의 모임으로 파악하고자 하는 것. 라고하는데 객체끼리 서로 상호작용하는것을 말하는것 같다. * 특징 1. 캡슐화 2. 상속 3. 추상화 4. 다형성 * 원칙 ( S O L I D ) 1. Single responsibility principle ( 단일 책임의 원칙 ) 2. Open/closed principle ( 개방 폐쇄의 원칙 ) 3. Liskov substitution principle ( 리스코프 치환의 원칙 ) 4. Interface segregation principle ( 인터페이스의 분리에 원칙 ) 5. ..

Java 2020.12.27

[Java] Lambda & Stream 3

마냥 좋다고 생각하고 여기저기 검색중에 이러한 글을 봤다. => lambda operations do not allow any external variable operation within itself. 제길... 역시 뭔가 약점은 존재하는군... 성능에서도 for loop와 stream forEach를 비교했을때 더 떨어진다고 한다. 성능 테스트 public class Main { public static void main(String[] args) { // for loop와 stream forEach 의 성능 비교 Long forLoopStart = System.currentTimeMillis(); for (int i = -210000000; i < 2100000000; i++) { for (int ..

Java 2020.02.26
728x90
반응형