클래스 내부의 인스턴스 메서드 끼리의 호출
331
3 asked
이 강의로 자바 기초를 다지면서 자바 알고리즘 강의도 듣고있습니다. 강의를 듣다가 궁금해진게 한 클래스 내부에서 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);
}
}
Answer 1
0
Main T=new Main();을했기 때문에 이미 메서드는 메모리에 올라가 있는 상태이구요. 또 같은 클래스내에 2개의 메서드가 있다면 1의 메서드에서 2의 메서드는 메서드 이름으로 호출이 가능합니다~^
인프런 자바 강의 보고있는데요. 질문.
0
170
1
질문입니다
0
241
1
call by reference 관련 자바는 call by value방식만 존재하지 않나요?
0
963
1
ArrayLIst에 대해서 궁금합니다
0
375
1
자바버전
0
607
1
오버로딩 생성자
0
455
1
안녕하세요
0
348
1
문자열 String 에 대해 질문이 있습니다.
1
562
1
선생님 질문있습니다.
0
358
1
인강 강의내용
0
450
1
static 멤버 사용
0
428
1
강사님 추상메소드에서 전달하는 매개변수도 재정의 할때 반드시 구현하는건가요?
0
429
1
강사님 abstract 부분 궁금한점 있습니다!!
0
322
1
강사님 private 관련해서 궁금한점 있습니다!
0
338
1
45강 실습관련 질문드립니다
0
358
2
완강했습니다!!
0
367
1
Class생성시 관련하여 질문드립니다
0
235
1
안녕하세요 IDE관련해서
0
352
1
String관련 질문입니다
0
291
1
추상클래스 질문!
0
284
1
Wrapper 클래스란?(실습) 프로젝트에서
0
585
1
java 11로 해도 되나요?
0
435
1
궁금한 게 있습니다.
0
291
1
Java의 Call by Reference
0
263
1

