티스토리 뷰
긴 기간 동안의 연휴였다.
효율적으로 시간을 잘 썼냐라고 물어보면 솔직히 그렇지는 못했다고 답해야 할 것 같다..
그래도 좋은 사이트를 발견했고, 그 사이트를 통해서 개념들을 어느정도 구체화시키는 데에 집중했다.
https://cloudstudying.kr/courses/61
자바, 객체지향! | CloudStudying
cloudstudying.kr
개념들을 간략하고 아주 명료하게 적어놔서 다시 상기시키기에 좋았고
예제들도 다양했기 때문에 연휴 기간동안 코드들을 음미하고 소화시키기에 충분했다.
우리는 클래스에 필드와 메서드를 정의하고
그 클래스의 객체를 생성하여 필드를 따로 초기화하였다.
생성자는 이러한 과정을 함축 시킬 수 있다.
객체를 생성할 때 생성자 안에 매개변수를 넣어주면서
우리는 객체를 생성하면서 필드를 바로 초기화시킬 수 있는 것이다.
객체1과 객체2가 있다.
객체1 메서드에 객체2를 매개변수로 쓸 수 있다.
객체1 메서드는 객체1 필드를 기본적으로 받고 객체2.name과 같은 형식으로 객체2의 필드값 또한 사용할 수 있다.
객체로 배열을 만들 수 있다.
클래스타입[] 참조변수 = {객체1, 객체2, 객체3}; 으로 객체 배열을 만든 후
반복문을 통해 활용가능하다.
for(int i = 0; i < 참조변수.length ; i++) {
System.out.println(참조 변수[i]. 메서드());
}
getter 메서드를 통해 private 제어자로 지정된 변수의 값을 return 할 수 있다.
setter 메서드는 그 변수의 값을 변경할 수 있다. (형식에 맞게)
인터페이스로 구현해야 할 목표에 대한 전체적인 틀을 정한다.
ex) 핸드폰
그 틀에 대한 기능들을 껍데기로 구현해 놓는다 (추상 메서드)
ex) 알람, 전화, 문자 등
인터페이스를 구현(implements)하는 구현체 클래스를 정의하여
추상 메서드를 오버라이딩을 통해 기능을 구현한다. (반드시 구현해야 함)
ex) 알람 -> 띠링띠링 울리기
전화 -> 010 ~~으로 전화 왔어요~
인터페이스를 쓰면
프로그램 설계의 틀을 잡으며 전체적인 모양을 잡을 수 있고(추상화)
서로 다른 객체(위의 알람, 전화 등)에게 연관성을 부여할 수 있으며(업 캐스팅)
한 객체를 다양한 인터페이스로 해석이 가능해진다.(다형성)
class SmartPhone implements Alarm, Phone, Messenger
-> 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있다.
정리하자면 하나의 인터페이스를 여러 개의 클래스가 구현할 수 있고
반대로 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있다.
다양한 api에 대해서 배움(math.random, random, arraylist, Tokenizer 등)
내가 놓치고 있던 부분이나 새롭게 알게 된 부분들을 적어 놨던 것이다.
그렇다고 해서 완벽하게 개념들을 꿰뚫고 모든 것을 해결할 정도가 되진 않았기 때문에
계속해서 학습을 진행하는 중간중간에도 개념을 복습할 수 있도록 문제를 많이 풀어보면서
자연스럽게 흡수하도록 신경 써야겠다.
내일부터 또다시 진도를 나가게 된다.
개념들을 놓치지 않고 잘 따라갈 수 있도록 다시 열심히 뛰어봐야겠다.
'SEB_BE_41' 카테고리의 다른 글
| 09.15 ~ 16 열여덟, 열아홉 번째 수업(람다, 스트림, 스레드) (2) | 2022.09.16 |
|---|---|
| 09.13 ~ 14 열여섯, 열일곱 번째 수업(컬렉션) (0) | 2022.09.15 |
| 09.08 열다섯 번째 수업(보이는 라디오) (0) | 2022.09.09 |
| 09.07 열 네 번째 수업(다형성, 추상화) (0) | 2022.09.07 |
| 09.06 열세 번째 수업(상속, 캡슐화) (0) | 2022.09.07 |