📃 요약
자바는 웹 프로그램을 개발하는데 특화된 컴파일 언어이자 벡엔드 개발 전문 언어임. 플랫폼에 독립적이라서 어떤 운영체제(OS)에서도 실행이 가능하며 가상머신을 통해 실행됨
요소 기술 :
Basic : 자바
📃 기술 구현
스펙 :
intellij java
📃 상속
현실에서 상속은 부모가 자식에게 재산(자산)을 물려주는 것 코딩에서 상속은 부모클래스가 자식클래스에게 속성/함수를 물려주는 것
1) 상속 :
- 부모 클래스의 속성과 함수를 자식 클래스에서 사용할 수 있도록 함
2) 함수(메소드) 재정의 :
- 부모 함수를 자식 클래스에서 다시 정의하는 것
3) final 클래스 :
- final 키워드로 선언된 클래스는 부모 클래스로 사용할 수 없음
4) final 함수 :
- final 키워드로 선언된 함수는 재정의할(오버라이딩) 수 없음
📃 타입 변환과 다형성
기본 자료형에 자동타입변환/강제 타입변환이 있듯이, 클래스에도 자동타입변환/강제타입변환이 있음, 이것을 이용해 다형성을 구현함
1) 클래스 타입 변환 :
- 다른 클래스 타입으로 객체를 대입하는 것(저장하는 것)
2) 자동 타입 변환 :
- 자식 객체를 부모 타입 객체에 대입할 때는 자동으로 타입이 변환됨
3) 강제 타입 변환 :
- 자식 객체를 부모 타입으로 변환된 상테에서 다시 원래의 자식 타입으로 변환하고자 할 때 캐스팅() 연산자를 사용해서 강제 타입 변환됨
4) instanceof 연산자 :
- 객체가 어떤 타입인지 조사할 때 instanceof 연산자를 사용, 주로 강제 타입 변환 전에 변환이 가능한 지 조사할 때 사용함
5) 다형성 :
- 객체 사용 방법(함수 호출방법)은 동일하지만 실행결과가 다양하게 나오는 성질
6) 다현성 구현 : 함수(메소드)재정의 + 타입변환
부모 타입으로 자동 타입 변환 후에 ( 자식클래스에 재정의된 함수가 있다면 ) 그 함수를 호출하면 재정의된 자식 함수가 호출됨
7) 다형성 장점 : 유연한 코딩으로 유지보수성 및 코딩 생산성을 향상시킴
예) 커피머쉰 프로그램을 만든다고 가정한다. 커피를 만드는 방법은 에스프레소, 아메리카노, 모카 등 많다 각각의 에스프레소.make(), 아메리카나.make(), 모카.make() 각각 만들고 다른 수십개의 프로그램에서 호출하게 하는 것은 비효율적이다. 미래의 변화를 고려할 때 커피.make()를 다른 수십개의 프로그램에 호출하게 만들고 실행클래스에서 호출 시 (1개) 커피 = new 에스프레소(); 이런 다형성 코딩을 이용하는 것이 효율적인 코드이다.
📃 추상 클래스
공통되는 특성을 추출해서 공통 클래스를 만드는데 주로 추상 클래스 등을 이용함
1) 추상클래스 :
- 클래스들의 공통적인 속성과 함수를 추출해서 선언한 클래스
2) 추상 함수 :
- 추상 클래스에서만 선언할 수 있고, 함수의 선언부만 있는 함수를 말함. 추상 함수는 자식 클래스에서 재정의되어 실행 내용을 결정해야 함
3) 실체클래스 (==자식클래스 ) :
- 추상 클래스의 모든 특성을 물려받고 추가적인 특성를 가질 수 있음
4) 목적 :
- 공통된 속성과 함수의 이름을 통일할 목적( 객체마다 재각각인 함수/속성 이름 : 난잡 )