Groovy-방법
Groovy에있는 메서드는 반환 유형 또는 def예어. 메서드는 여러 인수를받을 수 있습니다. 인수를 정의 할 때 형식을 명시 적으로 정의 할 필요는 없습니다. public, private 및 protected와 같은 수정자를 추가 할 수 있습니다. 기본적으로 가시성 수정자가 제공되지 않으면 메서드는 공용입니다.
가장 간단한 방법은 아래와 같이 매개 변수가없는 방법입니다.
def methodName() {
//Method code
}
다음은 간단한 방법의 예입니다.
class Example {
static def DisplayName() {
println("This is how methods work in groovy");
println("This is an example of a simple method");
}
static void main(String[] args) {
DisplayName();
}
}
위의 예에서 DisplayName은 일부 텍스트를 콘솔에 출력하는 데 사용되는 두 개의 println 문으로 구성된 간단한 메서드입니다. 정적 메인 메서드에서는 DisplayName 메서드 만 호출합니다. 위 방법의 출력은 다음과 같습니다.
This is how methods work in groovy
This is an example of a simple method
방법 매개 변수
메서드는 하나 이상의 매개 변수 값에 의해 동작이 결정되는 경우 더 일반적으로 유용합니다. 메소드 매개 변수를 사용하여 호출 된 메소드로 값을 전송할 수 있습니다. 매개 변수 이름은 서로 달라야합니다.
아래 표시된 것과 같은 매개 변수가있는 가장 간단한 유형의 메소드-
def methodName(parameter1, parameter2, parameter3) {
// Method code goes here
}
다음은 매개 변수가있는 간단한 방법의 예입니다.
class Example {
static void sum(int a,int b) {
int c = a+b;
println(c);
}
static void main(String[] args) {
sum(10,5);
}
}
이 예에서는 2 개의 매개 변수가있는 합계 방법을 생성합니다. a 과 b. 두 매개 변수는 모두 유형입니다.int. 그런 다음 main 메서드에서 sum 메서드를 호출하고 값을 변수에 전달합니다.a 과 b.
위 방법의 출력은 값 15입니다.
기본 매개 변수
Groovy에는 메서드 내 매개 변수에 대한 기본값을 지정하는 규정도 있습니다. 매개 변수의 메소드에 값이 전달되지 않으면 기본값이 사용됩니다. 기본값이 아닌 매개 변수와 기본 매개 변수를 모두 사용하는 경우 매개 변수 목록의 끝에 기본 매개 변수를 정의해야합니다.
다음은 매개 변수가있는 간단한 방법의 예입니다.
def someMethod(parameter1, parameter2 = 0, parameter3 = 0) {
// Method code goes here
}
두 개의 숫자를 더하기 위해 이전에 보았던 동일한 예제를 살펴보고 하나의 기본값과 다른 기본값이 아닌 매개 변수를 갖는 메소드를 생성 해 보겠습니다.
class Example {
static void sum(int a,int b = 5) {
int c = a+b;
println(c);
}
static void main(String[] args) {
sum(6);
}
}
이 예에서는 두 개의 매개 변수가있는 sum 메서드를 생성합니다. a 과 b. 두 매개 변수는 모두 int 유형입니다. 이 예와 이전 예의 차이점은이 경우에 대한 기본값을 지정한다는 것입니다.b 그래서 우리가 우리의 메인 메소드에서 sum 메소드를 호출 할 때, 우리는 단지 하나의 값인 6을 전달하는 옵션이 있고 이것은 매개 변수에 할당 될 것입니다. a 내 sum 방법.
위 방법의 출력은 값 11입니다.
class Example {
static void sum(int a,int b = 5) {
int c = a+b;
println(c);
}
static void main(String[] args) {
sum(6,6);
}
}
2 개의 값을 전달하여 sum 메소드를 호출 할 수도 있습니다. 위의 예에서는 6의 2 개의 값을 전달합니다. 두 번째 값인 6은 실제로 매개 변수에 할당 된 기본값을 대체합니다. b.
위 방법의 출력은 값 12입니다.
메서드 반환 값
메서드는 또한 호출 프로그램에 값을 반환 할 수 있습니다. 이것은 메서드가 일종의 계산을 수행 한 다음 원하는 값을 호출 메서드에 반환하는 현대 프로그래밍 언어에서 필요합니다.
다음은 반환 값이있는 간단한 메서드의 예입니다.
class Example {
static int sum(int a,int b = 5) {
int c = a+b;
return c;
}
static void main(String[] args) {
println(sum(6));
}
}
위의 예에서 이번에는 int 유형의 메서드 sum에 대한 반환 유형을 지정하고 있습니다. 메서드에서 우리는 호출하는 메인 프로그램에 합계 값을 보내기 위해 return 문을 사용하고 있습니다. 이제 메서드의 값을 기본 메서드에서 사용할 수 있으므로println 콘솔에 값을 표시하는 기능.
위 방법의 출력은 값 11입니다.
인스턴스 방법
메소드는 일반적으로 Java 언어와 마찬가지로 Groovy 내의 클래스 내에서 구현됩니다. 클래스는 속성과 동작을 정의하는 다른 객체를 생성하기위한 청사진 또는 템플릿에 불과합니다. 클래스 개체는 해당 클래스에서 정의한 속성 및 동작을 나타냅니다. 따라서 동작은 클래스 내부에 메서드를 생성하여 정의됩니다.
이후 장에서 클래스에 대해 자세히 살펴 보 겠지만 다음은 클래스에서 메서드 구현의 예입니다. 이전 예제에서 메서드를 정적 메서드로 정의했습니다. 즉, 클래스에서 직접 해당 메서드에 액세스 할 수 있습니다. 메소드의 다음 예는 클래스의 객체를 생성하여 메소드에 액세스하는 인스턴스 메소드입니다. 다시 우리는 이후 장에서 클래스를 볼 것입니다. 지금은 메서드를 사용하는 방법을 보여줄 것입니다.
다음은 방법을 구현할 수있는 방법의 예입니다.
class Example {
int x;
public int getX() {
return x;
}
public void setX(int pX) {
x = pX;
}
static void main(String[] args) {
Example ex = new Example();
ex.setX(100);
println(ex.getX());
}
}
위의 예에서 이번에는 클래스 메서드에 대한 정적 속성을 지정하지 않습니다. 주 함수에서 실제로 Example 클래스의 인스턴스를 만든 다음 'ex'개체의 메서드를 호출합니다.
위 방법의 출력은 값 100입니다.
로컬 및 외부 매개 변수 이름
Groovy는 Java와 같은 기능을 제공하여 로컬 및 글로벌 매개 변수를 갖습니다. 다음 예에서lx 함수 내에서만 범위가있는 로컬 매개 변수입니다. getX() 과 x전체 Example 클래스 내에서 액세스 할 수있는 전역 속성입니다. 변수에 액세스하려고하면lx 밖에서 getX() 함수를 사용하면 오류가 발생합니다.
class Example {
static int x = 100;
public static int getX() {
int lx = 200;
println(lx);
return x;
}
static void main(String[] args) {
println(getX());
}
}
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
200
100
속성에 대한이 방법
Java에서와 마찬가지로 groovy는 다음을 사용하여 인스턴스 멤버에 액세스 할 수 있습니다. this예어. 다음 예는 문을 사용하는 방법을 보여줍니다.this.x, 인스턴스를 참조하고 값을 설정합니다. x 따라서.
class Example {
int x = 100;
public int getX() {
this.x = 200;
return x;
}
static void main(String[] args) {
Example ex = new Example();
println(ex.getX());
}
}
위의 프로그램을 실행하면 콘솔에 200 개의 결과가 출력됩니다.