메소드(method)와 변수 - 5
💡 학습 목표
1. 메소드와 함수에 차이점을 이해 한다.
2. 변수의 위치에 따라 지역변수와 멤버 변수로 부를 수 있다.
package basic.ch07;
/**
* 객체의 속성은 멤버 변수로 객체의 기능은 메서드로 구현 한다.
*/
public class Student {
// 멤버 변수
// 특징 - 초기화 값을 넣지 않는다면 기본 값으로 초기화 된다.
// new .. 생성장(); --> heap 메모리에 올라 갔을 시 값이 없다면 기본값으로 초기화 된다.
int studentID;
String studentName;
String address;
// 메서드 설계하기
public void study() {
System.out.println(studentName + "학생이 공부를 합니다.");
}
public void breakTime() {
System.out.println(studentName + "학생이 휴식을 합니다.");
}
public void showInfo() {
System.out.println("------------상태창------------");
System.out.println("학생 ID : " + studentID);
System.out.println("학생 이름 : " + studentName);
System.out.println("학생 주소 : " + address);
}
// 메서드란?
// 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
// 멤버 함수(member function) 이라고도 한다.
// 메서드 - 멤버 변수를 활용해서 기능을 구현한다.
} // end of class
package basic.ch07;
public class StudentMainTest {
public static void main(String[] args) {
Student student1 = new Student();
student1.studentID = 1001;
student1.studentName = "샤코";
student1.address = "푸른언덕";
student1.study();
student1.breakTime();
student1.showInfo();
Student student2 = new Student();
student2.studentID = 2001;
student2.studentName = "야스오";
student2.address = "붉은언덕";
student2.showInfo();
} // end of main
// 함수
// 자바에서 함수란 객체와 상관없이 독립적으로
// 기능을 수행하는 일련의 코드 묶음
static double addDouble(double d1, double d2) {
return d1 + d2;
}
} // end of class
연습 문제 포함
package basic.ch07;
/**
* 객체의 속성은 멤버 변수로 객체의 기능은 메서드로 구현 한다.
*/
public class Student {
// 멤버 변수
// 특징 - 초기화 값을 넣지 않는다면 기본 값으로 초기화 된다.
// new .. 생성장(); --> heap 메모리에 올라 갔을 시 값이 없다면 기본값으로 초기화 된다.
int studentID;
String studentName;
String address;
// 메서드 설계하기
public void study() {
System.out.println(studentName + "학생이 공부를 합니다.");
}
public void breakTime() {
System.out.println(studentName + "학생이 휴식을 합니다.");
}
public void showInfo() {
System.out.println("------------상태창------------");
System.out.println("학생 ID : " + studentID);
System.out.println("학생 이름 : " + studentName);
System.out.println("학생 주소 : " + address);
}
// 메서드란?
// 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
// 멤버 함수(member function) 이라고도 한다.
// 메서드 - 멤버 변수를 활용해서 기능을 구현한다.
// 연습 문제 (메소드를 정의해 보세요)
// 1. 시험을 친다. studentID + "학생이 시험을 친다."
public void takeTest() {
System.out.println(studentID + "번 학생이 시험을 친다.");
}
// 2. 청소를 한다. cleanUp, studentName + " 학생이 청소를 한다."
public void cleanUp() {
System.out.println(studentName + " 학생이 청소를 한다.");
}
} // end of class
자유 실습
두 개의 캐릭터를 생성해 공격을 주고 받아 한쪽의 체력이 0이하가 되면 체력이 남은 쪽이 승리하는 코드
package basic.ch07;
public class Warrior {
String name;
int level;
int str;
int health;
public void showInfo() {
System.out.println("----------상태창----------");
System.out.println("이름 : " + name);
System.out.println("레벨 : " + level);
System.out.println("힘 : " + str);
System.out.println("체력 : " + health);
System.out.println("공격력 : " + attakPower());
System.out.println("방어력 : " + defensePower());
}
public int attakPower() {
return (level * 10) + (str * 5);
}
public int defensePower() {
return (level * 10) + 100;
}
}
package basic.ch07;
public class WarriorMainTest {
public static void main(String[] args) {
Warrior ork = new Warrior();
ork.name = "오크";
ork.level = 10;
ork.str = 55;
ork.health = 1580;
Warrior human = new Warrior();
human.name = "인간";
human.level = 12;
human.str = 70;
human.health = 1200;
ork.showInfo();
human.showInfo();
int redTeam = ork.health;
int blueTeam = human.health;
int i = 0;
boolean flag = true;
while (flag) {
i++;
redTeam -= (human.attakPower() - ork.defensePower());
blueTeam -= (ork.attakPower() - human.defensePower());
System.out.println("---------" + i + "번째 턴 결과 -----------");
System.out.println("오크의 남은체력 : " + redTeam);
System.out.println("인간의 남은체력 : " + blueTeam);
if (redTeam < 0 && blueTeam < 0) {
System.out.println("비겼습니다.");
break;
} else if (redTeam < 0) {
System.out.println("인간이 이겼습니다. ");
break;
} else if (blueTeam < 0) {
System.out.println("오크가 이겼습니다. ");
break;
}
}
}
}
결과(콘솔창)
----------상태창----------
이름 : 오크
레벨 : 10
힘 : 55
체력 : 1580
공격력 : 375
방어력 : 200
----------상태창----------
이름 : 인간
레벨 : 12
힘 : 70
체력 : 1200
공격력 : 470
방어력 : 220
---------1번째 턴 결과 -----------
오크의 남은체력 : 1310
인간의 남은체력 : 1045
---------2번째 턴 결과 -----------
오크의 남은체력 : 1040
인간의 남은체력 : 890
---------3번째 턴 결과 -----------
오크의 남은체력 : 770
인간의 남은체력 : 735
---------4번째 턴 결과 -----------
오크의 남은체력 : 500
인간의 남은체력 : 580
---------5번째 턴 결과 -----------
오크의 남은체력 : 230
인간의 남은체력 : 425
---------6번째 턴 결과 -----------
오크의 남은체력 : -40
인간의 남은체력 : 270
인간이 이겼습니다.
'Java > Java 객체 지향 핵심' 카테고리의 다른 글
생성자(constructor) - 7 (0) | 2024.04.16 |
---|---|
RunTime Data Area - 6 (0) | 2024.04.15 |
함수와 만들기 {연습 문제} (1) | 2024.04.15 |
함수와 메서드 - 4 (0) | 2024.04.15 |
객체에 값 할당하기 - 3 (0) | 2024.04.15 |