질문 제목 : JAVA 배열에 관한 에러입니다.

 

질문 요약 : 입력할 값의 갯수를 입력받아서 갯수만큼 값을 입력받고 그 값들을 오름차순으로 정리하는 소스입니다.

 

질문 내용 : 안녕하세요. 이번에 자바를 배우고 있는 초보입니다.

다른게 아니라 이번에 클래스 부분을 배워서 클래스로 배열을 구현해볼려고 하는데 잘 안되네요.

코딩을 다 했는데 한군데에서 에러가 납니다.

그런데 왜 에러가 나는지 이해가 잘 안가서 이렇게 염치불구하고 글을 올려봅니다.

그리고 한가지 더 궁금한 게 있습니다.

지금은 sorT[] sT = new sorT[indeX]; 으로 값의 갯수를 입력받았는데

처음에는 값의 갯수를 입력받는게 아니라 그냥 sorT[] sT = new sorT[10]; 정해서 정한 크기만큼만 받게 했었는데

계속 에러가 났습니다. 그래서 혹시나 하고 지금처럼 바꾸었더니 에러가 안나더군요.

왜 그런건지 이유가 좀 궁금합니다. 다소 허접한 질문 일수도 있으나 친절하게 알려주시면 감사하겠습니다.

-------------------------------------------------------------------------------------------------------------------

import java.util.*;

public class sorT {
private int numbeR;

public sorT(){
numbeR = 0;
}


public int geTsorT(){
return this.numbeR;
}

public void seTsorT(int numbeR) {
this.numbeR = numbeR;
}

public void toPsorT(int[] numbeR) { // 오름차순 정렬 메소드
for(int i = 0; i < numbeR.length; i++){
for(int j = i; j < numbeR.length; j++){
int changE =0;

if(numbeR[i] > numbeR[j]){
changE = numbeR[i];
numbeR[i] = numbeR[j];
numbeR[j] = changE;
}
}
}

for(int i = 0; i < numbeR.length; i++){
System.out.print(numbeR[i] + "\t");
}
}

public String toString(){
return String.format("%d", geTsorT());
}
}

-------------------------------------------------------------------------------------------------------------------

import java.util.*;
import java.io.*;

public class sorTmaiN extends sorT{
public static void main(String[] args) throws IOException{
Scanner inpuT = new Scanner(System.in);

int numbeR = 0;
int indeX = 0;

while(true){
System.out.print("숫자의 갯수를 입력하세요 : ");
indeX = inpuT.nextInt();

if(indeX > 0){
break;
} else{
System.out.println("다시 입력해주세요. 입력할 값은 숫자이거나 0이상이여야 합니다.");
System.out.println();
}
}

sorT[] sT = new sorT[indeX]; // 입력할 값의 갯수를 입력받는
for(int i = 0; i < sT.length; i++){
sT[i] = new sorT(); // 배열 초기화
}

for(int i = 0; i < sT.length; i++){

System.out.print((i + 1) + " 번째 숫자를 입력하세요 : ");
numbeR = inpuT.nextInt();

sT[i].seTsorT(numbeR); // 값을 저장
}

System.out.println();
System.out.println("입력하신 숫자는 다음과 같습니다.");

for(int i = 0; i < sT.length; i++){
System.out.printf("%s\t", sT[i].toString()); // 출력
}

for(int i = 0; i < sT.length; i++) {
sT[i].toPsorT(sT[i]); // 여기서 에러가 납니다.
}
}
}

-------------------------------------------------------------------------------------------------------------------