클래스와 객체 파트를 정리하려고 하는 데 정말 쉽지 않았다...!!!
하지만 내가 이해한 걸 잘 정리하고 중간중간 이해가 안된 부분이 있으면 잘 포착하길 바라는 마음이다!!
→ 객체를 먼저 정의하고 각 객체가 어떤 기능을 제공하고 객체 간 협력을 어떻게 구현할 것인지를 고민하는 것이다.
클래스 메소드내에서 다른 클래스의 메소드를 사용하며 객체 간 협력을 구현 할 수 있다.
이 부분은 추후에 또 나오니까 이런 예시가 있다는 것만 알면 좋을 것 같다.
✍️ 예시코드
class Passenger{
String name;
int money;
//돈과 이름을 설정하는 생성자
public Passenger(String name, int money) {
this.name = name;
this.money = money;
}
void takeBus (Bus name) {
name.take(1000);
this.money -= 1000;
}
}
class Bus{
String name;
int money;
int count;
public Bus(String name) {
this.name = name;
this.money = 0;
this.count = 0;
}
void take (int money) {
this.money += money;
this.count++;
System.out.println("Bus : 승객 탑승 완료");
}
}
public class Take {
public static void main(String[] args) {
Passenger seo = new Passenger("서현", 10000);
Bus bus100 = new Bus("100");
seo.takeBus(bus100);
}
}
👉 실행코드
//Passenger객체의 메소드를 실행했을 때 Bus의 메소드도 실행되는 것을 확인 할 수 있다.
Bus : 승객 탑승 완료
class
예약어와 다양한 접근제어자들 :public
,protected
,default
(아무것도 쓰지않았을 때 ,private
을 활용해서 선언할 수 있다. class Passenger{
String name;
int money;
void takeBus (Bus name) {
name.take(1000);
this.
money -= 1000;
}
}
Passenger seo = new Passenger("서현", 10000);
static
예약어를 통해 클래스 변수, 인스턴스 변수의 차이점에 대해 배운다. seo.money = 20000;
seo.takeBus(bus100);
객체지향언어의 특성과 앞으로 배울 부분에 대해서 간략하게 정리해봤다.
훌륭한 글이네요. 감사합니다.