객체지향 언어

 

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

+ Recent posts