2011-11-29 2 views
-4

java에서 해결해야 할 다음과 같은 문제점이 있습니다. Implementing class Alkio. AlkioPaa.java를 실행하여 클래스가 작동하는지 확인하십시오. 이 질문에 대한 내 대답은 다음입니다 : 클래스 Alkio 구현 방법은 무엇입니까?

/** 
* @author A. 
* @version 28.11.2011 
* Tehtävä5. Ohjelma Toteuttaa luokan Alkio */ 

public class Alkio { 
    private int rivi; 
    private int sarake; 
    private int arvo; 


    public Alkio(int rivi, int sarake, int arvo){ 
    int Rivi= rivi; 
    int Sarake=sarake; 
    int Arvo=arvo; 
    } 

    public void setAlkio(int rivi, int sarake, int arvo){ 
    System.out.println("("+rivi+","+sarake+","+arvo+")"); 
    } 

    public int getArvo(){ 
    return arvo; 
    } 

    public int getRivi(){ 
    return rivi; 
    } 

    public int getSarake(){ 
    return sarake; 
    } 

    //jotain häikkää seuraavassa(28.11.2011). Häikkä poistunut(29.11.2011) 
    public String toString(){ 
    String merkkijono= new String(); 
    return merkkijono; 
    } 
} 

어떤 의견이 있습니까? 는 다음 테스트는 메인 프로그램 AlkioPaa.java 이루어집니다 다음되는 : 내가 메인 프로그램을 실행하면

public class AlkioPaa { 

    public static void main(String[] args) { 

    Alkio eka = new Alkio(1,2,10); 

    System.out.println("Tein alkion, jonka rivi on " + eka.getRivi() 
     + " ja sarake on " + eka.getSarake() + ". Arvo on " + eka.getArvo()); 


    System.out.println("\n alkio on " + eka.toString()); 

    String apu = eka.toString(); 

    System.out.println("alkio " + apu); 

    eka.setAlkio(2, 5, 12); 

    System.out.println("Muutettu alkio " + eka); 
    } 
} 

가 인쇄 :

Tein alkion, jonka rivi on 0 ja sarake on 0. Arvo on 0 

alkio alkio (2,5,12)을 에 Muutettu alkio 그래야만 (1,2,10) 인쇄되지 않습니다.

+3

제대로 다음 번에 코드를 포맷하십시오. – MByD

+2

숙제에 태그를 달아주세요. 붙여 넣은 코드에는 할당 번호가 남아 있습니다 : P – Zavior

+1

MByD가 그의 답변에 언급 한 것 외에, "setAlkio"함수를 사용하는 것이 매우 직관적이지 못하다는 것을 지적하고 싶습니다. "setAlkio'는"Alkio "대신에받는 매개 변수를 인쇄합니다. – flesk

답변

3

왜 인쇄 하시겠습니까 (1,2,10)?

  1. 값을 2,5, 12 (eka.setAlkio(2, 5, 12);)로 다시 설정합니다. 당신이해야으로
  2. 당신이 toString 메소드를 오버라이드 (override)하지 않았다 (@flesk에 의한 질문에 주석으로,하지만, 당신은 실제로 ...을 설정하지 않음) :

    public String toString(){ 
        return "("+rivi+","+sarake+","+arvo+")"; 
    } 
    
  3. 을에 생성자, 당신은 당신이 방법을 숨길 수 있기 때문에, 생성자가 있어야 지정된 파라미터로 클래스 멤버를 설정하지 :

    public Alkio(int rivi, int sarake, int arvo){ 
        this.rivi= rivi; 
        this.sarake=sarake; 
        this.arvo=arvo; 
    } 
    
+0

이유는 무엇이며 다른 것은 아닙니다. 그? 왜 이걸 넣는거야? rivi = rivi; this.sarake = rivi; this.arvo = rivi; 그리고 아닙니다 int Rivi = rivi; int Sarake = sarake; int Arvo = arvo ;? – alvoutila

+0

@alvoutila :'this'는 예약어로 현재 객체를 참조합니다. 그것은 생성자에서'this.rivi = rivi'를 사용할 때 객체 변수'rivi'가 생성자에 전달 된'rivi'의 값을 인수로 가져와야한다는 것입니다. 그것들은 두 개의 다른 변수라는 점에 유의하십시오.'int Rivi = rivi'를 쓸 때 생성자에게 로컬 인 세 번째 변수를 선언하고 하나의 Java 명명 규칙을 깨는 것이 급습에 빠지게됩니다. – flesk

+0

이 Alkio 클래스를 클래스 (예 : public class T6 {...)로 가져 오시겠습니까? Alkio 가져 오기; – alvoutila

관련 문제