자바 공부/자바

자바 메서드

ari0930 2024. 4. 5. 19:03

메서드

자바에서 메서드를 사용하는 이유는 중복된 코드의 작성을 줄여 코드를 한눈에 알아보기 쉽게 할 수 있으며

코드의 유지와 보수하기 쉽게 해준다.

 

메서드 종류

표준 라이브러리 메서드 => 내장 메서드로 호출하여 사용하는 것들 말하는다 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