Java 연구 노트(12): 멤버 메서드

기본 소개

경우에 따라 멤버 메서드(줄여서 메서드)를 정의해야 합니다. 예를 들어, 인간: 몇 가지 속성(나이, 이름..) 외에도 우리 인간은 다음과 같은 몇 가지 행동을 가지고 있습니다. 우리는 말하고, 달릴 수 있고... 학습을 통해 산술 문제도 할 수 있습니다. 이때 회원 메소드를 이용하여 완료해야 합니다. 이제 Person 클래스를 완료해야 합니다.

멤버 메서드 정의

공개(액세스 한정자) 반환 데이터 유형 메서드 이름 ( 매개변수 목록.. ) {//메서드 본문 문; 반환 값;

}

설명하다:


(1) 형식 매개변수 목록: 멤버 메서드 입력을 나타냅니다. 
예: person(int n), getSum(int num1, int num2)

(2) 반환 데이터 유형: 멤버 메서드 출력을 나타냅니다 . void는 반환 값이 없음을 나타냅니다.

(3) 메서드 본문: 특정 기능 코드 블록을 구현 하기 위해

(4) 반환문은 필요하지 않습니다 .

빠른 시작 사례

(1) "나는 좋은 사람입니다" 출력을 위한 speak 멤버 메소드 추가

public class Method { 

	//编写一个main方法
	public static void main(String[] args) {
		Person p1 = new Person();//创建对象 
		p1.speak(); //调用方法
	}
}

class Person {
	public void speak() {
		System.out.println("我是一个好人");
	}

	
}

 

(2) 1+..+1000에서 결과를 계산할 수 있는 cal01 멤버 메서드를 추가합니다.

public class Method { 

	//编写一个main方法
	public static void main(String[] args) {
		Person p1 = new Person();//创建对象
		p1.cal01(); //调用cal01方法
	}
}

class Person {
	public void cal01() {
		int res = 0;
		for(int i = 1; i <= 1000; i++) {
			res += i;
		}
		System.out.println("cal01方法的计算结果=" + res);
	}

	
}

 

(3) 숫자 n을 수신하고 1+..+n에서 결과를 계산할 수 있는 cal02 멤버 메서드를 추가합니다.

public class Method { 

	//编写一个main方法
	public static void main(String[] args) {
		Person p1 = new Person();//创建对象
		p1.cal02(5); //调用cal02方法,同时给n = 5
		p1.cal02(10); //调用cal02方法,同时给n = 10
	}
}

class Person {
	public void cal02(int n) {
		//循环完成
		int res = 0;
		for(int i = 1; i <= n; i++) {
			res += i;
		}
		System.out.println("cal02方法 计算结果=" + res);
	}

	
}

 

(4) 두 숫자의 합을 계산할 수 있는 getSum 멤버 메서드를 추가합니다. 

public class Method { 

	//编写一个main方法
	public static void main(String[] args) {
		Person p1 = new Person();//创建对象
		/*把 方法 getSum 返回的值,赋给 变量 returnRes
		然后调用getSum方法,同时num1=10, num2=20
			*/
		int returnRes = p1.getSum(10, 20); 
		System.out.println("getSum方法返回的值=" + returnRes);
	}
}

class Person {
	public int getSum(int num1, int num2) {
		int res = num1 + num2;
		return res;//返回res的值
	}

	
}

 회원 방법의 이점

(1) 코드 재사용성 향상

(2) 구현 세부 사항을 캡슐화한 다음 다른 사용자가 호출 할 수 있습니다.

멤버 메소드가 필요한 이유 

참조 요구 사항:

배열을 순회하고 배열의 각 요소 값을 출력하십시오.

해결 방법 1: 전통적인 방법은 단일 for 루프를 사용하여 배열을 출력하는 것입니다.

해결 방법 2: MyTools 클래스를 정의한 다음 멤버 메서드를 작성하고 메서드를 호출하여 달성

public class Method {


//编写一个 main 方法
public static void main(String[] args) {



int [][] map =	{
   
   {0,0,1},{1,1,1},{1,1,3}};//遍历数组 , 输出数组的各个元素值


//遍历 map 数组
for(int i = 0; i < map.length; i++) {
    for(int j = 0; j < map[i].length; j++) {
        System.out.print(map[i][j] + "\t");
    }
System.out.println();
    }

}
}

직접 순회하는 전통적인 방법이지만 맵 배열을 다시 순회해야 하는 경우 for 루프를 작성해야 합니까? 한두 번 트래버스하는 것은 괜찮지만 회사에서 100번, 1000번 트래버스를 요구한다면 for 루프를 100번, 1000번 작성해야 하지 않을까요? 이 방법은 너무 비효율적이고 힘들며 코드의 가독성이 좋지 않으므로 이 시점에서 출력을 완료하는 방법을 사용해야 합니다 .

public class Method {


//编写一个 main 方法
public static void main(String[] args) {



int [][] map =	{
   
   {0,0,1},{1,1,1},{1,1,3}};//遍历数组 , 输出数组的各个元素值

MyTools tool = new MyTools();//创建 MyTools 对象

tool.printArr(map);//使用方法 

class MyTools {
    public void printArr(int[][] map) { 
        System.out.println("=======");

for(int i = 0; i < map.length; i++) {//对map数组进行遍历输出
    for(int j = 0; j < map[i].length; j++) { 
        System.out.print(map[i][j] + "_");
}
System.out.println();
}
}
}

여기서는 tool.printArr(map) 메서드가 사용됩니다 . 현재 순회를 수행하는 데 많은 노력을 절약할 수 있습니다. 이 방법은 기존 방법보다 효율적이며 시간과 노력을 절약합니다.

추천

출처blog.csdn.net/long_0901/article/details/124282927