이제 각각의 객체 그룹의 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 |