반응형
복습
https://blue-dot.tistory.com/57
인생을 몇 년차를 살든 우리에게 필요한 것과 잃으면 안되는 것에 대한 것을 클래스와 메소드를 활용해서 작성해볼게요.
this() 를 기필코 쓰겠다.
처음에 이렇게 작성했을 때에는 문법적으로는 맞지만 값에 오류가 떴어요.
자꾸만... 0년차를 살게 되는 거예요.
package day14;
class FeelingSoGood{
public int a;
public void myage(int a) {
this.a = a;
}
public void love(String n) {
System.out.println("인생 "+ a + "년차, 필요한건 "+ n + "이야.");
}
public void fire(String f) {
System.out.println("우리가 잃으면 안되는 것은 " + f + "이야.");
}
}
public class Test05 {
public static void main(String[] args) {
FeelingSoGood good = new FeelingSoGood();
good.love("사랑");
good.myage(5);
good.fire("열정");
}
}
이렇게요... 왜 자꾸 0년차밖에 살지 못하나 했어요...
그런데 이것은 작성의 순서가 잘못 작성되었기 때문이에요.
FeelingSoGood good = new FeelingSoGood();
의 새로운 good 인스턴스가 생성되면서 그 안의 메소드를 순차적으로 실행하는데
myage 의 순서가 love의 아래에 있었기 때문입니다.
love 메소드가 먼저 실행되었기 때문에 그 안에 있는 참조변수 a의 값은
아직까지 int a 의 상태이기 때문에 0의 값이 출력됩니다.
그렇기 때문에 순서적으로 myage를 사랑의 위로 올리고
myage 의 값이 적용이 된 후에 love를 출력해야 그 값이 반환 됩니다.
package day14;
class FeelingSoGood{
public int a;
public void myage(int a) {
this.a = a;
}
public void love(String n) {
System.out.println("인생 "+ a + "년차, 필요한건 "+ n + "이야.");
}
public void fire(String f) {
System.out.println("우리가 잃으면 안되는 것은 " + f + "이야.");
}
}
public class Test05 {
public static void main(String[] args) {
FeelingSoGood good = new FeelingSoGood();
good.myage(5);
good.love("사랑");
good.fire("열정");
}
}
자바와 파이썬을 공부한지 14일 째 ... 여전히 모르는 것은 투성이지만 하나씩 해봅니다.
package day14;
class FeelingSoGood{ // 느낌 좋아보이는 클래스 생성
public int a;
public void myage(int a) { // 참조변수 int a를 갖는 myage 클래스 생성
this.a = a; // a의 값은 자기 자신인 a의 값을 가집니다.
// 그렇기 때문에 int a에 값을 주면 변수 a는 동일한 변수 이름으로 그 값을 취해요.
}
public void love(String n) {
System.out.println("인생 "+ a + "년차, 필요한건 "+ n + "이야."); // a 변수가 참조되어야 하기 때문에 a를 반환하는 myage 메소드는 love 메소드보다 상위에 있어야 합니다.
}
public void fire(String f) {
System.out.println("우리가 잃으면 안되는 것은 " + f + "이야.");
}
}
public class Test05 {
public static void main(String[] args) {
FeelingSoGood good = new FeelingSoGood(); // 느낌 좋은 클래스를 찍어서 느낌 좋은 인스턴스를 만들어냅니다.
good.myage(5); // 와플 기계처럼 느낌 좋은 와플들을 만들어내요.
good.love("사랑");
good.fire("열정");
}
}
>> 인생 5년차, 필요한건 사랑이야.
우리가 잃으면 안되는 것은 열정이야. <<
반응형
'자바 > 자바 복습 되새김질' 카테고리의 다른 글
자바 복습. 공부한 내용들의 간단 리뷰! (0) | 2022.11.08 |
---|---|
자바 복습. 클래스Class (0) | 2022.11.02 |
자바 복습. 인터페이스 (0) | 2022.11.01 |
자바 복습. 상수 constant, 리터럴 literal (0) | 2022.10.27 |
자바 복습. 변수의 선언 (0) | 2022.10.27 |