본문 바로가기
프로그래밍/자바(Java)

[Java] 자바 클래스, 메소드, 객체

by imfireguy 2021. 2. 24.
반응형

@Goumbik pixabay

목차

  - 자바 클래스(Java Class

  - 인스턴스 변수 및 인스턴스 변수 호출 방법

  - 메서드

 

자바 클래스(Java Class) 

클래스란 유사한 특징을 지닌 객체들의 속성을 묶어 놓은 집합체입니다.

예를 들자면 마트에는 라면, 치즈, 아이스크림, 양파 등등의 무수히 많은 것들이 있습니다.

이러한 것들을 특성을 하나로 묶는 하나의 명칭이 있는데 그것은 바로 상품이라는 단어입니다.

여기서 상품이라는 건 클래스이고 하나하나의 상품들이 객체라는 것입니다.

즉 쉽게 말해서 하나의 상위 개념인 상품 아래에 있는 과자하나의 객체라는 의미입니다.

다시 프로그래밍 개념으로 와서 생각하자면 하나의 클래스를 정의하고 그 클래스로부터 


하나의 실례를 만드는 것을 객체 또는 인스턴스를 생성한다 라고 말합니다.  

다시 말해 클래스는 객체를 만드는 기능을 합니다. 

클래스는 저장 값뿐만 아니라 setName과 같은 행동도 정의할 수 있습니다.

 

일단 클래스 Mart.java를 만들어 보았습니다.

 

public class Mart {
	
	
}

 

인스턴스 변수

Mart 클래스에다가 조금 더 내용을 추가해 보겠습니다. Mart 클래스로 만들어지는 객체들에 apple, egg, orange 등의 이름을 부여할 수 있게 해 보겠습니다. 

public class Mart {
	
	String name = "";
	
}

 

Mart 클래스에 name이라는 String 문자형 변수를 추가했습니다.

이렇게 추가되는 변수를 인스턴스 변수 또는 멤버 변수, 속성이라고 부릅니다.

 

인스턴스 변수는 name 하나만 선언했지만 상황에 따라서 여러 개가 필요하다면 여러개 선언해서 사용하시면 됩니다.

 

그럼 인스턴스 변수는 어떻게 사용하는지 접근방법을 살펴보도록 하겠습니다.

 

※인스턴스 변수 접근방법?

 

인스턴스. 변수로 접근하시면 됩니다. 

 

public class Mart {
	
	String name = "사과";
	
	public static void main(String[] args) {
		Mart apple = new Mart();
		System.out.println(apple.name);
		
	}

}

 

▼ 이클립스(Eclipse)로 결과를 보자면 아래처럼 선언한 결괏값이 사과로 노출되는 걸 볼 수 있습니다.

 

 

혹은 인스턴스 변수 앞에 static을 붙여주어도 위와 같은 결괏값을 얻을 수 있습니다. 

public class Mart {
	
	static String name = "사과";
	
	public static void main(String[] args) {		
		System.out.println(name);		
	}
}

 

메서드

클래스에는 인스턴스 변수와 더불어 메서드(Method)라는 것이 있습니다.

메서드는 클래스 내에 구현된 함수를 의미하는데 보통 함수라고 말하지 않고 메서드라고 이야기합니다.

 

자바스크립트에 있는 함수와 헷갈리지 않는 게 포인트입니다.

 

그리고 변수가 정적인 의미라면 메서드는 동적인 의미가 강합니다.

 

앞에서는 인스턴스 변수에 직접적으로 값을 선언했다면, 이제 메서드를 이용하여 Mart 클래스의 인스턴스 변수인

 

name에 값을 설정해 보겠습니다.

아래와 같이 setName 메서드를 추가해 보겠습니다.

 

public class Mart {
	
	String name;
	
	public void setName (String name) {
		this.name = name;
	}
	
	public static void main(String[] args) {
		Mart apple = new Mart();
		apple.setName("사과");		
		System.out.println(apple.name);		
	}
}

 

마찬가지로 이클립스로 결괏값을 본다면 아래처럼 사과라는 값이 출력되는 걸 볼 수 있습니다.

 

간단하게 설명을 하자면

 

public static void main(String [] args){

 

}

 

메인 메서드에서 Mart apple = new Mart();라는 클래스를 선언했습니다. 

 

그리고 사과라고 세팅해주었습니다.

 

apple.setName("사과");

 

이 "사과"는 자바에서 매개변수로 불립니다.

 

이 매개변수가 setName 메서드에서 보시면 String name입니다.

 

그리고 그 아래

 

this.name = name 

 

이라고 선언했는데 name이 자꾸 나와서 헷갈리실 수 있습니다.

 

this.name 은 위에 인스턴스 변수인 String name을 의미합니다.

 

그럼 자동적으로 name 은 매개변수인 public void setName(String name)을 의미합니다.

 

Tip) 

이 게지금 동일한 클래스이니 따로 import를 안 해도 되지만 혹시라도 클래스에서 다른 클래스에 있는 메서드에 값을

 

가져오고 싶을 때는 

 

클래스 변수  = new 클래스();

 

이렇게 선언하시고 그다음 import를 해주시면 됩니다. 혹은 선언한 클래스에 마우스를 가져가면 import 항목이 나오니

 

import 해주시면 됩니다.

 

그리고변수. 메서드(); 로 메서드를 가져올 수 있으니 참고 바랍니다.

 

 

반응형

댓글