logo

자바의 메소드

일반적으로 방법 어떤 작업을 수행하는 방법입니다. 마찬가지로, 자바의 메소드 특정 작업을 수행하는 명령 모음입니다. 코드의 재사용성을 제공합니다. 다음을 사용하여 코드를 쉽게 수정할 수도 있습니다. 행동 양식 . 이 섹션에서는 다음 내용을 학습합니다. Java의 메소드란 무엇인지, 메소드 유형, 메소드 선언, 그리고 Java에서 메소드를 호출하는 방법 .

Java의 메소드란 무엇입니까?

방법 특정 작업이나 작업을 수행하기 위해 함께 그룹화된 코드 블록, 명령문 모음 또는 코드 세트입니다. 이는 다음을 달성하는 데 사용됩니다. 재사용 성 코드. 우리는 메소드를 한 번 작성하고 여러 번 사용합니다. 우리는 코드를 반복해서 작성할 필요가 없습니다. 또한 다음을 제공합니다. 쉬운 수정 그리고 가독성 코드 덩어리를 추가하거나 제거하기만 하면 됩니다. 메소드는 호출하거나 호출할 때만 실행됩니다.

Java에서 가장 중요한 메소드는 기본() 방법. main() 메소드에 대해 더 자세히 알고 싶다면 링크를 클릭하세요. https://www.javatpoint.com/java-main-method .

메소드 선언

메서드 선언은 가시성, 반환 유형, 이름, 인수 등 메서드 속성에 대한 정보를 제공합니다. 그것은 다음과 같이 알려진 6개의 구성 요소를 가지고 있습니다. 메소드 헤더 , 다음 그림에 표시된 것처럼.

자바의 메소드

방법 서명: 모든 메소드에는 메소드 서명이 있습니다. 메소드 선언 부분입니다. 여기에는 다음이 포함됩니다. 메소드 이름 그리고 매개변수 목록 .

액세스 지정자: 액세스 지정자 또는 수정자는 메서드의 액세스 유형입니다. 메소드의 가시성을 지정합니다. 자바가 제공하는 액세스 지정자의 유형:

    공공의:애플리케이션에서 공개 지정자를 사용하면 모든 클래스에서 이 메서드에 액세스할 수 있습니다.사적인:개인용 액세스 지정자를 사용하면 메서드가 정의된 클래스에서만 메서드에 액세스할 수 있습니다.보호됨:보호된 액세스 지정자를 사용하면 동일한 패키지 또는 다른 패키지의 하위 클래스 내에서 해당 메서드에 액세스할 수 있습니다.기본:메소드 선언에 액세스 지정자를 사용하지 않으면 Java는 기본적으로 기본 액세스 지정자를 사용합니다. 동일한 패키지에서만 볼 수 있습니다.

반환 유형: 반환 유형은 메서드가 반환하는 데이터 유형입니다. 기본 데이터 유형, 객체, 컬렉션, void 등이 있을 수 있습니다. 메서드가 아무것도 반환하지 않으면 void 키워드를 사용합니다.

마크다운 각주

메소드 이름: 메소드의 이름을 정의하는 데 사용되는 고유한 이름입니다. 메소드의 기능과 일치해야 합니다. 두 숫자를 뺄셈하는 메소드를 생성하는 경우 메소드 이름은 다음과 같아야 합니다. 빼기(). 메소드는 해당 이름으로 호출됩니다.

매개변수 목록: 쉼표로 구분되고 괄호 쌍으로 묶인 매개변수 목록입니다. 여기에는 데이터 유형과 변수 이름이 포함됩니다. 메소드에 매개변수가 없으면 괄호를 비워 두십시오.

메소드 본문: 메소드 선언 부분입니다. 여기에는 수행할 모든 작업이 포함됩니다. 이는 중괄호 쌍으로 묶여 있습니다.

메소드 이름 지정

메서드를 정의하는 동안 메서드 이름은 다음과 같아야 한다는 점을 기억하세요. 동사 그리고 다음으로 시작하세요 소문자 편지. 메소드 이름이 세 단어 이상인 경우 이름은 동사 뒤에 형용사 또는 명사가 와야 합니다. 여러 단어로 구성된 메소드 이름에서 각 단어의 첫 글자는 다음과 같아야 합니다. 대문자 첫 번째 단어만 제외하고. 예를 들어:

단일 단어 방법 이름: 합계(), 면적()

다중 단어 메소드 이름: AreaOfCircle(), 문자열비교()

메소드가 동일한 클래스의 다른 메소드 이름과 동일한 이름을 가질 수도 있습니다. 메소드 오버로딩 .

방법의 종류

Java에는 두 가지 유형의 메소드가 있습니다.

  • 사전 정의된 방법
  • 사용자 정의 방법

사전 정의된 방법

Java에서 사전 정의된 메소드는 Java 클래스 라이브러리에 이미 정의된 메소드를 사전 정의된 메소드라고 합니다. 그것은 또한 다음과 같이 알려져 있습니다. 표준 라이브러리 방법 또는 내장 메소드 . 언제든지 프로그램에서 호출하여 이러한 메서드를 직접 사용할 수 있습니다. 미리 정의된 일부 방법은 다음과 같습니다. 길이(), 같음(), CompareTo(), sqrt(), 등. 프로그램에서 미리 정의된 메소드 중 하나를 호출하면 해당 메소드와 관련된 일련의 코드가 이미 라이브러리에 저장되어 있는 백그라운드에서 실행됩니다.

미리 정의된 모든 메서드는 클래스 내부에 정의됩니다. 와 같은 인쇄() 메소드는 java.io.PrintStream 수업. 메소드 내부에 작성한 명령문을 인쇄합니다. 예를 들어, 인쇄('자바') , 콘솔에 Java를 인쇄합니다.

미리 정의된 메서드의 예를 살펴보겠습니다.

Demo.java

 public class Demo { public static void main(String[] args) { // using the max() method of Math class System.out.print('The maximum number is: ' + Math.max(9,7)); } } 

산출:

 The maximum number is: 9 

위의 예에서는 미리 정의된 세 가지 방법을 사용했습니다. 메인(), 프린트(), 그리고 최대() . 이러한 메서드는 미리 정의되어 있으므로 선언 없이 직접 사용했습니다. print() 메소드는 인쇄스트림 콘솔에 결과를 출력하는 클래스입니다. max() 메소드는 수학 두 숫자 중 더 큰 숫자를 반환하는 클래스입니다.

또한 링크를 사용하여 미리 정의된 메서드의 메서드 서명을 볼 수도 있습니다. https://docs.oracle.com/ . 링크를 통해 max() 메소드 서명을 보면 다음을 찾을 수 있습니다.

자바의 메소드

위의 메소드 서명에서 메소드 서명에 액세스 지정자가 있음을 알 수 있습니다. 공공의 , 비접근 한정자 공전 , 반환 유형 정수 , 메소드 이름 최대(), 매개변수 목록 (정수 a, 정수 b). 위의 예에서는 메소드를 정의하는 대신 메소드를 호출했습니다. 이것이 미리 정의된 방법의 장점입니다. 프로그래밍을 덜 복잡하게 만듭니다.

마찬가지로 print() 메서드의 메서드 서명도 볼 수 있습니다.

사용자 정의 방법

사용자나 프로그래머가 작성한 메소드는 다음과 같이 알려져 있습니다. 사용자 정의 방법. 이러한 방법은 요구 사항에 따라 수정됩니다.

사용자 정의 방법을 만드는 방법

숫자가 짝수인지 홀수인지 확인하는 사용자 정의 메서드를 만들어 보겠습니다. 먼저 메소드를 정의하겠습니다.

 //user defined method public static void findEvenOdd(int num) { //method body if(num%2==0) System.out.println(num+' is even'); else System.out.println(num+' is odd'); } 

우리는 위의 findevenodd()라는 메소드를 정의했습니다. 매개변수가 있습니다. 하나에 int 유형입니다. 이 메소드는 어떤 값도 반환하지 않으므로 void를 사용했습니다. 메서드 본문에는 숫자가 짝수인지 홀수인지 확인하는 단계가 포함되어 있습니다. 숫자가 짝수이면 숫자를 인쇄합니다. 짝수이다 , 그렇지 않으면 숫자를 인쇄합니다 이상하다 .

사용자 정의 메서드를 호출하거나 호출하는 방법

메소드를 정의한 후에는 호출해야 합니다. 프로그램에서 메소드를 호출하는 것은 간단합니다. 사용자 정의 메소드를 호출하거나 호출하면 프로그램 제어가 호출된 메소드로 이전됩니다.

 import java.util.Scanner; public class EvenOdd { public static void main (String args[]) { //creating Scanner class object Scanner scan=new Scanner(System.in); System.out.print('Enter the number: '); //reading value from the user int num=scan.nextInt(); //method calling findEvenOdd(num); } 

위의 코드 조각에서 컴파일러가 다음 줄에 도달하자마자 findEvenOdd(숫자), 제어를 메서드로 전송하고 그에 따라 출력을 제공합니다.

두 코드 조각을 하나의 프로그램으로 결합하고 실행해 보겠습니다.

다른 경우에는 bash

EvenOdd.java

 import java.util.Scanner; public class EvenOdd { public static void main (String args[]) { //creating Scanner class object Scanner scan=new Scanner(System.in); System.out.print('Enter the number: '); //reading value from user int num=scan.nextInt(); //method calling findEvenOdd(num); } //user defined method public static void findEvenOdd(int num) { //method body if(num%2==0) System.out.println(num+' is even'); else System.out.println(num+' is odd'); } } 

출력 1:

 Enter the number: 12 12 is even 

출력 2:

 Enter the number: 99 99 is odd 

호출 메서드에 값을 반환하는 다른 프로그램을 살펴보겠습니다.

다음 프로그램에서는 다음과 같은 메서드를 정의했습니다. 추가하다() 두 숫자를 합산한 것입니다. 정수형의 두 가지 매개변수 n1과 n2가 있습니다. n1과 n2의 값은 각각 a와 b의 값에 해당합니다. 따라서 이 메소드는 a와 b의 값을 더하여 변수 s에 저장하고 그 합계를 반환합니다.

Addition.java

 public class Addition { public static void main(String[] args) { int a = 19; int b = 5; //method calling int c = add(a, b); //a and b are actual parameters System.out.println('The sum of a and b is= ' + c); } //user defined method public static int add(int n1, int n2) //n1 and n2 are formal parameters { int s; s=n1+n2; return s; //returning the sum } } 

산출:

 The sum of a and b is= 24 

정적 방법

static 키워드를 갖는 메소드를 정적 메소드라고 합니다. 즉, 클래스의 인스턴스가 아닌 클래스에 속하는 메서드를 정적 메서드라고 합니다. 키워드를 사용하여 정적 메서드를 만들 수도 있습니다. 공전 메소드 이름 앞에.

정적 메소드의 가장 큰 장점은 객체를 생성하지 않고도 호출할 수 있다는 것입니다. 정적 데이터 멤버에 액세스하고 해당 값을 변경할 수도 있습니다. 인스턴스 메서드를 만드는 데 사용됩니다. 클래스 이름을 사용하여 호출됩니다. 정적 메소드의 가장 좋은 예는 다음과 같습니다. 기본() 방법.

정적 메소드의 예

Display.java

 public class Display { public static void main(String[] args) { show(); } static void show() { System.out.println('It is an example of static method.'); } } 

산출:

마이크리켓라이브
 It is an example of a static method. 

인스턴스 방법

클래스의 메소드는 다음과 같이 알려져 있습니다. 인스턴스 메소드 . 이것은 비정적 클래스에 정의된 메소드 인스턴스 메소드를 호출하거나 호출하기 전에 해당 클래스의 객체를 생성해야 합니다. 인스턴스 메소드의 예를 살펴보겠습니다.

InstanceMethodExample.java

 public class InstanceMethodExample { public static void main(String [] args) { //Creating an object of the class InstanceMethodExample obj = new InstanceMethodExample(); //invoking instance method System.out.println('The sum is: '+obj.add(12, 13)); } int s; //user-defined method because we have not used static keyword public int add(int a, int b) { s = a+b; //returning the sum return s; } } 

산출:

 The sum is: 25 

인스턴스 메소드에는 두 가지 유형이 있습니다.

    접근자 방법 돌연변이 방법

접근자 방법: 인스턴스 변수를 읽는 메서드를 접근자 메서드라고 합니다. 메서드 앞에 단어가 붙어 있으므로 쉽게 식별할 수 있습니다. 얻다 . 그것은 또한로 알려져 있습니다 게터 . 비공개 필드의 값을 반환합니다. private 필드의 값을 가져오는 데 사용됩니다.

 public int getId() { return Id; } 

돌연변이 방법: 메서드는 인스턴스 변수를 읽고 값도 수정합니다. 메서드 앞에 단어가 붙어 있으므로 쉽게 식별할 수 있습니다. 세트 . 그것은 또한로 알려져 있습니다 세터 또는 수정자 . 아무것도 반환하지 않습니다. 필드에 따라 동일한 데이터 유형의 매개변수를 허용합니다. 개인 필드의 값을 설정하는 데 사용됩니다.

 public void setRoll(int roll) { this.roll = roll; } 

접근자와 변경자 방법의 예

Student.java

 public class Student { private int roll; private String name; public int getRoll() //accessor method { return roll; } public void setRoll(int roll) //mutator method { this.roll = roll; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void display() { System.out.println('Roll no.: '+roll); System.out.println('Student name: '+name); } } 

추상 메소드

메서드 본문이 없는 메서드를 추상 메서드라고 합니다. 즉, 구현이 없는 것을 추상 메서드라고 합니다. 항상 다음과 같이 선언합니다. 추상 수업 . 이는 클래스에 추상 메소드가 있으면 클래스 자체가 추상이어야 함을 의미합니다. 추상 메서드를 만들려면 키워드를 사용합니다. 추상적인 .

통사론

 abstract void method_name(); 

추상 메소드의 예

Demo.java

 abstract class Demo //abstract class { //abstract method declaration abstract void display(); } public class MyClass extends Demo { //method impelmentation void display() { System.out.println('Abstract method?'); } public static void main(String args[]) { //creating object of abstract class Demo obj = new MyClass(); //invoking abstract method obj.display(); } } 

산출:

 Abstract method... 

팩토리 메소드

객체가 속한 클래스에 객체를 반환하는 메소드입니다. 모든 정적 메서드는 팩토리 메서드입니다. 예를 들어, NumberFormat obj = NumberFormat.getNumberInstance();