[중앙대]멋쟁이 사자처럼

[java] 팀원과 나를 위한 java 핵심 키워드 정리

Supersett 2022. 9. 14. 08:37

#오버라이딩(Over riding) vs 오버로딩(Over loading)

오버라이딩

: 같은 이름의 메서드를 여러개 가지면서 매개변수의 유형과 갯수가 다르도록 하는 기술

 

오버로딩

: 상위 클래스가 갖고 있는 메서드를 하위 클래스가 재정의해서 사용

 

왜??

다형성을 위해서!!

#부모(상위) 클래스 , 자식(하위) 클래스

왜씀??

 중복된 코드를 줄여 유지보수가 편리하고, 통일성이 있고 다형성을 구현할 수 있다.

 

#다형성

 하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 뜻한다. 즉, 같은 코드에서 여러 실행 결과가 나올 수 있다.

 부모클래스가 자식 클래스의 동작방식을 알 수 없어도 오버라이딩을 통해 자식 클래스를 접근 할 수 있다.

 부모클래스로 객체를 선언 했으나 실행시점에 동적 바인딩 되어 자식클래스의 멤버함수가 호출된다.

 

 왜좋아??

1. 유지보수가 쉽다 ( 여러객체를 하나의 타입으로 관리가 가능하다)

2. 재사용성 증가

3. 느슨한 결합 ( 클래스간 의존성이 줄어들고 확장성이 높고 결합도가 낮아진다 )

 

 

#객체지향 프로그래밍의 특징 4가지

상속

■ 자식 클래스가 부모의 변수 및 메서드를 상속받아 활용할 수 있는것

 

추상화

 공통된 행동,필드를 묶어 하나의 클래스를 만드는 것

 추상클래스 : 하나 이상의 추상메소드를 포함한 클래스를 추상 클래스 라고 한다. 이런 추상 메서드는 자식 클래스에서 반드시 재정의가 되어야 한다 → 다형성이 보장된다

 

다형성

위에 정리함

 

캡슐화

데이터와 코드의 형태를 외부로부터 알 수 없게 하고, 데이터의 구조와 역할,기능을 하나의 캡슐 형태로 만드는 방법

 

#느슨한 결합?

https://supersett-diary.tistory.com/189?category=1043720 

 

[Java] 느슨한 결합을 위하여.. ( IoC, DIP, DI 란 무엇인가? )

 스터디에 들어와서의 첫 발표를 하게 되었다.  뭔가 초반에는 고수분들을 데리고 내가 뭘 발표할까,,,번데기 앞에서 주름잡는 격 아닌가,,, 고민에 고민을 하면서 엄청난 부담을 가졌었는데 편

supersett-diary.tistory.com

예전에 특집으로 발표했던 글 읽어보면 도움될듯

 

#Object Class

자바에서 모든 클래스는 Object 클래스를 암시적으로 상속받고 있다. 

 

왜??

모든 클래스가 공통으로 포함하고 있어야 하는 기능을 제공하기 위해서!!!

 

예시)