1. 88페이지 예제4번에 factorial함수를 main문 뒤에 정의해놓았는데 제가 학교에서 배울때는 함수를 main문 뒤에
쓰려면 main문 앞에 함수선언을 해야한다고 배웠습니다.
그러면 factorial(int n);을 main문 앞에 넣어야 하는거 아닌가요?
2. 101페이지 예제에 6번의 str.charat(k)에서 k는 11~0번째까지 출력하는데 이것도 배열처럼 1부터 시작하지않고
0부터 시작하는 건가요?
3.104페이지 예제2의 4번에서 static을 왜 붙이는지 잘 이해가 안갑니다. 설명에서는
실행클래스(main메소드가 속해있는 클래스)안에 메소드를 정의할때는 static을 붙여야한다라고 하는데
이게 무슨 말인가요?
또한 change메소드도 main메소드 뒤에 정의되어 있는데 어떻게 사용가능한가요?
4. java에서 배열정의 할때
int a[]=new int[5];
int[] a=new int[5];
int a[]={0,0,0,0,0};
int[] a={0,0,0,0,0,};
다 가능한가요?
java는 c언어랑 비슷하지만 처음이라 헤깔리네요 ㅠ
안녕하세요. 길벗 수험서 운영팀입니다.
1. 88페이지 예제4번에 factorial함수를 main문 뒤에 정의해놓았는데 제가 학교에서 배울때는 함수를 main문 뒤에 쓰려면 main문 앞에 함수선언을 해야한다고 배웠습니다.
그러면 factorial(int n);을 main문 앞에 넣어야 하는거 아닌가요?
[답변]
예, 맞습니다.
하지만 컴파일러 버전에 따라 main문 앞에 사용할 함수를 선언하지 않아도 정상적으로 빌드하여 실행할 수 있습니다.
기본적인 작성 방법은 회원님이 말씀하신 대로 main()문 앞에 사용할 함수를 미리 선언해주는 것이 맞습니다.
2. 101페이지 예제에 6번의 str.charat(k)에서 k는 11~0번째까지 출력하는데 이것도 배열처럼 1부터 시작하지않고 0부터 시작하는 건가요?
[답변]
예, 맞습니다.
Java 또한 C와 마찬가지로 배열은 0부터 시작합니다. 때문에 해당 예제 또한 이를 반영하여 str.length()로 구한 배열의 길이(12)에서 1을 뺀 상태로 반복문을 시작합니다.
3. 104페이지 예제2의 4번에서 static을 왜 붙이는지 잘 이해가 안갑니다. 설명에서는 실행클래스(main메소드가 속해있는 클래스)안에 메소드를 정의할때는 static을 붙여야한다라고 하는데 이게 무슨 말인가요?
[답변]
해당 예제에 있는 개체들인
1. 클래스 선언(AAclass) - 2번째 줄
2. main 함수(main) - 6번째 줄
3. 사용자 정의 함수 선언(change) - 13번째 줄
은 모두 1번째 줄에 있는 ‘public class’인 ‘Example’에 포함되어 있는 개체들입니다. 이전 페이지의 예제1의 경우 class 선언이 public class인 Example 밖에서 선언되었기에 static이 빠진 것입니다.
또한 change메소드도 main메소드 뒤에 정의되어 있는데 어떻게 사용가능한가요?
[답변]
모든 언어들은 코드를 실행하기 전에 빌드 과정을 거칩니다. 이 빌드에는 컴파일이나 코드의 재배치 등이 포함되어 있습니다. 각 언어별은 물론 같은 언어 내에서도 컴파일러의 버전에 따라 조금씩 다릅니다.
C 언어의 경우 main에서 사용한 함수가 main 뒤에 위치하게 되면 실행이 아예 되지 않는 경우도 존재하지만, Java의 경우 빌드를 거치면 함수가 main의 뒤에 위치하더라도 정상적으로 실행됩니다.
4. java에서 배열정의 할때
int a[]=new int[5];
int[] a=new int[5];
int a[]={0,0,0,0,0};
int[] a={0,0,0,0,0,};
다 가능한가요?
[답변]
예, 모두 사용 가능합니다.
배열을 의미하는 []는 변수의 앞과 뒤 어디에 위치해도 무관합니다.
행복한 하루되세요.^^
-
*2018-09-10 15:39:25
안녕하세요. 길벗 수험서 운영팀입니다.
1. 88페이지 예제4번에 factorial함수를 main문 뒤에 정의해놓았는데 제가 학교에서 배울때는 함수를 main문 뒤에 쓰려면 main문 앞에 함수선언을 해야한다고 배웠습니다.
그러면 factorial(int n);을 main문 앞에 넣어야 하는거 아닌가요?
[답변]
예, 맞습니다.
하지만 컴파일러 버전에 따라 main문 앞에 사용할 함수를 선언하지 않아도 정상적으로 빌드하여 실행할 수 있습니다.
기본적인 작성 방법은 회원님이 말씀하신 대로 main()문 앞에 사용할 함수를 미리 선언해주는 것이 맞습니다.
2. 101페이지 예제에 6번의 str.charat(k)에서 k는 11~0번째까지 출력하는데 이것도 배열처럼 1부터 시작하지않고 0부터 시작하는 건가요?
[답변]
예, 맞습니다.
Java 또한 C와 마찬가지로 배열은 0부터 시작합니다. 때문에 해당 예제 또한 이를 반영하여 str.length()로 구한 배열의 길이(12)에서 1을 뺀 상태로 반복문을 시작합니다.
3. 104페이지 예제2의 4번에서 static을 왜 붙이는지 잘 이해가 안갑니다. 설명에서는 실행클래스(main메소드가 속해있는 클래스)안에 메소드를 정의할때는 static을 붙여야한다라고 하는데 이게 무슨 말인가요?
[답변]
해당 예제에 있는 개체들인
1. 클래스 선언(AAclass) - 2번째 줄
2. main 함수(main) - 6번째 줄
3. 사용자 정의 함수 선언(change) - 13번째 줄
은 모두 1번째 줄에 있는 ‘public class’인 ‘Example’에 포함되어 있는 개체들입니다. 이전 페이지의 예제1의 경우 class 선언이 public class인 Example 밖에서 선언되었기에 static이 빠진 것입니다.
또한 change메소드도 main메소드 뒤에 정의되어 있는데 어떻게 사용가능한가요?
[답변]
모든 언어들은 코드를 실행하기 전에 빌드 과정을 거칩니다. 이 빌드에는 컴파일이나 코드의 재배치 등이 포함되어 있습니다. 각 언어별은 물론 같은 언어 내에서도 컴파일러의 버전에 따라 조금씩 다릅니다.
C 언어의 경우 main에서 사용한 함수가 main 뒤에 위치하게 되면 실행이 아예 되지 않는 경우도 존재하지만, Java의 경우 빌드를 거치면 함수가 main의 뒤에 위치하더라도 정상적으로 실행됩니다.
4. java에서 배열정의 할때
int a[]=new int[5];
int[] a=new int[5];
int a[]={0,0,0,0,0};
int[] a={0,0,0,0,0,};
다 가능한가요?
[답변]
예, 모두 사용 가능합니다.
배열을 의미하는 []는 변수의 앞과 뒤 어디에 위치해도 무관합니다.
행복한 하루되세요.^^