-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
클래스 내부의 인스턴스 메서드 끼리의 호출
22.07.03 22:14 작성 조회수 157
0
이 강의로 자바 기초를 다지면서 자바 알고리즘 강의도 듣고있습니다. 강의를 듣다가 궁금해진게 한 클래스 내부에서 static main 메서드 안에서 인스턴스 메서드를 호출할때는 Main클래스를 생성해서 호출하지만 재귀함수나 두개 이상의 인스턴스 메서드끼리 상호작용 할 때는 객체를 생성하지 않고 클래스 이름도 붙이지 않고 바로 메서드를 사용할수있는데 이는 어떤경우일까요? 답변주시면 감사하겠습니다.
아래 코드는 예시입니다.
solution 메서드에서 DFS메서드호출하는부분이 궁급합니다
class Main {
static int n,m,answer =0;
static int[] dx = {-1, -1, 0, 1, 1, 1, 0,-1};
static int[] dy = { 0, 1, 1, 1, 0,-1,-1,-1};
public void DFS(int x, int y, int[][] board) {
for(int i=0;i<8;i++) {
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>=0 && nx<n && ny>=0 && ny<n && board[nx][ny]==1) {
board[nx][ny]=0;
DFS(nx,ny,board);
}
}
}
public void soulution(int[][] board) {
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if(board[i][j]==1) {
answer++;
board[i][j]=0;
DFS(i,j,board);
}
}
}
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
n=kb.nextInt();
int[][] arr = new int[n][n];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
arr[i][j]=kb.nextInt();
}
}
T.soulution(arr);
System.out.println(answer);
}
}
답변을 작성해보세요.
0
박매일
지식공유자2022.07.03
Main T=new Main();을했기 때문에 이미 메서드는 메모리에 올라가 있는 상태이구요. 또 같은 클래스내에 2개의 메서드가 있다면 1의 메서드에서 2의 메서드는 메서드 이름으로 호출이 가능합니다~^
답변 1