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

디벨롭영·2023년 8월 8일
0

JAVA강의노트

목록 보기
6/6
post-thumbnail

클래스와 객체의 관계

클래스와 객체를 많은 비유로 강의해주시지만,, 가장 아하?했던 비유라면
클래스(빈 깡통? 틀 느낌) -> new로 객체 생성하여 실물을 만들어 내는 것
사실 나는 그냥 클래스 설계 후, 객체 생성 코드를 100번쯤 작성해보니 이해가 되었다

그냥 왜왜왜? 하면서 파고들지 말고 근데 일단은 모르겠으면 가벼운 마음으로 예제코드를 작성해보자! 반복이 곧 이해가 될 것이다

꼭 기억할 사항은 클래스를 만들고 new로 그 클래스를 객체화(빈 깡통을 사용할 수 있게하고)하고 그 클래스의 기능(메서드, 연산이나 출력 등등)을 c1(참조변수)으로 접근해서 사용한다!

class Calculator{
// class라는 키워드의 의미 : 컴퓨터에게 지금부터 calculator라는 객체의 설계도를 알려줄게!라는 뜻
// 아래 로직들이 그 설계도 내용


       int left, right; // 변수 선언
       
       public void setOprands(int left, int right){
       //아래 Main 메서드에 있던 그 메서드와 동일한 메서드
       
       this.left = left; // left, this.left == 10
       this.right = right; // right, this.right == 20
       
       //this.left와 left의 차이는 무엇인가?
       //this는 우리가 생성한 참조변수 c1이 가르키는(담겨있는) c1인스턴스
       
       }
       
       public void sum(){
       System.out.println(this.left+this.right);
       }
       
       public void avg(){
       System.out.println((this.left+this.right)/2);
       
       }
   }
     
 public class CalculatorDemo {
 
      public static void main(String[] args){
      
      Calculator c1 = new Calculator();
      c1.setOprands(10,20);
      // c1(참조변수, 객체를 다룰 수 있는 리모컨)으로 c1이 가르키고 있는 객체에 접근할 수 있고 
      // setOprands메서드의 매개변수에 각각 int left, int righ에 10, 20 대입할 수 있게 된다.
     
      c1.sum();
      c1.avg(); 

      
      Calculator c2 = new Calculator();
      c1.setOprands(20,40);
      c1.sum();
      c1.avg();
      
      }
  }    

객체를 볼 때 프로그램 안의 독립된 하나의 프로그램으로 보자!

하나의 프로그램 안에 변수 + 메서드가 있듯이 객체도 변수와 메서드의 집합이다!

객체와 인스턴스의 차이점?

굳이 구분할 필요는 없다고 생각되지만 구분을 하자면 아래와 같다.

객체 : 보통 모든 인스턴스를 대표하는 용어
인스턴스 : 특정 클래스로부터 만들어진 객체
Ex) Calculator 클래스로 만들어진 객체를 Calculator인스턴스라고 한다.

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

0개의 댓글