[정리]객체지향1
객체지향이란!?
: 기본개념은 실제 세계를 사물(객체)로 이루어져 있으며, 발생하는 사건들은 사물간의 상호작용이다. 라는 것이다.
객체지향의 가장 큰 특징
1. 상속
2. 캡슐화
3. 추상화
객체지향의 장점
1. 코드 재사용이 높다
2. 코드의 관리가 용이하다.
3. 신뢰성이 높은 프로그래밍을 가능하게 한다.
클래스와 객체
1. 클래스란!?
객체를 정의해놓은것 (Object), 객체의 설계도 또는 틀
클래스의 정의 : 객체를 정의해 놓은것
클래스의 용도 : 객체를 생성
2. 객체란? 사전적 의미로는 실제로 존재하는 것
객체의 정의 : 실제로 존재하는 것.
객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다르다.
인스턴스란!
: 클래스로 부터 객체를 만드는 과정을 클래스 인스턴스화 라한다.
1. 속성 과 기능
속성 : 멤버변수, 특성,필드, 상태
기능 : 메서드, 행위, 함수
2. 인스턴스 생성 및 사용
생성방법 :
클래스명 변수명 = new 클래스명();
**인스턴스는 참조변수를 통해서만 다룰수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 한다.**
--참고--
변수의 정리
변수의 종류 |
선언위치 |
생성시기 |
클래스 변수 |
클래스 영역 |
클래스가 메모리에 올라갈 떄 (Static이용)=공유변수 |
인스턴스변수 |
클래스 영역 |
인스턴스가 생성되었을 때 (new에의한 활성화) |
지역변수 |
클래스 영역 이외 영역(메서드,생성자..) |
변수 선언문이 수행되었을 때 ({ }내에서만 사용가능) |
메서드
: 어떤 작업을 수행하기 위한 명령문의 집합
메서드 장점
1. 하나의 메서드는 한가지 기능만 수행하도록
2. 반복적으로 수행되어야 하는 여러 문장을 하나의 메서드로 정의
3. 관련된 여러 문장을 하나의 메서드로 만들어 놓음.
**참고**
1. Static이 있을 경우 : 클래스멤버(=공통적으로 사용가능)
-> 인스턴스를 생성 하지 않아도 사용할수 있다.
-> 인스턴스 멤버는 클래스멤버로 전환이 가능 하지만, 클래스 멤버는 인스턴스멤버로 전환이 불가하다.
2. Static이 없을 경우 : 인스턴트 멤버.
Return문
: Return타입은 반환값(자료형)이 일치해야한다.
: 메서드가 종료 될 때 return문이 있을경우 값을 반환 하여 준다
**Call by Reference, value**
1.Call by Reference : 매개 변수의 원래 주소에 값을 저장 하는 방식
2.Call by Value : 주어진 값을 복사하여 처리하는 방식, 메소드 내의 처리 결과는 메소드 밖의 변수에는 영향이 없다.
메서드 호출
참조변수.메서드이름();
참조변수.메서드이름(값1, 값2..) // 메서드에 선언된 매개변수가 있을경우
와 같은 형태로 사용해야 된다.
메서드 오버로딩
: 한 클래스 내에 같은 이름의 메서드를 여러 개 정의 하는것 을 의미.
오버로딩 조건!
1. 메서드 이름이 같아야 한다.
2. 매개변수 개수 or 타입이 달라야한다
3. 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다.
오버로딩 장점!
: 같은 이름으로 여러개를 만들 수 있어, 이름을 작명할 경우의 수가 줄어든다.
**참고**
오버로딩,오버라이딩 개념정리!
1.오버로딩 : 같은 이름의 메서드를 여러개 정의 가능. (단, 조건이 충족되어야 한다)
2. 오버라이딩 : 상속에서 나온 개념으로, 상위 클래스의 메소드를 하위 클래스에서 재정의 하여 사용하는것.
생성자
: 인스턴스 초기화 메서드, 초기화 작업에 주로 사용!
생성자 조건
1. 생성자의 이름은 클래스의 이름과 같아야 한다.
2. 생성자는 리턴 값이 없다.
생성자에서 다른 생성자 호출 방법
1.this.
-> 인스턴스 멤버 호출시 자주 사용하게 되며, 인스턴스 주소가 저장
2.this();
-> 다른 생성자를 호출할 때 사용한다.
**참고**
1. 클래스 변수 초기화 시점 : 클래스 처음 로딩될때 , 단 한번 초기화
-> 클래스 변수 초기화 순서 : 기본값 -> 명시적초기화 -> 클래스 초기화 블럭
2. 인스턴스변수 초기화 시점 : 인스턴스가 생성될 때 마다, 인스턴스별로 초기화
-> 기본값 -> 명시적 초기화 -> 인스턴스 초기화 블럭 -> 생성자