객체지향이란 무엇일까?
객체지향을 한마디로 말하긴 어렵다. 남에게 전달하기란 더 어렵다.
별 수가 없다. 코드를 보면서 익혀나가는 수밖에는.
public class example {
public static void main(String[] args) {
String name = "Smith";
int height = 150;
String Gender = "Male";
System.out.println("Hi! My name is " + name);
}
}
인간을 코드로 표현하려면 어떻게 해야할까?
다 표현할 수는 없다. 추상화는 필수!
추상적으로 표현할래도 인간의 특징은 다양하다.
여러 변수가 필요하다. 이름을 우선 부여해주자.
신장도 필요하고 성별도 필요하다.
추상화 완료? 해피한 것 같다.
그런데 여러 사람을 다뤄야 한다면 어떨까?
선언과 할당에 많은 반복이 필요하다.
게다가 전역 변수가 여러개 생긴다는 문제도 있다.
결국엔 코드가 아니라 빽빽이가 될 것이다.
해피하지 않다.
중복되는 것들을 줄일 수는 없을까?
class Human {
String name;
int height;
int age;
public Human (String name, int height, int age) {
this.name = name;
this.height = height;
this.age = age;
}
public void Hi() {
System.out.println("안녕, 내 이름은 " + name + "!");
}
}
public class example2 {
public static void main(String[] args) {
Human hu_1 = new Human("짱구", 130, 5);
hu_1.Hi();
Human hu_2 = new Human("철수", 135, 5);
hu_2.Hi();
}
}
클래스를 이용해보자.
공통적인 변수가 있지만 그 값은 사람마다 달라야 한다.
그렇다면 값은 나중에 할당해주자. 언제? 인스턴스를 생성할 때.
이것의 구현은 this로 가능하다.
this를 이용하면 인스턴스 입장에서 변수에 접근할 수 있다.
예컨대 인스턴스 hu_1의 이름은 짱구이고, 인스턴스 hu_2의 이름은 철수다.
'공학 > 에세이' 카테고리의 다른 글
비전공&고졸 개발자 취업 이야기: 나도 할 수 있을까 (2편) (0) | 2020.10.04 |
---|---|
비전공&고졸 개발자 취업 이야기: 늦은 시작 (1편) (0) | 2020.10.02 |
유비쿼터스 컴퓨팅 (0) | 2020.08.17 |
쉽게 설명하는 '객체지향 프로그래밍(OOP)' (0) | 2020.08.17 |
코딩 배우지 마라 (0) | 2020.08.16 |