JAVA 객체지향 프로그래밍

인스턴스

수업소개

여러 상태의 클래스가 동시에 필요할 때는 클래스 앞에 new를 붙여서 클래스의 복제본을 만들어서 서로 다른 상태를 유지할 수 있습니다. 클래스의 복제본을 인스턴스라고 합니다. 이 수업에서는 인스턴스가 무엇인지, 인스턴스는 어떻게 만드는지를 소개합니다. 객체지향의 핵심이라고 할 수 있는 수업입니다. 

 

 

강의1

소스코드

변경사항

MyOOP.java

public class MyOOP {
    public static void main(String[] args) {
		Print p1 = new Print();
		p1.delimiter = "----";
		p1.A();
		p1.A();
		p1.B();
		p1.B();

		Print p2 = new Print();
		p2.delimiter = "****";
		p2.A();
		p2.A();
		p2.B();
		p2.B();
		
		
		p1.A();
		p2.A();
		p1.A();
		p2.A();
	}

Print.java 

class Print {
    public String delimiter = "";

	public void A() {
		System.out.println(delimiter);
		System.out.println("A");
		System.out.println("A");
	}

	public void B() {
		System.out.println(delimiter);
		System.out.println("B");
		System.out.println("B");
	}
}

 

 

댓글

댓글 본문
작성자
비밀번호
  1. 용자
    오오.. 감자맛님의 비유 감사합니다.
  2. 감자맛
    여러 대의 냉장고를 만들어 사용한다고 생각해보자.
    설계도(클래스)의 어떤 수치를 변경하게 되면, 만들어진 다른 냉장고의 해당 수치 또한 변경되어 생산된다. (e.g.: 설계도 상의 손잡이 크기를 바꾸면, 이후 만들어지는 모든 냉장고의 손잡이 크기가 바뀌어 생산된다.)
    그러나 설계도를 바탕으로 이미 생산된 냉장고 한대(인스턴스)의 손잡이 크기를 바꾼다고 생각해보자. 다른 냉장고에는 전혀 영향이 가지 않는다.
    이렇듯, 각각의 객체를 개별적으로 컨트롤 하기에 용이하다.
    대화보기
    • 감자맛
      클래스 : 원안 ( 설계도 )
      인스턴스 : 생산물 ( 고유 정체성을 가져서 식별됨 )
      클래스를 복제하여 각각의 인스턴스로 구별하여 활용하면
      번거로운 수정 없이 각각의 개체를 관리하기에 용이하다.
      같은 기능을 가지고 있으나 수치가 다른 각각의 개체로 사용할 수 있다.
    • ㄱㅎㅈ
      import java.io.IOException;
      이 코드가 들어가야 오류가 나지 않습니다.
    • 라또마니
      클래스 : 사람

      인스턴스: 이기호, 박정운, 유재석, 이문세, 레오나르드 디카프리오, 로버트 다우니 주니어, 왕조현
    • 먼지
      자동차에 비유하자면

      클래스 : 같은 내용의 변수나 함수를 반복해서 쓰지 않기 위함
      -> 클래스를 활용하면 흰색 자동차를 100개와 같이 '많이 만들기'가 쉬워짐

      인스턴스 : 클래스를 기반으로 생성된 여러개의 인스턴스들은 각기 다른 재료로 채울 수 있음
      -> 인스턴스를 활용하면 흰색자동차 100개, 빨간색 자동차 100개, 검정색 자동차 100개 와 같이 '다양한 색'의 자동차를 많이 만들기 쉬워짐
    • 이기호
      클래스를 생성하고 그 클래스를 통해 인스턴스를 복제(?)를 하게 되면 정리가 코드의 정리가 간결해지고 효율적으로 유지보수를 할 수 가있다. 라고 정의가 되어지는데 아직 좀 더 봐야할 것 같습니다. 감사합니다^^
    • 쑤우
      수강완료. 감사합니다~~
    • 박정운
      1. 클래스란?
      - 동일한 컨샙을 공유하는 기능들을 한 데 모은 것

      2. 클래스와 인스턴스의 차이점
      - 클래스는 한 번에 한 개의 변수만을 다룰 수 있습니다. => 다른 변수를 사용하려면 기존 변수를 없애야 합니다.
      - 인스턴스는 클래스를 변수별로 복제함으로써 여러개의 변수를 동시에 다룰 수 있습니다.
    • 허공
      (1) 인스턴스는 클래스의 복제본이라고 비유할 수 있다. (2) 어떤 클래스를 인스턴스화 해서 사용하려면 그 클래스의 멤버들(변수, 메소드)에 붙은 (클래스의 소속임을 정의하는) static을 지워줘야 한다. (3) 인스턴스 사용 시, 기존 클래스는 건드리지 않으면서 각각의 인스턴스 내에서 원하는 데이터 부분을 변경할 수 있다. 코드의 중복을 줄임으로써 코드를 훨씬 더 깔끔하게 정리정돈 할 수 있다.
    • 정중사
      인스턴스를 통해서 반복되던 명령들을 메소드에 담고담고 또 다른 클래스로 쪼개고쪼개고 점점더 단순한형태로 변해요! 그런데, 너무 추상적이어서 제 머리속이 점점 더 복잡해져요. ㅠㅠ 저는 익숙해지는데까지 시간이 좀더 필요할 거같아요.
    • 정이사
      클래스를 기반으로 인스턴스를 생성할 수 있다.
      인스턴스를 사용하면 매개변수를 바꿀 때 마다 다시 설정하지 않아도 된다. 인스턴스는 클래스의 매개변수 별로 설정할 수 있기 때문. 이 떄문에 인스턴스는 사용하려는 매개변수가 다양할 경우 편리하게 사용될 수 있다.
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기