[JAVA] 객체지향 개념(1)

디벨롭영·2022년 9월 12일
0

JAVA강의노트

목록 보기
1/6
post-thumbnail

1. 클래스와 인스턴스 그리고 객체

객체를 프로그래밍적으로 만들기 위해 클래스와 인스턴스통해 객체를 만들고 객체지향 프로그래밍을 하게 된다!

클래스 : 일종의 객체를 만들기 위한 설계도
인스턴스 : 설계도를 보고 만든 제품

1-1 클래스와 인스턴스가 왜 필요하게 되었을까?


public static void main(String[] args) {

//아래 로직이 1000줄 있다고 가정하자!

System.out.println(10+15);
System.out.println(20+30);

   }
}

엄청난 중복이 발생 중, 프로그래밍의 중요한 원칙 중 하나 중복의 제거!
무언 값 +(더하기) 값이 중복되고 있음

이러한 중복을 없애기 위해 메서드를 사용하기 되었다.

public static void sum(int left, right){
system.out.println(left + right);

public static void main(String[] args){
sum(10, 15);
sum(20, 30);

이렇게 메서드를 만들 경우, 유지보수도 편리하고 직관적으로 보인다.
그런데 이것도 여러 문제가 있다.

메서드를 계속 쓰니 여러개 만들게 되면서 찾기도 힘들고, 보기도 어려워진다.
예를 들어,

public static void sum(int left, right){
system.out.println(left + right);
}

public static void avg(left, right) {
System.out.println((left+right)/2);
}

public static void main(String[] args){
int left, right;

left = 10;
right = 15; //group1의 파라미터

sum(left, right);
avg(left, right); // group1


left = 20;
right = 40; //group2의 파라미터

sum(left, right);
avg(left, right); // group2

해당 코드에 합계 뿐만 아니라 평균도 구해야 한다면?
위와 같이 메서드 avg(left, right)를 추가 해야한다.

그런데 프로그램이 커지면서(로직이 커지면서) 다른 사람이 연관 없는 코드를 추가하거나 수정하면서 파라미터와 메소드 사이가 멀어지게 된다.

이 말은 해당 코드를 유지보수하기가 어려워진다는 뜻, 예상하지 못한 로직이 들어 갈 수 있다는 것 == 코드가 섞이게 되면서 해당 메소드를 쓸 수 없게 된다.

이런 문제를 해결하기 위해, 어떻게 하면 변수 데이터와 연산의 상징인 메소드를 서로 연관되어 있는 것 끼리 그룹핑 할 것이냐? 이것에 대한 해답이 "객체지향"이었다.

[내용출처] 생활코딩 " Java 클래스와 인스턴스 그리고 객체지향"

profile
주니어 개발자를 위한 개발공부 노트

0개의 댓글