졸업작품 할때 파이썬 크롤링과
API로 실시간 대중교통 기능 개발을 팀원이 한적이 있다
나는 직접적으로 그 기능을 구현하진 않았지만 옆에서 봤을때
api를 잘 쓰면 좋을거 같다는 생각이 들었다
Naver Open API에 대해 알아보자
>> 네이버 서비스를 코드로 이용할 수 있는 서비스
https://developers.naver.com/products/intro/plan/plan.md
>> 사이트 들어가면 네이버 오픈 api 목록 및 안내가 잘 돼 있다
https://developers.naver.com/docs/serviceapi/search/shopping/shopping.md#%EC%87%BC%ED%95%91
>> 쇼핑 api주소이며 프로토콜과 파라미터 참고사항 및 요청예시와 응답까지 아주 잘 나와있다
이 방식대로 쓰면 네이버 오픈 api도 쉽게 잘 쓸 수 있다
>> api 동작 순서다
강의 정리
상속: 객체지향 프로그래밍의 핵심
상속(Inheritance)이란?
마치 가족 간에 특징이 전달되듯, 상속은 한 클래스(우리가 부르는 '부모 클래스')의 기능을
다른 클래스('자식 클래스')가 물려받는 과정, 이 과정을 통해, 이미 쓰여진 코드를 다시 사용하고,
필요에 따라 변형시켜 비슷한 클래스를 쉽고 빠르게 만들 수 있다
class Parent { ... }
class Child extends Parent { ... }
Parent pa = new Parent(); // 허용
Child ch = new Child(); // 허용
Parent pc = new Child(); // 허용
Child cp = new Parent(); // 오류 발생
Parent 클래스가 있고 Child 클래스가 Parent 클래스를 상속받는다
즉, Child 클래스는 Parent 클래스의 모든 특성과 메서드를 상속받는다
Parent pc = new Child(); << 업캐스팅
Child cp = new Parent(); << 다운캐스팅 ( 오류 발생 )
코드 재사용성 향상
상속은 마치 블록 쌓기 같다
기존의 블록(클래스) 위에 새로운 블록을 올려 더 크고 복잡한 구조를 만들 수 있다
이를 통해, 반복되는 코드를 줄이고, 유지보수와 개발 시간을 단축시킨다
확장성과 유연성
상속을 통해 기존 클래스의 기능을 그대로 유지하면서 새로운 기능을 추가하거나 변경할 수 있다
프로그램을 더욱 확장 가능하고 유연하게 만들어 준다
상속 실습 코드
부모 클래스
public class Car {
String color;
Integer speed;
Car(String color){
this.color = color;
speed = 0;
}
void accelerate() {
this.speed += speed;
}
void decelerate() {
speed -= 10;
}
void fullAccelerate(){
Integer speed = 1;
for(; speed <10; speed++){
this.speed += speed;
}
System.out.println(speed);
}
public void displayInfo() {
System.out.println("Car Color: " + color );
}
}
자식 클래스
public class ElectricCar extends Car {
private int batteryCapacity;
public ElectricCar(String color, int batteryCapacity) {
super(color);
this.batteryCapacity = batteryCapacity;
}
@Override
public void displayInfo() {
super.displayInfo();
System.out.println("Battery Capacity: " + batteryCapacity + " kWh");
}
}
public class GasolineCar extends Car {
private int fuelCapacity;
public GasolineCar(String color, int fuelCapacity) {
super(color);
this.fuelCapacity = fuelCapacity;
}
@Override
public void displayInfo() {
super.displayInfo();
System.out.println("Fuel Capacity: " + fuelCapacity + " liters");
}
}
Car 클래스는 기본적인 자동차의 속성(색상, 속도)과 동작(가속, 감속, 정보 출력)을 정의
ElectricCar와 GasolineCar 클래스는 Car 클래스를 상속받아
각각 전기 자동차와 휘발유 자동차의 특성을 추가로 정의
각 자식 클래스는 displayInfo 메서드를 오버라이드하여 부모 클래스의 정보 출력 기능을 확장 ,
전기 자동차는 배터리 용량을, 휘발유 자동차는 연료 용량을 추가로 출력
이런느낌으로 상속을 받을 수 있다
'TIL' 카테고리의 다른 글
TIL - 2024/05/27 (0) | 2024.05.27 |
---|---|
TIL - 2024/05/24 (0) | 2024.05.24 |
TIL - 2024/05/22 (0) | 2024.05.22 |
TIL - 2024/05/21 (0) | 2024.05.21 |
TIL - 2024/05/20 (2) | 2024.05.20 |