Today I Learned-14
자바프로그래밍 - 3
- 클래스와 객체(2)
- static 변수
- 배열(Array)과 ArrayList
복습
- 클래스 ex.
Student lee = new Student();
- Student : 클래스
- lee : 참조변수
- new : 객체 생성 위한 키워드(예약어)
- Student() : 생성자
- 클래스 구성
- 멤버변수 : 클래스 속성
인스턴스변수 or 필드값이라고도 함
- 메서드 : 클래스 기능
- 멤버변수 : 클래스 속성
- 생성자
- 툴에서 기본 생성자 제공
- 단, 임의로 만든 생성자 양식 있을 경우 기본 생성자는 없어짐!!
즉, 만들어진 생성자 양식에 맞는 인스턴스만 생성됨
- 필요하면 기본 생성자 하나 적어 주면 됨!
- 참고
- 코드 내, 여러 개의 간단한 클래스 작성 가능
단, ‘public’ class의 클래스명은 파일명과 반드시 동일해야 함!!
- 코드 내, 여러 개의 간단한 클래스 작성 가능
클래스와 객체 - 6. 정보 은닉(계속)
- 4/28(목) 설명 예정
클래스와 객체(2) - 1. this 예약어
- 생성된 인스턴스 스스로를 가리키는 예약어
- 자신의 메모리를 가리키거나,
- 같은 이름, 다른 형식의 생성자를 호출하거나,
- 자신의 주소를 반환
- 자신의 메모리를 가리키거나,
클래스와 객체(2) - 2. 객체 간 협력
- 객체를 클래스로 만들어 구현한 뒤의 상호작용
- 서로 값을 주고 받는다.
- 서로 메서드를 호출 한다.
- 교재 p.175 ~ 179 참고!!
클래스와 객체(2) - 3. static 변수
- 클래스에서 공통으로 사용하는 변수를 ‘static 변수’로 선언!!
- 프로그램 실행되면, 딱 한 번 메모리 공간 할당
- 그 값은 모든 인스턴스가 공유!!
- 문법
static int(자료형) serialNum(변수명);
- 클래스 변수
- static 변수는 클래스 이름으로 직접 참조 가능!
- static 변수는 클래스 이름으로 직접 참조 가능!
- 클래스 메서드와 인스턴스 변수
- static으로 선언한 메서드에서는 인스턴스 변수 사용 불가!
- static으로 선언한 메서드에서는 인스턴스 변수 사용 불가!
클래스와 객체(2) - 4. 변수 유효 범위
변수 유형 | 선언 위치 | 사용 범위 | 메모리 | 생성/소멸 |
---|---|---|---|---|
지역 변수 | 함수 내부 | 함수 내부 | 스택 | 함수 호출 때 생성, 함수 끝나면 소멸 |
멤버 변수 | 클래스의 멤버 변수 | 클래스 내부, private 아니라면 참조변수로 다른 클래스에서도 사용 가능 | 힙 | 인스턴스가 생성과 동시에 생성, 가비지 컬렉터가 메모리 수거할 때 소멸 |
static 변수 | static 사용하여 클래스 내부에 | 클래스 내부, private 아니라면 참조변수로 다른 클래스에서도 사용 가능 | 데이터 영역 | 프로그램 시작할 때 생성, 프로그램 끝날 때 소멸 |
클래스와 객체(2) - 5. static 응용 - 싱글톤 패턴
- 객체 지향 프로그램에서 인스턴스를 단 하나만 생성하는 ‘디자인 패턴’
- 실무, 여러 프레임워크에서 자주 사용하는 패턴
- 참고! 디자인 패턴? -> 정형화/최적화 된 형식!
배열(Array)과 ArrayList - 1. 배열?
- 배열: 동일한 데이터 타입의 여러 자료, 순차적으로 관리하는 구조
- 문법
-
자료형[] 배열 이름 = new 자료형[개수];
-
자료형 배열 이름[] = new 자료형[개수];
-
- 생략 문법
-
자료형 배열 이름[] = new 자료형[] {1, 2, 3...};
-
자료형 배열 이름[] = {1, 2, 3...};
선언과 동시에 초기값 입력 가능
-
- 객체 배열
- 배열 복사하기
- 얕은 복사 : 배열, 각 요소의 주소값만 복사 => 동일 인스턴스를 가리킴
배열의 변수값이 변경되면, 복사 대상 배열도 바뀜(같은 주소값이니까!)
- 깊은 복사 : 배열, 각 요소의 변수값만 복사 / 주소값은 여전히 다름!!
- 얕은 복사 : 배열, 각 요소의 주소값만 복사 => 동일 인스턴스를 가리킴
- 향상된 for문과 배열
배열(Array)과 ArrayList - 2. 다차원 배열
- 문법
자료형 [ ][ ] 배열 이름 = new 자료형 [행 개수][열 개수];
- p.219쪽 그림 확인!!
배열(Array)과 ArrayList - 3. ArrayList 클래스
- 객체 배열을 관리할 수 있는 멤버 변수와 메서드 제공
- 문법
ArrayList<E> 배열 이름 = new ArrayList<E>();
<E>
와 같은 형태 = ‘제너릭(generic)’, 담을 데이터들을 포괄하는 라벨!
과제, ~5/4(수)까지 제출
- 범위: 교재 p.170 ~ p.230
- 복습/연습문제
- ‘1분 복습’, ‘연습 문제’의 문제&답, ‘타이핑’
- ‘나혼자 코딩’, ‘타이핑, 디버그’
제출파일: 이형록_220427_과제제출.txt
- ‘1분 복습’, ‘연습 문제’의 문제&답, ‘타이핑’
- 실습코드
- 이클립스에 타이핑 (패키지, 클래스 동일하게)
제출파일: 이형록_220427_실습코드.txt (이클립스에서 작성한 내용을 복사)
- 이클립스에 타이핑 (패키지, 클래스 동일하게)
- 보충자료 확인
- 복습/연습문제
기타(팁)
- 공부 방법
- 다른 사람 가르치기
- 독서 방법
- 주변시
- 속발음X
- 손가락/펜으로 짚어가며
- 메모 방법 by 김익한 교수(기록학자)
- 한 단락, 키워드 2~3개 추출, 나머지는 삭제
다음 강의 준비
nice!!!