객체지향 Object-oriented
현실세계를 프로그래밍화 하기위해 나온 개념.
실제세계는 사물(객체)로 이뤄서 있으며 발생하는 모든 사건들은 사물간의 상호작용이다.
e.g)사람이 휴대폰 사용시 두 사물(사람, 휴대폰)간의 상호작용.
객체지향언어
: 기존프로그래밍 언어에 새로운 규칙 추가한 발전된 형태의것.
주요특징
1.코드 재사용성 높다
2.코드 관리 용이
3.신뢰성이 높은 프로그래밍 가능.
클래스 Class
: 객체를 정의해 놓은 것. 즉 클래스 = 객체라고 생각할수 있음.
객체: 생성 하는것. 생성 위해서는 클래스 필요
e.g. 티비설계도(클래스)는 단지 제품(객체)만드는데만 사용됨.
클래스- 설계도 ,메뉴얼, 붕어빵 틀... / 객체- 제품, 붕어빵 ..
설계도 통해 티비 만들어져야 사용가능.
프로그래밍에서는 먼저 클래스 작성한 다음, 그 클래스로부터 객체 생성하여 사용.
하나의 설계도(클래스)만 잘 만들어놓으면 제품(객체)만드는 일이 쉬워짐.
인스턴스 instance. = 객체.
인스턴스화: int[] arr = new int []; // new를 하면 객체생성됨.
어떤클래스로부터 만들어진 객체를 그 클래스의 인스턴스.
변수명은 객체가 아니다. 인스턴스를 바라보고 있는 개념.
객체의 구성요소
1.속성 2.기능.
(객체 = 속성과 기능을 가진 모든 것)
객체는 속성과 기능의 집합. 그 속상과 기능을 그객체의 멤버라고 함.
객체는 참조변수 통해서만 다룰수 있고 참조변수 타입은 객체 타입과 일치
속성property = 변수member= variable
특성 attribute =필드field =상태state
기능 function = 메서드method=함수 ..
기능은 속성을 변화시키고 속성은 변할수 있음.
e.g.) 자동차 객체 속성/기능
속성: 색상, 너비, 높이 , 길이, 속도.. (일반적으로 명사씀)
기능: 시동 on/off ,기어 up/down ,go/stop ... (동사씀)
Tv t; //객체선언
t = new Tv(); //객체 생성
객체는 선언만해서는 사용할수 없다 예) 메뉴얼만 가지고는 사용 불가
객체 사용 위해서는 생성(new)을 해야함. = 메뉴얼 있어야 제품 제대로 사용할 수 있음.
힙heap, 스택stack
heap: 객체 생성되는 공간. (new)
stack: 메서드 생성되는 공간.
매개변수
기본형:값을 복사
참조형: 주소복사. (new쓰면 모두 참조형)
객체 사용시 매개변수를 전달한다.
변수 종류 | 선언위치 | 생성시기 |
클래스 변수 class | 클래스영역 | 클래스가 메모리 올라갈때. (객체 생성없이 사용가능) |
인스턴스 변수 instance | 클래스 영역 | 객체생성시. new |
지역변수 local | 메서드,생성자, 초기화블럭 내부.. | 변수 선언문 수행될때. |
메서드 method 선언부, 구현부로 이루어짐.
선언부의 구조: int 반환타입 add 메서드이름 (int x, int y) 매개변수 선언.
구현부의 구조 : { int result = x+y; //호출시 수행할 행동
return result; } //결과 반환
- 반환타입: 결과 즉 반환값의 타입. 없는경우 void.
- return: 반환타입과 일치해야함 .
메서드 호출 예시.
e.g) int result = add (3,5); //add라는 메서드 호출
add 메서드: int add (int x, int y) {
return x+y; }
'Back-end > JAVA,Spring' 카테고리의 다른 글
자바 로또 메이커 소스코드 (0) | 2018.06.02 |
---|---|
오버로딩 overloading VS 오버라이딩 overriding (2) | 2018.06.02 |
[JAVA] 다이아몬드 별찍기. 소스코드 (0) | 2018.05.18 |
[JAVA] 변수란? Variable (0) | 2018.05.16 |
[Spring] STS설치 및 Tomcat 설치 (0) | 2018.05.06 |