객체 지향적 프로그래밍 언어한 번 작성하면 어디에서나 실행된다 (Write Once, Run Anywhere)JRE가 설치된 모든 환경에서 실행 가능안정성이 중요한 기업용 소프트웨어는 Java, JVM 기반으로 많이 사용오픈소스 라이브러리 많음백앤드 서버 개발 / 데이
클래스 (붕어빵 만드는 틀), 인스턴스 (붕어빵)클래스: 표현하고자 하는 대상의 공통 속성을 한 군데에 정의해 놓은 것 (객체의 속성을 정의)멤버 변수: 클래스 내부 정보 (모델, 색깔, 가격)인스턴스: 클래스로 부터 만들어진 객체 (갤럭시, 아이폰)메소드: 작업을 수
접근제어자: 멤버 변수/함수 혹은 클래스에 사용, 외부에서의 접근을 제한하는 역할private: 같은 클래스 내에서만 접근 가능default(nothing): 같은 패키지 내에서만 접근 가능protected: 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접
상태와 행위로 이루어진 객체로 만드는 것서로 연관되어 있는 기능들을 그룹핑 / 분류화재활용성 객체를 만드는 것 (구체적인 기능)객체는 변수와 메소드를 그룹핑한 것문법과 설계부품화컴퓨터 기능별로 쪼갬 (키보드, 마우스, 모니터, 본체)부품화가 중요한 것임에는 분명하지만
1. 상속 객체지향의 재활용성을 극대화시킨 프로그래밍 기법 객체의 필드(변수)와 메소드를 다른 객체가 물려 받을 수 있는 기능 소스 변경 문제 또는 불필요한 기능 포함될 수도 있기 때문에 생김 부모 클래스 / 상위(super) 클래스 / 기초(base) 클래스 자식 클래스 / 하위(sub) 클래스 / 유도(derived) 클래스 재활용성과 중복 제거, 유지...
하위 클래스에서 상위 클래스의 기본적인 동작방법을 변경할 수 있어야 함 => 메소드 오버라이딩기본동작은 폭넓게 적용되고, 예외적인 동작은 더 높은 우선순위를 가짐 메소드의 서명(signature)메소드 이름 메소드 매개변수 갯수 / 데이터 타입 / 순서메소드 리턴 타입
import java.lang.\*;System.out.println(1);System: 클래스out: 클래스의 필드(변수), 객체 (필드가 메소드 가짐), static (System을 인스턴스화한적이 없음에도 불구하고 필드 out에 접근할 수 있음println: 메소