Q1. 객체지향 프로그램 (OOP) 풀네임
object oriented programming
Q2. 객체지향의 특징 3가지
캡슐화(private, protected, default, public), 상속성(extends), 다형성(다양한 형태를 가질 수 있다.)
Q3. 생성자의 역할
초기화
Q4. 인스턴스변수, 지역변수, 인스턴스메서드, 클래스메서드 구분
인스턴스 변수 - heap area - new,this 관련
지역변수 - stack area - new,this 관련 X
- 인스턴스 변수와 지역변수를 구분하기 위해 this 사용
인스턴스 메서드 - heap area
클래스 메서드 - method area
Q5.오류의 이유와 수정하기
지역변수는 무조건 초기화를 해야 한다.
int show2(){int a=0; return a;}
Q6.runtime data area 종류
method, heap, stack
Q7.접근제어자 사용범위
public > protected > default> private
Q8. getter와 setter 구문 사용
public int getNo(){return no;}
public void setNo(int no){this.no=no;}
Q9. 빈칸 채우기
implements
Q10. 오류 코드
interface의 멤버변수 선언 시 final static이므로 수정 불가능
Q11. 오류나는 코드 수정하기
Vehicle43 vehicle43 = new Bus43();
//업캐스팅
//부모는 자식을 담을 수 있다. 형변환 생략가능
Bus43 bus43 = (Bus43)vehicle43;
//다운캐스팅
//자식은 부모를 담을 수 있다. 단, 부모가 자식생성자를 사용한 적이 있어야 한다.
Q12
공통점 : 구현시 자손클래스를 통해서 구현을 해야 한다.
차이점 : 추상화정도가 interface가 더 강하다. interface(상수, abstrace메서드) abstract (인스턴스 변수, 메서드 사용가능)
Q13
다형성은 다양한 형태를 띄는 성질
Q14
오버로딩은 같은 목적의 메서드들의 이름을 같게 하여, 파라미터의 타입과 개수를 다르게 한다.
오버라이딩은 상속시 보무와 같은 메서드를 재정의한다.
Q15
public class Exception{
private static void test(int a) throws Exception { // ##1. 오류처리 넘기기
System.out.println(10 / a); // ##
}
public static void main(String[] args) {
// ##2. 오류처리 호출한 곳에서 try~catch
try {
test(1); // public static 리턴값 메서드명(파라미터)
test(0); // public static void test(int a){} ##
} catch (Exception e) {
System.out.println("##Error 발생");
}
}// end main
}// end class