요기도기의 하루하루
Java.StudyNote(자바의정석)-5일차 본문
part 01. "Hello World" part 02. 연산자 part 03. 조건문과 반복문 part 04. 배열
대망의 !! part 05. 객체지향 1
01. 클래스와 객체
- 클래스 : 객체를 정의해 놓은 것, 객체를 생성하는데 사용(제품 설계도)
- 객체 : 실제로 존재하는 사물 또는 개념, 속성과 기능에 따라 용도가 달라짐(제품)
- 인스턴스 : 특정 클래스로부터 생성된 객체(클래스로 객체를 만드는 과정을 인스턴스화 라고 일컫음)
02. 객체의 생성과 배열
1)객체의 생성
- 클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언
- 변수명 = new 클래스명; // 생성된 객체의 주소를 참조변수에 저장
2) 객체 배열
- 클래스명[] 참조변수 = new 클래스명[2]; // 여러개의 객체를 담을 수 있는 배열
03. 클래스의 정의
- 클래스 == 서로 연관된 여러 데이터(타입 관계X) + 함수의 결합
- 클래스 == 사용자 정의 타입
시간을 다루는 타입을 만들려면 시,분,초를 변수로 한 클래스 생성해서 사용
04. 변수의 종류
변수의 종류 | 선언위치 | 생성시기 |
클래스 변수(cv) | 클래스 영역 | 클래스가 메모리에 올라갈 때 |
인스턴스 변수(iv) | 인스턴스 생성시 | |
지역 변수(lv) | 메서드 영역 | 변수 선언문 수행시 |
- 클래스 변수
- 클래스가 메모리에 올라갈 때 생성된다.
- 객체 생성을 하지 않아도 언제든지 사용 가능하다(static이 앞에 붙음)
- 접근 방법 : 클래스명.클래스변수명 - 인스턴스 변수
- 객체가 생성될 때 인스턴스 변수가 생성된다.
- 접근 방법 : 참조변수명.인스턴스변수명 - 지역 변수
- 메서드가 호출 되서 실행될 때 생성된다.
- 메서드가 종료되면 자동으로 제거된다.
05. 메서드
반환타입 메서드이름(타입 변수명, 타입 변수명){ //(선언부)
// 메서드가 호출되면 수행할 코드(구현부)
}
int add(int x, int y){
int result = x + y; // 처리
return result; // 결과 반환
}
메서드 호출
: 메서드이름(값1, 값2);
- return : 실행중인 메서드를 종료하고 호출한 곳으로 되돌아 간다. 반환타입이 void인 경우는 컴파일러가 자동으로 return을 추가해줌
- 호출스택 : 메서드 수행에 필요한 메모리가 제공되는 공간으로 메서드가 호출되면 호출 스택에 메모리가 할당, 종료되면 해제된다.
1) static 메서드
- 객체생성 없이 사용 가능
- 클래스이름.메서드이름() 으로 호출
- 인스턴스 변수와 인스턴스 메서드를 사용하지 않는다.
2) 인스턴스 메서드
- 참조변수.메서드이름() 으로 호출
06. 기본형 매개변수와 참조형 매개변수
1) 기본형 매개변수
- 변수의 값을 읽기만 할 수 있다.
2) 참조형 매개변수
- 변수의 값을 읽고 변경할 수 있다.
07. 오버로딩
08. 생성자
09. this와 this()
1) this
- 인스턴스 자신을 가리키는 참조변수
- 인스턴드 메서드(생성자 포함)에서 사용 가능
- 지역변수와 인스턴스 변수를 구별할 때 사용
-
2) this()
- 생성자에서 다른 생성자를 호출할 때 사용한다.
- this()를 사용하지 않고 클래스명(); 이렇게 생성자를 호출하면 에러가 발생함
- 다른 생성자 호출 시 첫 줄에서만 사용 가능
10. 변수의 초기화