메서드 (Method)

DONI·2021년 8월 19일
0

Java

목록 보기
30/46
post-thumbnail

🏹 메서드 (Method)

특정 기능을 수행하기 위한 코드들의 집합 (C언어의 함수(Function)와 동일한 기능)

  • 메서드를 작성하여 사용하는 이유
    • 불필요하게 중복되는 코드를 메서드로 정의하고 호출함으로써 코드의 가독성 향상
    • 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때 손쉽게 유지보수 가능

  ⭐ 메서드를 작성할 때는 되도록 하나의 메서드가
       하나의 기능만을 수행하도록 작성하는 것이 좋다.


🏹 메서드 예약어

구분전체
staticstatic 영역에 할당하여 객체 생성 없이 사용
final종단을 의미, 상속 시 오버라이딩 불가능 (기능 확장을 막기 위해 사용)
abstract내용부 정의가 없는 추상 메서드를 선언할 때 사용하며, 반드시 오버라이딩 해야 함
synchronized특정 메서드에서 여러 스레드가 동작할 경우 중복 실행 방지
공유 자원에 한 개의 스레드만 접근 가능 (동기화 처리)
static final
(final static)
static과 final의 의미를 둘 다 가짐 (혼합 형태)

🏹 메서드 반환형

구분전체
void반환형 없음 ⭐ 반환형이 없을 경우 반드시 작성 !
기본 자료형연산 수행 후 반환값이 기본 자료형일 경우 사용
배열연산 수행 후 반환값이 배열일 경우 배열의 주소값을 반환
클래스연산 수행 후 반환값이 해당 클래스 타입일 경우
해당 객체의 주소값을 반환 (클래스 == 타입)

🏹 메서드 매개변수

구분전체
기본 자료형기본형 매개변수 사용 시 값을 복사하여 전달
매개변수 값을 변경하여도 본래 값은 변경되지 않음
배열, 클래스배열, 클래스 등 참조형을 매개변수로 전달 시에는 데이터의 주소 값을 전달하기 때문에
매개변수를 수정하면 본래의 데이터가 수정됨 (얕은 복사)
가변인자매개변수의 개수를 유동적으로 설정하는 방법으로
가변 매개변수 외 다른 매개변수가 있으면 가변 매개변수를 마지막에 설정
* 방법 : (자료형 ... 변수명)

🏹 getter, setter 메서드 - 간접 접근 기능

  • getter 메서드 : 필드에 기록된 값을 읽어서 요청한 쪽으로 읽은 값을 넘기는 메서드
    public 속성자료형 get속성명 ( ) { return 속성명; }

  • setter 메서드 : 필드에 변경할 값을 전달 받아서 필드 값을 변경하는 메서드
    public void set속성명 (속성자료형 속성명) { this.속성명 = 속성명; }


🏹 return

메서드 안에 존재하는 값을 호출한 영역으로 반환해주는 것

  • STACK의 자료구조 : LIFO(Last - Input - First - Out)

🚩 소스코드

package kh.oop1.day04.exam;
public class Student {
	private int studentNo;
	private String studentName;
	
	// getter
	public int getStudentNo() {
		return studentNo;
	}
	
	public String getStudentName() {
		return studentName;
	}
	
	// setter
	public void setStudentNo(int studentNo) {
		this.studentNo = studentNo;
	}
	
	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}

}
package kh.oop1.day04.run;
import kh.oop1.day04.exam.Student;
public class Run {
	public static void main(String[] args) {
		Student st = new Student();
		st.setStudentNo(1);
		st.setStudentName("홍길동");
		
		System.out.println(st.getStudentNo());
		System.out.println(st.getStudentName());
	}

}
profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글