class
- 자바에서 생성되는 프로그램의 최소 단위
- 기능(메서드)과 속성(멤버변수)로 구성
- 상용자 정의 자료타입
- 데이터와 기능을 함꼐 저장할 수 있는 자료구조
- new 생성자()를 통해서 계속 만들어낼 수 있다는 의미에서 설계도, 붕어빵틀이라고 설명하곤 함.
객체 지향 프로그래밍의 특징
추상화 (abstraction)
- 추상화의 사전적인 의미는 특정한 개별 사물과 관련되지 않은 공통된 속성이나 관계등을 뽑아내는 것
- 공통의 속성이나 기능을 묶어 이름을 붙이는 것으로 객체지향적 관점에서 클래스를 정의하는 것
- 예를 들어, 토끼, 고양이, 사자, 치타가 있을 때 이것들을 각각의 객체라 하며 이 객체들을 하나로 묶으려 할 때 동물 또는 생물이라고 묶는 것
- 자바에서 추상화란 메서드와 멤버변수로 클래스를 만드는 것
상속 (inheritance) - 재사용
- 추상화한 클래스에 각각의 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미
- 부모클래스에 정의된 기능은 새로 만들지 않아도 사용가능(재사용)
- 자바에서는 다중 상속이 되지않음
캡슐화 (Encapsulation), 은닉화
- 캡슐화는 실제로 구현되는 부분을 외부에 드러나지 않도록 캡슐로 감싸 이용방법만 알려주는 것
- 은닉화는 내부 데이터, 내부 연산을 외부에서 접근하지 못하도록 은닉
- 변수에 접근지정자를 private로 지정
- setter, getter를 시용해 변수의 접근,제어
다형성 (polymorphism)
- 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미
- 자바에서는 부모의 클래스형으로 자식의 클래스형을 참조
- 부모의 클래스를 자식이 오버라이딩 했을경우 부모의 형으로 자식으 찹조하면 자식의 메소드가 실행됨
- 상속, 인터페이스 구현된 클래스에서 메소드의 인자 전달등에서 다형성이 많이 활용됨
변수의 종류
멤버변수와 지역변수
- 지역변수는 초기화 후 사용
- 멤버변수는 기본적으로 초기화됨
멤버변수에는 클래스변수와 인스턴스 변수가 있다
클래스변수
- static(스태틱),global(전역) 변수
- 객체 생성 없이 클래스이름으로 바로 참조 가능
- 변수 선언시 static키워드 사용
인스턴스 변수
- 객체를 생성시 즉, 인스턴스화 할때 생성되는 변수
- 인스턴스 : 객체를 실체화 한것
- 문법적으로는 new 생성자() 했을 때