2013-02-25 4 views
2

java를 사용하면 배열의 특정 값을 정적/편집 불가능으로 설정할 수 있습니까? 나는 스도쿠 게임을 만들려고 노력하고있다. 그래서 초기 숫자가 설정되어 프로그램이 그들을 바꿀 수 없게하고, 다른 숫자는 바꿀 수 있기를 바란다. 지금까지 인터넷 검색을 한 적이 있지만 내 검색으로는 관련 정보가 전혀 없습니다.배열 값을 정적으로 설정

+0

이것은 수업 설계에 더 가깝습니다. 접근 자 메서드를 사용하여 데이터를 보호하면됩니다. – vikingsteve

+1

배열을 사용할 수는 없지만 고유 한 클래스를 디자인하고 특정 필드를 편집 할 수 없는지 확인하십시오. – Ankit

+0

배열의 요소 중 일부 또는 전부를 "읽기 전용"으로 표시 할 수있는 방법이 없습니다. 당신이 할 수있는 최선의 방법은 메서드 호출 뒤에 배열을 숨기는 것입니다. 배열에 대한 참조에'final'을 사용할 수는 있지만, 참조되는 배열을 변경하는 것은 불가능합니다 (일종의). 배열의 수정을 막지는 못합니다. –

답변

2

배열을 비공개로 숨겨야합니다. 그리고 배열에 대한 참조를 반환하지 않고 복제본을 반환합니다.

public class ArrayHolder { 
    private String[] array; 

    public ArrayHolder(String[] inputArray) { 
     //make a copy of inputArray 
     //assign the reference to the copy to this.array 
    } 

    public String[] getArray() { 
     //make a copy of the array 
     //return the reference to the copy 
    } 
} 

는 지금까지 일부 요소가 갱신 만들기로, 당신은 단지 그 방법이 배열의 특정 요소를 변경할 수 있도록 클래스에 mutator 메소드 (들)을 작성해야합니다.