일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 개발이 취미인 사람
- node.js
- state
- back-end
- spring boot
- 상속
- javascript
- 개발자
- SWIFT
- Nest.js
- front-end
- It
- 조건문
- swagger
- 자바
- react
- 코틀린
- component
- vue
- props
- AWS
- Producer
- file upload
- kafka
- class
- Kotlin
- restful api
- java
- 반복문
- Sequelize
- Today
- Total
개발이 취미인 사람
[Java] Class Method 사용법 본문
- 지난 시간
안녕하세요. 지난 시간에는 Java Class에 대해 알아봤습니다.
혹시 놓치고 오신 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드립니다... :) Class를 잘 알지 못하면 메서드를 잘 이해할 수 없습니다.
- 개요
이번 시간에는 클래스 메서드에 기본 구조와 방식에 대해 알아보겠습니다.
- Method 기본 구조
package com.company;
// 사람 클래스
public class Person {
/**
* @author Ryan
* @description 공격 메서드
* public 접근 제어자 (해당 메서드를 호출권한 설정)
* int return 타입 설정 (다른 자료형을 선언해도 됩니다)
* attack 메서드 명
*
* attack(String type, int hp) : 파라미터1, 파라미터2스
*
* @param {String} type // 공격 타입
* @param {String} hp // 상대방 hp
* @return {int} int // 상대방 hp
*/
public int attack(String type, int hp){
if(type == "오른손") {
hp += -10;
}else if(type == "왼손") {
hp += -5;
}
return hp;
}
}
package com.company;
public class Main {
public static void main(String[] args) {
//몬스터 체력
int monsterHP = 100;
//사람 클래스를 생성합니다.
Person person = new Person();
System.out.println("공격 전 몬스터 체력 : "+ monsterHP);
/*
사람 클래스에서 attack 메서드를 호출 합니다.
호출 할때 우리가 작성한 파라미터 값 두 개를 넣어줍니다.
그리고 반환 값 타입은 int 타입이기 때문에 int 변수에 새롭게 할당합니다.
*/
monsterHP = person.attack("오른손", monsterHP);
System.out.println("공격 후 몬스터 체력 : "+ monsterHP);
}
}
//실행 결과 콘솔 값
공격 전 몬스터 체력 : 100
공격 후 몬스터 체력 : 90
메서드는 Class안에서 선언이 가능하다. 메서드만 따로 선언은 불가능하며 클래스에 대한 개념을 잘 알아야 합니다.
메서드 기본 구조는 아래와 같습니다.
"접근제어자 = public, 리턴 타입 = int, 메서드 명 = attack, 파라미터 = (String type, int hp), 리턴 값 = return hp;"
주석에 설명을 자세히 적어놨습니다. 직접 코드를 작성해보세요. :) 실습이 답입니다.
- Method의 4가지 사용 방식
- 전달 값이 있고, 반환 값이 있는 메서드 (전달 O, 반환 O)
- 전달 값이 없고, 반환 값이 없는 메서드 (전달 X, 반환 X)
- 전달 값은 있고, 반환 값은 없는 메서드 (전달 O, 반환 X)
- 전달 값은 없고, 반환 값이 있는 메서드 (전달 X, 반환 O)
1. 전달 O, 반환 O
/**
* @author Ryan
* @description 공격 메서드 (전달 O, 반환 O)
* public 접근 제어자 (해당 메서드를 호출권한 설정)
* int return 타입 설정 (다른 자료형을 선언해도 됩니다)
* attack 메서드 명
*
* attack(String type, int hp) : 파라미터1, 파라미터2스
*
* @param {String} type // 공격 타입
* @param {String} hp // 상대방 hp
* @return {int} int // 상대방 hp
*/
public int attack(String type, int hp){
if(type == "오른손") {
hp += -10;
}else if(type == "왼손") {
hp += -5;
}
return hp;
}
처음 작성했던 메서드가 전달 값이 있고, 반환 값이 있는 메서드입니다.
2. 전달 X, 반환 X
package com.company;
// 사람 클래스
public class Person {
private int HP = 100;
/**
* @author Rayn
* @description 잠자기 메서드 (전달 X, 반환 X)
*
*/
public void sleep(){
if(this.HP == 100) {
System.out.println("체력이 100입니다.");
}else {
//체력 10 회복
this.HP += 10;
}
}
}
package com.company;
public class Main {
public static void main(String[] args) {
//사람 클래스를 생성합니다.
Person person = new Person();
// 잠자기 메서드 실행
person.sleep();
}
}
//실행 결과 콘솔화면
체력이 100입니다.
처음에 작성했던 코드를 보면 반환 타입이 있습니다. (int 자료형)
하지만 여기서는 void를 작성했습니다. void는 "공백이라는 뜻"입니다. 즉 "반환을 안 하겠다", "반환 값이 없다"라는 뜻입니다.
그렇다면 sleep 메서드는 전달과 반환 값이 없는 메서드입니다.
3. 전달 O, 반환 X
package com.company;
import java.util.ArrayList;
// 사람 클래스
public class Person {
private ArrayList<String> Items = new ArrayList<>();
/**
* @author Rayn
* @description 아이템 등록 메서드 (전달 O, 반환 X)
*
*/
public void addItem(String item){
this.Items.add(item);// 아이템 추가
for(String items : Items){
System.out.println(items); // 결과 확인
}
}
}
package com.company;
public class Main {
public static void main(String[] args) {
//사람 클래스를 생성합니다.
Person person = new Person();
//아이템 등록 메서드
person.addItem("사과");
}
}
//실행 결과 콘솔화면
사과
"사과"라는 아이템을 addItem 메서드를 통해 전달하고 해당 사과 아이템을 ArrayList에 추가하고 데이터를 출력해봤습니다.
4. 전달 X, 반환 O
package com.company;
// 사람 클래스
public class Person {
public int MP = 100;// 사람 마력
/**
* @author Ryan
* @description 마법 공격 메서드 (전달 X, 반환 O)
*
* @return {int} //마법 공격 반환
*/
public int magicAttack(){
//마나가 없다면 마법공격 할수 없다.
if(MP == 0){
System.out.println("마나를 회복해주세요.");
return 0;
}
//마나 감소
this.MP -= 10;
System.out.println("현재 마나 : "+this.MP);
return 10;
}
}
package com.company;
public class Main {
public static void main(String[] args) {
int monsterHP = 100;
//사람 클래스를 생성합니다.
Person person = new Person();
//마법 공격 호출 후 반환되는 데이터를 int 자료형으로 받는다.
int magicAttack = person.magicAttack();
//몬스터 체력을 깎는다.
monsterHP -= magicAttack;
System.out.println("몬스터 체력 : "+monsterHP);
}
}
//실행 결과 콘솔화면
현재 마나 : 90
몬스터 체력 : 90
마법 공격을 실행하고 마나가 있다면 10이라는 데이터를 반환했습니다.
자바 클래스에서 메서드를 사용하는 방식을 알아봤습니다.
이해가 안 가시는 분들은 댓글을 남겨주세요!. 감사합니다. :)
'언어(Programming Language) > Java' 카테고리의 다른 글
[Java] 오버로딩(Overloading)과 오버라이딩(Overriding) 개념 및 사용법 (1) | 2021.01.26 |
---|---|
[Java] 클래스 상속 개념 및 사용법 (0) | 2021.01.25 |
[Java] Class 개념 및 사용법 (0) | 2021.01.24 |
[Java] 반복문 for 문 for each 문 (0) | 2021.01.23 |
[Java] 반복문 while 문 (0) | 2021.01.23 |