[JAVA] 상속 구조에서의 출력문 오류

    <문제상황>

    다음과 같은 코드를 기술하면, 주소값만이 출력된다. 

    		ArrayList <Person> p = new ArrayList<>(3);
    		
    		p.add(new Student("홍길동",20,178.2,70.0,1,"정보시스템공학과"));
    		p.add(new Student("김말똥",21,187.3,80.0,2,"경영학과"));
    		p.add(new Student("강개순",23,167.0,45.0,4,"정보통신공학과"));
    		
    		for(int i=0;i<p.size();i++) {
    			System.out.println(p.get(i));
    		}
    		
    		

     

    <해결 방안> 

    Student 객체에 information() 메소드를 기술 해두고, 활용하지 않은 것이 문제였다.  p.get(i).information()까지의 접근은 좋았으나. 그것을 출력문 안에 기술하지 않았음. 두 번째 방안으로 출력문 안에 p.get(i)를 기술했기 때문에 주소값만이 출력이 된 것이다. 따라서 출력문 안에 p.get(i).information()을 활용해야만 제대로된 구문이 출력된다. 

    	ArrayList <Person> p = new ArrayList<>(3);
    		
    		p.add(new Student("홍길동",20,178.2,70.0,1,"정보시스템공학과"));
    		p.add(new Student("김말똥",21,187.3,80.0,2,"경영학과"));
    		p.add(new Student("강개순",23,167.0,45.0,4,"정보통신공학과"));
    		
    		for(int i=0;i<p.size();i++) {
    			System.out.println(p.get(i).information());
    		}

     

    <결과값>

    이름은홍길동이고, 나이는 20살이야 키는 178.2cm이고, 몸무게는 70.0kg 이야학년은 1이고, 전공은 정보시스템공학과이야! 잘부탁해
    이름은김말똥이고, 나이는 21살이야 키는 187.3cm이고, 몸무게는 80.0kg 이야학년은 2이고, 전공은 경영학과이야! 잘부탁해
    이름은강개순이고, 나이는 23살이야 키는 167.0cm이고, 몸무게는 45.0kg 이야학년은 4이고, 전공은 정보통신공학과이야! 잘부탁해
    
    728x90

    댓글