Programming/Java

[Java 객체지향 프로그래밍] 객체와 클래스

joah.k 2021. 2. 21. 15:12
728x90

자바는 대표적인 객체지향 프로그래밍 언어라고 한다. 그런데 여기서의 객체란 무엇일까? 

 

- '객체(Object)' 의 정의  

자바에서의 '객체' 개념을 이해하기에 앞서, 우리가 사는 세상에서의 '객체'는 우리가 표현할 수 있는 실제 세계의 모든 사물들을 뜻한다. 이는 눈에 보이고 만져지는 <물리적인 객체>와 보이지 않고 만져지지 않는 <개념적인 객체> 개념으로 나눌 수 있다. 

 

개념적인 객체 물리적인 객체 
동물 고양이, 토끼, 호랑이, 사자... 
필기구  연필, 샤프, 사인펜... 
자동차 K5, SM5... 

 

 

- '클래스(Class)' 의 정의

클래스란 객체와 관련된 데이터와 처리 동작들의 모음을 뜻한다. 쉽게 말해 객체에 대한 '설계도' 라고 볼 수 있다. 

클래스가 실체화된 것이 객체(object)라고 하며, 이를 실체화 하는 작업은 "오브젝트를 생성한다" 또는 "인스턴스화 한다" 등으로 표현한다. 

package javastudy;
class Poketmon{   // 클래스명:Poketmon
	// 필드(=멤버변수) 
    String name; 
	int power;  
    
    // 메서드 : 객체의 동작 정의
    void attack(){
    	System.out.println("백만 볼트 공격!");
        }
     }   
     
 public class MyPoketmon{
 	public static void main(String[] args){
    	Poketmon mymon = new Poketmon(); // new 연산자를 통해서 Poketmon 클래스를 객체로 생성할 수 있다.  
        
        //객체 변수 안에 접근하기 위해서 dot문법(.)사용해서 호출 
        
     	mymon.name = "피카츄";
        mymon.power = 100;
        System.out.println(mymon.name+ "가 " + mymon.power + "의 파워를 가지고 ");
        mymon.attack();
 		}
     }
 

 

 

클래스는 여러 가지로 쓰일 수 있는데, 메소드만 있는 클래스도 있다.  

 

class Calc{  
// 데이터를 포함하는 멤버 변수 없이 동작만을 가지고 있는 클래스 
	int add(int a, int b) {
		return a+b ; 
	}
}

public class Calculation {
	
	public static void main(String[] args) {
		// 객체 생성 
		Calc calc = new Calc();  // 객체변수 calc에 Calc 클래스 대입
		// 메서드 호출 
		int nReturn = calc.add(2, 4); 
		System.out.println("2+4=" + nReturn);
	}
}

 

클래스에 필드만 있는 경우도 있다. 

class Song{
	String singer;
	String title; 
}
public class MySong {

	public static void main(String[] args) {
		//객체 생성 
		Song song = new Song(); 
		song.singer ="IU";
		song.title = "celebrity";
		
		// 확인 
		System.out.println(song.title + " by " + "song.singer");
	}
}

 

 

이렇듯 클래스를 이해하기 위해서는 필드와 메소드 개념 이해가 중요하다.

 

 

 

728x90