본문 바로가기
Language/JAVA

JAVA 객체(2) - 메서드

by 파2RI 2023. 7. 18.

이제 각각의 객체 그룹의 name에 이름을 넣어줄 것이다. cat의 이름은 "나비"이다 이렇게!

 

그렇기 위해 일련의 과정을 해주는 기계?

 

메서드를 만들어 줄 것이다. : public void 메서드이름(타입 객체변수)

 

class Animal {

	 String name; // 객체 변수
	 
	 public void setName(String name) {
		 
		 this.name = name; 
		 // this에 객체(cat) 호출.객체 변수 = 그 객체에서 name으로 제시된 값을 대입해라
		 
	 } // 'setName'이라는 메서드 생성
	 
}

 

 

this.name = name;

 

을 보자. this는 cat 객체, dog 객체, horse 객체 등 각각의 객체마다 활용될 것이다.

 

그리고

 

String name;

 

으로 정의되었던 객체 변수 name을

 

this.name으로 객체 변수 호출을 하여 = name의 값을 넣어준다.

 

라는 것이 이 setName 메서드가 해주는 과정이다.

 

 

 

그렇다면 이제 Main 클래스에서 이 setName 메서드를 돌려보자.

 

cat.setName("나비"); // setName이라는 메서드 호출
		
		// cat 객체의 경우에는 setName 과정 중, 객체변수 'name'에 "나비"를 넣을 거에요 라는 선언
		// 즉 cat.name = "나비"

 

setName이라는 기계를 가져왔으면 "나비"라는 값을 입력해야한다.

 

setName 기계가 이름 넣어주는 과정은 해주니 딱 "나비" 이름만 대입해주면 된다.

 

 

 

Animal.java 클래스는

 

package classpractice;

 class Animal {

	 String name; // 객체 변수
	 
	 public void setName(String name) {
		 
		 this.name = name; 
		 // this에 객체(cat)호출.객체 변수 = 그 객체에서 name으로 제시된 값을 대입해라
		 
	 } // 'setName'이라는 메서드 생성
	 
}

 

 

PracticeAnimal.java 인 main 클래스는 

 

package classpractice;

public class Practiceanimal {

	public static void main(String[] args) {
	
		Animal cat = new Animal(); // Animal이라는 쿠키틀, 그것으로 찍어낸 객체 cat
		
		cat.setName("나비"); // setName이라는 메서드 호출
		
		// cat 객체의 경우에는 setName 과정 중, 객체변수 'name'에 "나비"를 넣을 거에요 라는 선언
		// 즉 cat.name = "나비"
		
		System.out.println(cat.name); // 객체 cat.객체변수 name
	
		
	
 }

}

 

나비

 

와 같이 결과가 나온다.

 

 

 

그렇다면 객체 dog와 horse도 만들어서 setName 기계를 써볼까?

 

package classpractice;

public class Practiceanimal {

	public static void main(String[] args) {
	
		Animal cat = new Animal(); // Animal이라는 쿠키틀, 그것으로 찍어낸 객체 cat
		
		cat.setName("나비"); // setName이라는 메서드 호출
		
		// cat 객체의 경우에는 setName 과정 중, 객체변수 'name'에 "나비"를 넣을 거에요 라는 선언
		// 즉 cat.name = "나비"
		
		
	/////////
		
		Animal dog = new Animal();
		dog.setName("뽀삐");
		
		Animal horse = new Animal();
		horse.setName("적토마");
	
		System.out.println(cat.name); // 객체 cat.객체변수 name
		System.out.println(dog.name);
		System.out.println(horse.name);
        
        /////////
	
 }

}

 

나비
뽀삐
적토마

 

와 같이 결과가 나온다.

 

 

여기에서 중요한 것은,

 

같은 객체변수 name을 썼음에도

 

객체마다 이건 공유되지 않는다!

 

즉 cat 객체의 name이 "나비"라고 해서

dog 객체의 name이 "나비"가 되지 않는 것이다.

 

다 따로따로!

'Language > JAVA' 카테고리의 다른 글

JAVA 객체(4) - 메서드 두 번째  (0) 2023.07.20
JAVA 객체(3) - 연습문제  (0) 2023.07.18
JAVA 객체(1) - 클래스  (0) 2023.07.18
JAVA for each 문  (0) 2023.07.17
JAVA List  (0) 2023.07.17