Jump2Java 05장. 객체지향 프로그래밍
- 메소드
메소드
- 클래스 내에 구현된 함수
- 메소드를 이용한 객체 변수에 값 넣기
- setName 메소드
- 입력: String name
- 리턴: void (리턴값 없음)
- setName 메소드
public class Animal {
String name;
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
Animal cat = new Animal();
cat.setName("Aeong2");
System.out.println(cat.name);
}
}
main 함수에서 cat.setName()을 통해 cat 객체에 의해 메소드를 호출한다.
- 이때 메소드에서 this는 cat 객체가 되어 cat.name = "Aeong2"; 가 된다.
- 객체 변수는 공유되지 않는다.
public static void main(String[] args) {
Animal cat = new Animal();
cat.setName("Aeong2");
Animal dog = new Animal();
dog.setName("Daengdaeng2");
System.out.println(cat.name);
System.out.println(dog.name);
}
/* 출력 결과
Aeong2
Daengdaeng2
*/
- setName이 두 번 호출하므로 name은 이후에 바뀐 "Daengdaeng2"로 전부 바뀔 것으로 예상할 수 있다.
- 하지만, cat 객체에 대한 name과 dog 객체에 대한 name은 각각 다른 객체 변수이므로 이 둘은 독립적으로 유지된다.
- 계산기 메소드
- Test 메소드
- 입력: int a, int b
- 리턴: int a+b
- Test 메소드
public class Test {
public int sum(int a, int b) {
return a+b;
}
public static void main(String[] args) {
int a = 3;
int b = 4;
Test myTest = new Test();
int c = myTest.sum(a, b);
System.out.println(c);
}
}
// 출력결과: 7
- 입력값이 없는 메소드
- Greeting 메소드
- 입력: 없음
- 리턴: String 자료형
- Greeting 메소드
public class Greeting {
public String Eng() {
return "Hi";
}
public static void main(String[] args) {
Greeting myGreeting = new Greeting();
String say = myGreeting.Eng();
System.out.println(say);
}
}
- 메소드로 객체 전달 시 객체 변수 변경 가능
class Updater {
public void update(Counter counter) {
counter.count++;
}
}
public class Counter {
int count = 0;
public static void main(String[] args) {
Counter myCounter = new Counter();
System.out.println("before update: " + myCounter.count);
Updater myUpdater = new Updater();
myUpdater.update(myCounter);
System.out.println("after update: " + myCounter.count);
}
}
/* 출력결과
before update: 0
after update: 1
*/
'Application > Java' 카테고리의 다른 글
[Jump2Java] 05장 객체지향 프로그래밍 06 (0) | 2021.09.14 |
---|---|
[Jump2Java] 05장 객체지향 프로그래밍 05 (0) | 2021.09.14 |
[Jump2Java] 05장 객체지향 프로그래밍 04 (0) | 2021.09.14 |
[Jump2Java] 05장 객체지향 프로그래밍 03 (0) | 2021.09.14 |
[Jump2Java] 05장 객체지향 프로그래밍 01 (0) | 2021.09.14 |
댓글