(2) 객체 배열 예제;(getter/setter, foreach, 배열 객체 선언), 다형성
2020. 7. 1. 19:50ㆍ개발공부/Java
728x90
n7/1 객체 배열 예제 풀이, 다형성
1. 새로운 개념:
- 다형성: 부모-자식 클래스 간 객체 선언에서 타입을 부모로, 객체는 자식 클래스로 할 경우 발생현상
//다형성 예시
//1. 부모 클래스 부르고 호출은 자식 클래스 내에서 하기
class Sonata extends Car{
//super();
system.out.println("내 차는 오빠차 뽑았다. 널 데리러 가~");
}
//2. 객체 생성 시 클래스 타입과 객체가 서로 다른 경우
class B extends A {
system.out.printlf("엄마 나 집에 갈래");
}
public class Basic{
A a1 = new B(); //B 객체 생성, 데이터 타입은 A 클래스로 형 변환(promotion)
A a2 = new A(); //보통의 객체 (좌항의 클래스 = 우항의 클래스)
}
2. 실습 복기: 총점/평균(객체 + 배열)
- Exam 객체생성
> 아래 문장이 유효한 이유는 매개변수가 없는 plain 생성자 하나를 만들어줬기 때문에
매개변수가 들어가있지 않은 Exam 객체가 정상적으로 생성된다.
- 배열에 객체 담는 방법*
> result 배열 reference에 다수의 값 exam reference 입력 가능!
Exam exam = new Exam();
System.out.println("영어 점수를 입력하세요: ");
exam.setEngExam(sc.nextInt());
exam.setSum();
exam.setAvg();
result[i] = exam; //result라는 배열 안에 exam 객체 입력
- avg 데이터 타입(double), 다른 타입으로 선언을 한 번이라도 했을 시 오류
> main 에서 int sum, int sum 하나씩 선언하지말고
메서드화 시키는 것을 선호. 깔끔.- 실습 복기: 총점/평균
- foreach & null check
> foreach(향상 반복문), 배열 전체를 반복으로 돌릴 때. 제어값이 없을 때 가능.
> 배열의 항목 수만큼 실행부분을 반복하며, 반복이 이루어질 때마다 배열의 항목을 순서대로 꺼내어
변수(number)에 자동으로 대입해 줌
//> 양식:중괄호 내 조건문 아님 프린트, 반복 끝나고 마지막에 null값이 남아있기 때문에 break 필수!
for (Exam num : result) {
if(num == null) break;
num.examInfo();
- getter & setter
> getter 와 setter는 '메소드'를 사용해 은닉 호출과 입력을 실행한다.
//getter & setter
public void setName(String name){
this.name = name;
}
public void getName(){
return name;
}
'개발공부 > Java' 카테고리의 다른 글
(6) 주요 APIⅡ(String, System, Wrapper) (0) | 2020.07.08 |
---|---|
(5) 예외 처리, 주요 API Ⅰ(toString, equals) (0) | 2020.07.08 |
(4) abstract, interface (0) | 2020.07.07 |
(3) static, constant (0) | 2020.07.04 |
(1) 패키지, 상속(Over riding), 중복(Over loading), this (0) | 2020.06.29 |