4/21 - 4/27
목표: 2강. 객체지향 프로그래밍 - 챕터 16 ~ 23
이번주 자바교육 소감
1강을 맨몸으로 100미터 뛰기의 속도로 갔다면 2강부터는 타이어를 허리에 매고 마라톤을 뛰는 느낌이다.
갈수록 어려워지는데 가끔 숨고르기 구간이 나와서 너무 다행이 아닌 수 없다.
그리고 챕터 중간마다 풀어보기문제가 있는데 이것을 스스로 풀었을때 가장 보람된 순간인 듯 싶다.
현재 16% 완료했다.
13. 객체 간의 협력(collaboration)
너무 중요한 부분인데 저번주에 빼먹어서 포함했다.
3개 객체의 협력으로 데이터도 줄이고 간략한 프로그램을 구현할 수 있다.
16. 여러 인스턴스에서 공통으로 사용하는 변수 : static
- 기준 값이 있고 그 값으로부터 순차적으로 증감하는 경우
- 예 : 학번, 카드번호, 사원번호
- static int serialNum;
- static변수는 프로그램이 시작되는 순간 메모리영역에 프로세스되면서 data영역에 잡힌다.
- 소멸되는 시점: 프로그램이 다 끝나고 메모리에서 unload되는 순간.
static 메서드(클래스 메서드)에서는 인스턴스 변수를 사용할 수 없다.
- employeeLee.*같은 인스턴스 없이 Employee.* 처럼 클래스이름으로 호출가능.
employeeLee.*같은 인스턴스 변수 사용불가 - 인스턴스 생선 전에 호출될 수 있으므로.
- 멤버변수 많으면 메모리 많이 차지/ 적당히 - 클래스 속성이 될 수 있는 변수로. 클래스 내부에서 많이 사용되는 것.
- 멤버변수가 너무 적으면 필요시마다 함수사이 매개변수가 계속 전달하는 역할해야함. 외부에서 클래스 사용할때도 많이 귀찮음.
- static은 프로그램 시작과 동시에 메모리에 잡히고 종료때까지 잡고 있으므로 많이 쓰면 메모리소모가 큼. - 큰 배열 지양
- static은 instance간 공유할 필요가 있는 변수 위주
18. static응용 - 싱글톤 패턴(singleton pattern)
- 회사를 클래스로 만들경우 사원은 여러명이나 회사는 하나여야만 함.
- public class Company{ } 경우 디폴트 생성자는 public. 외부에서 여러 개 생성 가능.
- 그러므로 이 예제를 보자.
20. 배열(array)
- 순차적, 빠르다, 물리적/논리적위치 동일, 속도는 N개의 디펜던트( 0(n))
- 기본자료형 (primitive data type): int, double… int 10개의 배열은 40byte
- 객체배열 (Student, Employee….. 객체)
21.객체 배열
얕은 복사하기: System.arrayCopy(src, srcPos, dest, destPos, length)
src - 원본
srcPos - sorce position, 복사시작할 위치
dest - destination
destPos - 복사시작될 위치
length - 복사될 길이 (소스길이보다 dest길이 짧으면 오류)
'Back-end' 카테고리의 다른 글
(자바강의/후기)JAVA/Spring 4주차-2 (0) | 2021.04.28 |
---|---|
(자바강의/후기)JAVA/Spring 4주차-1 (0) | 2021.04.27 |
(자바교육/후기) Java/Spring 2주차 (0) | 2021.04.20 |
(자바인강/후기) Java/Spring 1주차 (0) | 2021.04.07 |