2010-02-08 6 views
0

내 필드를 private String[] biscuitList에서 private String[] biscuit으로 만드는 단일 생성자 public packet(String[] biscuit)을 어떻게 정의합니까?Java 생성자

+0

"내 분야를 ...에서 ..."로 바꾸는 것이 무슨 의미인지 이해할 수 없습니다. 제발 해명 해주세요. –

+0

죄송합니다. 해당 필드를 설정하십시오. – user267935

+0

무엇을 하시겠습니까? 예제 코드도 도움이 될 것입니다. – ziya

답변

3

그냥 필드에 지정하십시오.

public class Packet { 
    private String[] biscuitList; 
    public Packet(String[] biscuit) { 
     this.biscuitList = biscuit; 
    } 
} 

this은 (방금 new Packet 사용하여 만든)을 현재Packet 인스턴스를 나타냅니다. this.biscuitList은 현재 Packet 인스턴스의 biscuitList 필드를 나타냅니다. = biscuit은이 경우 biscuitList 필드 왼쪽 (에 biscuit을 부여 할당합니다. String[] 변수가 정말 List로 끝나는 이름으로 호출 할 수 없습니다 말했다

.이는 List<String>과 모호성이 발생할 수 있습니다 . 당신은, 클래스 이름과 생성자의 이름은 대문자로 시작한다고 또한

public class Packet { 
    private String[] biscuits; 
    public Packet(String[] biscuits) { 
     this.biscuits= biscuits; 
    } 
} 

. biscuit, 또는 어쩌면 더 나은, biscuits를 호출 할 수 있습니다. 즉 Packet하지 packet.

Java에 대해 자세히 알아 보려면 Trials Covering the Basics을 확인하십시오.

+0

맞습니다. 지금은 감사합니다. – user267935

+0

첫 번째 경우 this 키워드는 아무런 영향을 미치지 않습니다. 그냥 생략해도됩니다. 일반적으로 이름 충돌이있을 때 사용되며 인스턴스 변수와 로컬 변수를 구별해야합니다. (이 점을 정확히 설명하는 두 번째 경우 참조). –

+0

@ noob11 : 문장은 대문자로 시작하고 점으로 끝납니다. 아니, "나는 멍청이다."는 유효한 변명이 아닙니다. 이것은 말이되지 않습니다. 또한 모든 주제에 명시 적으로 언급 할 필요는 없습니다. 똑똑한 방식으로 질문을하는 데 노력을 기울이고 있음을 보여줍니다. 그게 전부입니다. 또한 http://catb.org/esr/faqs/smart-questions.html – BalusC

0
this.biscuitList = biscuit; 
+0

그래서 위의 코드는 다음을 수행합니까? 내 입력란 중 1 개의 끝자리를 변경합니다. private string [] biscuitList; ~ private string [] biscuit; – user267935

+0

개인 클래스 필드와 생성자 매개 변수에 대해 혼란스러워한다고 생각합니다. 위의 내용은 biscutList가 개인 필드이고 biscuit이 매개 변수라고 가정합니다. 따라서 우리는 biscuitList에 biscuit의 값을 할당하여 메서드의 biscuitList를 참조 할 수 있습니다. – ziya