카카루1331
아틀리에 카카루!
카카루1331
전체 방문자
오늘
어제
  • 전체 (44)
    • 공학 (41)
      • 정보성 (11)
      • 에세이 (13)
      • 단상 (16)
      • 놀이 (1)
    • 인문 (3)
      • 생각 (3)

공지사항

  • 반갑습니다

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
카카루1331

아틀리에 카카루!

공학/에세이

객체지향: 클래스와 인스턴스

2020. 8. 16. 17:46

객체지향이란 무엇일까?
객체지향을 한마디로 말하긴 어렵다. 남에게 전달하기란 더 어렵다. 
별 수가 없다. 코드를 보면서 익혀나가는 수밖에는.

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
    카카루1331
    카카루1331
    A bitcoin lover

    티스토리툴바