728x90
반응형
객체 지향 프로그램 (OOP : Object-Oriented Programming)
객체(Object)
- 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 식별 가능한 것
- 속성(필드(field) + 동작(메소드(method))로 구성
- 클래스로부터 생성되며, new 클래스( )로 생성
객체와 객체 간의 상호작용
- 메소드를 통해 객체들이 상호작용
- 메소드 호출 : 객체가 다른 객체의 기능을 이용하는 것
클래스(class)
- 자바의 설계도 (객체를 만들기 위한 설계도)
- 인스턴스(instance) : 클래스로부터 만들어진 객체 (객체는 클래스의 인스턴스)
- 하나의 클래스로 여러개의 객체 생성 가능
- 객체지향 프로그래밍 단계
클래스 변수 : 클래스로 선언한 변수, 해당 클래스의 객체 번지가 저장됨
new 연산자 : 객체 생성 연산자, 생성자를 호출하고 객체 생성 번지를 리턴
클래스 선언
- 객체 구상 후 클래스 이름을 결정
- 클래스 이름.java로 소스 파일 생성
클래스 멤버
- public class ClassName {
// 필드(Field) : 객체의 데이터가 저장되는 곳(변수형태)
int fieldname;
// 생성자(Constructor) : 객체 생성 시 초기화 역할 담당
ClassName( ) { ··· }
new를 통해 객체 생성
// 메소드(Method) : 객체의 동작에 해당하는 실행 블록
void methodName( ) { ··· }
}
필드(Field) : 객체의 고유 데이터를 저장
- 선언형태는 변수와 비슷
- 생성자와 메소드 전체에서 사용, 객체가 소멸되지 않는 한 객체와 함께 존재
- 객체가 가져야 할 부품
- 객체의 현재 상태 데이터 등을 저장
- 필드 선언
생성자(Constructor) : 클래스로부터 new 연산자로 객체 생성 시 호출되어 객체의 초기화 담당
- new 연산자로 호출되는 특별한 중괄호 { } 블록
- 필드를 초기화하거나 메소드를 호출해 객체를 사용할 준비를 함
- 클래스 이름으로 되어 있고, 리턴 타입이 없음
- 객체초기화 : 필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것
- 생성자 선언
클래스(매개변수 선언, …) {
// 객체의 초기화 코드 }
- 생성자 오버로딩(overloading)
메소드(Method) : 객체의 동작에 해당하는 실행
- 객체의 동작에 해당하는 중괄호 { } 블록
- 중괄호 블록의 이름 == 메소드 이름
- 메소드 호출 시 모든 코드들이 일괄적으로 실행
- 필드를 읽고 수정하는 역할 외에 다른 객체 생성해 다양한 기능 수행
- 객체 간의 데이터를 전달하는 수단
- 외부(호출한 곳)로부터 매개값을 받아 실행에 이용,
실행 후 결과 값을 외부(호출한 곳)로 리턴할 수 있음 - 메소드 선언부(signature)
- 메소드 이름
- 메소드 오버로딩 : 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것
선언= 매개 변수(parameter)
호출 = 인수(argument)
매개변수(Parameter)의 개수를 모를 경우
- 매개 변수를 배열 타입으로 선언
int sum1(int[ ] values) { } - 배열 생성하지 않고 값의 목록만 넘겨주는 방식 = 가변 인수(Variable Argument)
int sum1(int... values) { }
리턴(Return)문
- 리턴값이 있는 메소드 : 메소드 선언에 리턴 타입 있는 메소드는 리턴문 사용하여 리턴값 지정
- 리턴값이 없는 메소드(void) : void 선언된 메소드에서 return문 사용하여 메소드 실행 강제
Lambda
- 함수(function)
- Consumer(소비자)
- Supplier (공급자)
- Runnable(동작) - 실행하고 끝
객체 외부에서 호출
- 우선 클래스로부터 객체 생성
- 참조 변수와 도트 연산자 사용하여 메소드 호출
- 참조변수.메소드(매개값, …);
- 타입변수 = 참조변수.메소드(매개값, …); // 리턴값이 있음
728x90
반응형
'IT > 자바' 카테고리의 다른 글
자바 정리 - 상속 (0) | 2021.11.30 |
---|---|
자바 정리 - 인스턴스 멤버와 정적 멤버 (0) | 2021.11.30 |
자바 정리 - 배열, 열거타입 (0) | 2021.11.30 |
자바 정리 - 타입 (0) | 2021.11.30 |
자바 정리 - 반복문 (0) | 2021.11.30 |
댓글