메서드
자바에서 메서드를 사용하는 이유는 중복된 코드의 작성을 줄여 코드를 한눈에 알아보기 쉽게 할 수 있으며
코드의 유지와 보수하기 쉽게 해준다.
메서드 종류
표준 라이브러리 메서드 => 내장 메서드로 호출하여 사용하는 것들 말하는다 Scanner , Math 등이 여기 속한다.
사용자 정의 메서드 => 사용자가 필요에 의 메서드의 이름 매개변수 반환 유형 및 내부 로직을 정의한 메서드를 말한다.
메서드 기본 구조
[접근제한자] 반환유형 메서드명(매개변수) {
메서드 내용
}
public int div(int a,int b) {
int result=a/b;
return result;
}
이 메서드는 public라는 접근 제한자를 사용하며, 반환유형은 int 형이며 메서드 명은 div이고 매개변수는 a, b 가 있다.
이때 접근 제한자의 종류에는
1. public: 어떤 클래스에서든 접근할 수 있습니다. 다른 패키지에 속한 클래스에서도 접근할 수 있습니다.
2. protected: 동일한 패키지에 있는 클래스들과 해당 클래스를 상속한 하위 클래스에서만 접근할 수 있습니다. 다른 패키지에 있는 클래스에서는 접근할 수 없습니다.
3. default (package-private): 접근 지정자가 명시되지 않으면, 기본적으로 default 접근 지정자가 적용됩니다. default 접근 지정자는 동일한 패키지 내의 클래스들에서만 접근할 수 있도록 제한합니다.
4. private: 동일한 클래스 내에서만 접근할 수 있습니다. 다른 클래스에서는 접근할 수 없습니다.
반환유형의 종류
1. void: 메소드가 어떤 값을 반환하지 않음을 나타냅니다. 주로 작업을 수행하고 결과를 반환하지 않는 메소드에 사용됩니다.
2. 기본 데이터 유형 (Primitive Data Types): 메소드는 기본 데이터 유형(예: int, double, char, boolean 등)의 값을 반환할 수 있습니다.
메서드 오버로딩
-메서드명은 같지만 매개변수가 다른 메서드를 하나의 메서드명으로 정의하는 것을 말한다.
오버로딩 조건
- 메서드명이 같아야 한다.
- 매개변수의 자료형이나 개수가 달라야 한다.
메서드를 찾는 방법은 일단 매개변수가 나랑 일치한 메서드를 찾아간다. 없으면 자기 값을 넣을 수 있는 것을 찾아간다.
더 큰 타입을 찾아갈 수 있는 이유는 자동타입변환해서라도 실행이 가능한 것이 있으면 실행한다. 이때는 가장 위에 있는 것이 작동되기에 자동타입 변화해서 되기에 내가 원하는 메서드를 실행이 안될 수 도 있다.
Static 있는 메서드와 없는 메서드 차이
//매개변수가 있는 메서드
public static int div(int a,int b) {
int result=a/b;
return result;
}
int ans=div(10,2);
System.out.println(ans);
//static 선언 안한경우에는
Mehod01 myclass = new Mehod01(); //클래스로부터 객체 생성
int answer = myclass.div(15,5); //메소드 사용
System.out.println(answer);
static가 있는 메서드는 프로그램이 종료되기 전까지 메모리에 할당된 채로 존재하기에 객체를 생성하지 않고도 사용이 가능하다, static가 없는 메서드는 객체를 생성 후 메서드를 사용가능하다.
static가 없는 메서드를 인스턴스 메서드라 하면 이 메서드는 인스턴스 변수를 사용가능하다
static의 메서드에서 매개변수는 지역변수이기에 메서드 내에서 인스턴스 변수를 사용 불가능하다.
'자바 공부 > 자바' 카테고리의 다른 글
자바 추상클래스,인터페이스 (1) | 2024.04.14 |
---|---|
자바 - JDBC (0) | 2024.04.10 |
자바 접근제한자 (0) | 2024.04.10 |
자바 클래스 (0) | 2024.04.10 |
[자바] 변수 선언,데이터 타입, (0) | 2024.02.02 |