사용(use) : 하나의 클래스가 다른 클래스를 사용한다. - 시간은 알람을 가지고 있다, 선은 점을 가지고 있다.
집합(has-a) : 하나의 클래스가 다른 클래스를 포함한다. - 알람은 시간을 사용한다?, 점을 사용해 선을 만든다? -불명확..ㅠㅠ
상속(is-a) : 하나의 클래스가 다른 클래스를 상속한다. - 안배움
2. 정보은닉 - 캡슐화
private 를 적절히 '잘'사용하자!
3. UML(Unified Modeling Language)
sosang92횽의 말을 빌리자면 UML을 열심히 공부하면 천재가 될듯!
UML을 일종의 설계단계로 생각하고 있는데 이는 프로그래밍 전에 무엇이 필요한지 어떤 동작을 할지(객체?)를
굉장히 구체적으로 생각해 놓는 작업이다.
도형과 선을 이용해 그림을 그려놓고 그안에 내용을 넣는 식이다.
체계적으로 생각하는 것과 논리적으로 생각하는 것이 모자란 나는 엄청나게 노력해야 할!
반드시 넘어야 할 산으로 생각하고 있다.
->UML(설계?)없이 코딩을 한다 -> 시간이 돈이라면 세계 1위의 재벌이 될 사람들이 하는 일.
4. 배열(Array)
같은 형의 자료들을 순서대로 배열함
int[] array = new int[4]
의 경우 int[0]~int[3]까지의 방에 int형의 자료가 각각 들어감.
5. 동적할당
C에서는 불가능하고 자바에서만 가능하다.
int num이라는 변수에 숫자를 입력받고
int[] array = new int[num]의 형식으로 사용하면 입력받은 만큼의 배열이 생성된다.
6. for-each 루프
자바 1.5버전 부터 생긴 기능
for(자료형 변수 : 배열이름){
//반복문장
}
을 실행하게 되면
배열이름[0]~배열이름[끝]까지 각각의 '데이터'를 (자료형)변수로 넘겨준다.
for(int i : array){
total += array[i];
}
같은 실수는 저지르지 말자 array[i]를 i로 바꿔줘야 한다.
그래야 array[0] 등의 '데이터'가 i에 저장되기 때문이다!(오늘 내가 한 실수이다 ㅡ.,ㅜ)
7. 클래스의 캡슐화
콘택600의 성분을 몰라도 내가 먹으면 감기가 낫는다.
나는 성분을 알 필요가 없고, 감기를 치료할 수 있다는 것을 알 수 있다.
8. 객체지향적 사고에 관한 고찰
-> 객체지향적으로 생각하기 책을 읽는 것으로 대체한다. ㅋ
9.메시지 구현
객체 1 에서 객체2.메소드(매개변수); 형태로 구현
객체 1
어쩌고 저쩌고
어쩌고 저쩌고
.
.
.
객체2.메소드(매개변수);
.
.
이런게 아닐까 싶다. ㅡ.,ㅡ;
메시지는 설계시 굉장히 중요한것 같다.
배우는 도중에 설계라는 말이 수도없이 강조되고 등장한다.
생각하는 프로그래밍(아직 안 읽음)의 문장을 인용하면
- 한 시간 생각하고 한 시간 코딩하라
라는 문장이 있다는데... 나는 1분 생각하고 2시간 정도 코딩하는 굉장히 굉장하게 비효율적인 코딩을 하고 있었다.
이런 코더는 되기 싫다..... 앞으로 코드를 짤때 생각좀 해야겠다.
10. UML(Unified Modeling Language)과 UCD(Use Case Diagram)
일종의 설계를 위한 것들인데... 반드시 넘어야 할 산과 같다.
지금은 익숙하지 않고, 실무에서도 내가 직접 제작할 일이 거의 없겠지만
연습을 해두고 익혀둬야 실무에서 당황하지 않고 업무를 할 수 있을것 같다.
- 어제와 오늘은 배열을 이용한 문제를 푸는 중인데 약간의 개념 미스로 하루를 날렸다.
왜 사람들이 '기본이 중요하다.'는 말을 하는지 1%정도 이해할 수 있었다.
기본을 착실히 쌓아서 80%이상 이해하는 날이 빨리 왔으면 좋겠다.
- 요 몇일 블로그 시작할 때에 짜놓은 계획표대로 살고있지 못하다.. 반성하고 시간을 더 아껴서 48시간 처럼 쓰고싶다..
댓글 없음:
댓글 쓰기