객체지향 언어
1. 6장~7장(다형성 까지 ) 2~3회 반복으로 읽어서 이해하기
2. 6장~7장(다형성 까지 ) 객체지향 개념, 규칙 정리해서 하루에 한번씩 읽기
3. 2번을 꾸준히 진행하면서 다음 챕터 공부
4. 자바의정석3판 공부하면서 JSP, SPRING 이용 실습
5. 디자인패턴, 객체지향 개념 공부
클래스와 객체
HW를 분석&관찰 ( 속성, 기능 ) -> SW로 속성은 변수로 기능은 메서드로 구현
객체와 인스턴스
하나의 소스파일에 여러 클래스 작성
객체의 생성과 사용
1. 클래스 작성(설계도) : class Tv { }
2. 객체생성(제품) : Tv t;[참조변수(리모콘)] / t = new Tv(); t;[참조변수(리모콘)] = Tv객체 연결
3. 객체사용(제품사용) : t;[참조변수(리모콘)]으로 변수 -> 메서드 사용 (호출)
객체의 생성과 사용 예제
객체가 2개 일때
t2 = t1 일때
객체 배열
참조변수 배열 생성 후 new Tv(); 객체를 만들어서 tvArr[0]~tvArr[2] 따로 넣어줘야 됨
클래스의 정의(1)-데이터와 함수의 결합
클래스의 정의(2)-사용자 정의 타입
선언위치에 따른 변수의 종류
클래스 변수와 인스턴스 변수
메서드란 ?
메서드의 선언부
메서드의 구현부
메서드의 호출
메서드의 실행 흐름
return문
반환값
호출 스택(call stack)
기본형 매개변수 ( 중요 ) 코드만 보고 그려가면서 연습
변수의 값을 읽기만 할 수 있다. ( read only )
1. ParameterTest 클래스 메모리 로드 후 main 메서드 스택 호출 프로그램 시작
2. Data 클래스 메모리 로드 후 Data타입의 참조변수 d가 main메서드의 지역변수로 생성
Data클래스의 인스턴스가 생성, 생성된 인스턴스의 주소가 참조변수 d에 저장 main(d:0x100)→Data인스턴스(0x100)(x)
3. 참조변수 d가 가리키고 있는 인스턴스의 멤버변수 x에 10을 저장 main(d:0x100)→Data인스턴스(0x100)(10)
4. println메서드를 호출(스택에 쌓고) d.x값(10) 출력 후 스택에서 제거
5. change메서드 호출(스택에 쌓고) 참조변수 d가 가리키고 있는 인스턴스의 멤버변수 x(d.x)의 값을 넘겨준다.
d.x의 값인 10이 change의 매개변수 x에 복사 change(x=10) ( int x ) 기본형 매개변수
6. change메서드의 지역변수 x에 1000을 저장 change(x=10)→change(x=1000)
7. println메서드를 호출(스택에 쌓고) x값(1000) 출력 후 스택에서 제거 후 change메서드가 사용하던 스택 제거
8. main 메서드로 돌아가 change를 호출한 다음 문장이 수행
9. s.o.p("After change(d.x)"); 스택에 쌓고 After change(d.x) 출력 후 스택에서 제거
10. s.o.p("main() : x="+d.x); 스택에 쌓고 main() : x= 10 출력 후 스택에서 제거
11. main 메서드의 마지막 문장까지 수행 완료 main메서드가 종료되고 동시에 프로그램 종료
참조형 매개변수 ( 중요 ) 코드만 보고 그려가면서 연습
변수의 값을 읽고 변경할 수 있다. ( read & write )
1. ParameterTest 클래스 메모리 로드 후 main 메서드 스택 호출 프로그램 시작
2. . Data 클래스 메모리 로드 후 Data타입의 참조변수 d가 main메서드의 지역변수로 생성, Data클래스의 인스턴스가
생성, 생성된 인스턴스의 주소가 참조변수 d에 저장 main(d:0x100)→Data인스턴스(0x100)(x=0)
3. 참조변수 d가 가리키고 있는 인스턴스의 멤버변수 x에 10을 저장 main(d:0x100)→Data인스턴스(0x100)(x=10)
4. println메서드를 호출(스택에 쌓고) d.x값(10) 출력 후 스택에서 제거
5. change메서드를 호출(스택에 쌓고), 매개변수로 참조변수 d를 넘겨준다. main메서드의 참조변수 d의 값
(Data인스턴스의 주소)은 change메서드의 매개변수d에 복사(0x100)된다.change(d=0x100) ( Data d ) 참조형 매개변수
6. change메서드의 지역변수인 참조변수 d가 가리키고 있는 인스턴스의 멤버변수 x에 1000을 저장
Data인스턴스(x=10)→(x=1000)
7. println메서드를 호출(스택에 쌓고) d.x값(1000) 출력 후 스택에서 제거 후 change메서드가 사용하던 스택 제거
8. main 메서드로 돌아가 change를 호출한 다음 문장이 수행
9. s.o.p("After change(d)"); 스택에 쌓고 After change(d) 출력 후 스택에서 제거
10. s.o.p("main() : x="+d.x); 스택에 쌓고 main() : x= 1000 출력 후 스택에서 제거
11. main 메서드의 마지막 문장까지 수행 완료 main메서드가 종료되고 동시에 프로그램 종료
기본형 매개변수
참조형 매개변수
기본형 매개변수, 참조형 매개변수 차이점
참조형 반환타입( 중요 )
static 메서드와 인스턴스 메서드
static을 언제 붙여야 할까?
메서드 간의 호출과 참조
오버로딩(overloading)
생성자(constructor)
기본 생성자( default constructor )
매개변수가 있는 생성자
생성자 this( )
참조변수 this
우측, 이름이 같기 떄문에 iv, lv 구별하기 위해 this 사용 ( this가 없으면 전부 lv로 간주 )
변수의 초기화
'Java' 카테고리의 다른 글
내부클래스, 익명클래스 (0) | 2023.03.30 |
---|---|
객체지향 프로그래밍 II (0) | 2023.03.27 |
배열 (0) | 2023.03.08 |
조건문과 반복문 (0) | 2023.03.03 |
연산자 (0) | 2023.03.01 |