JAVA 33

22. 예외처리

1) Exception 프로그램실행중 예기치 못한 사건을 예외라고 한다. 예외 상황을 미리 예측하고 처리할 수 있는데, 이렇게 하는 것을 예외 처리라고 한다. 위 코드에서 j를 0으로 바꾸면 Excption 발생 j를 0으로 바꾸면 ArithmeticException이 발생하면서 프로그램이 종료된다. Java는 정수를 정수로 나눌때 0으로 나누면 안된다.0으로 나누면 오류가 발생하는 것입니다. 예외 처리 프로그래머는 j라는 변수에 0이 들어올지도 모르는 예외 상황을 미리 예측하고 처리할 수 있다. 예외처리하는 문법 오류가 발생할 예상 부분을 try라는 블록으로 감싼 후, 발생할 오류와 관련된 Exception을 catch라는 블록에서 처리한다. 오류가 발생했든 안했든 무조건 실행되는 finally라는 블..

JAVA 2021.03.29

21. 인터페이스

1) 인터페이스 만들기 인터페이스: 서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용하는 장치나 시스템 인터페이스 정의하는 방법 추상 메소드와 상수를 정의 할 수 있다. 인터페이스에서 변수를 선언하면 컴파일시 자동으로 아래와 같이 바뀐다. 인터페이스에서 정의된 메소드는 모두 추상 메소드이다. 위에서 선언된 모든 메소드는 컴파일 시에 다음과 같이 자동으로 변경된다. 2) 인터페이스 사용하기 인터페이스 사용하는 방법 인터페이스는 사용할때 해당 인터페이스를 구현하는 클래스에서 implements 키워드를 이용한다. 인터페이스가 가지고 있는 메소드를 하나라도 구현하지 않는다면 해당 클래스는 추상클래스가 된다.(추상클래스는 인스턴스를 만들 수 없음) 참조변수의 타입으로 인터페이스를 사용할 수 있다. 이 경..

JAVA 2021.03.29

20. 클래스 형변환

1) 클래스 형변환 부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다. 자식객체가 가지고 있는 메소드나 속성을 사용하고 싶다면 형변환 해야 한다. 형변환 상속관계란 is a 관계라고 말했었습니다. "Bus는 Car다." 라는 관계가 성립되는 것이죠. 현실에서도 우리는 버스를 가리키면서 차다. 라고 말하곤 합니다. 부모타입으로 자식객체를 참조할 수 있다. 부모타입으로 자식객체를 참조하게 되면 부모가 가지고 있는 메소드만 사용할 수 있다. ppangppang()메소드를 호출하고 싶다면 Bus타입의 참조변수로 참조해야 한다. 객체들 끼리도 형변환이 가능하다. 단 상속관계에 있었을 때만 가능하다. 부모타입으로 자식타입의 객체를 참조할 때는 묵시적으로 형변환이 일어난다. 부모타입의..

JAVA 2021.03.29

19. 오버라이딩

1) 오버라이딩 오버라이딩이란 부모가 가지고 있는 메소드와 똑같은 모양의 메소드를 자식이 가지고 있는 것이다. 즉 오버라이딩이란 메소드를 재정의 하는 것이다.메소드 오버라이딩 Car 클래스를 상속받은 Bus 클래스는 부모클래스가 가진고 있는 run() 메소드를 잘 사용한다. Bus클래스에 부모가 가지고 있는 메소드와 모양이 같은 메소드를 선언 BusExam을 실행해 보도록 하겠습니다. "Bus의 run메소드"가 출력된다. 메소드를 오버라이드 하면, 항상 자식클래스에서 정의된 메소드가 호출된다. 오버라이딩 한다고 해서 부모의 메소드가 사라지는 것은 아니다. super 키워드를 이용하면, 부모의 메소드를 호출 할 수 있다.

JAVA 2021.03.29

18. super와 부모생성자

1) super와 부모생성자 class가 인스턴스화 될때 생성자가 실행되면서 객체의 초기화를 한다. 그 때 자신의 생성자만 실행이 되는것이 아니고, 부모의 생성자부터 실행된다.부모 생성자 생성자 테스트 결과 Car의 기본생성자입니다. Bus의 기본생성자입니다. new 연산자로 Bus객체를 생성하면, Bus객체가 메모리에 올라갈때 부모인 Car도 함께 메모리에 올라간다. 생성자는 객체를 초기화 하는 일을한다. 생성자가 호출될 때 자동으로 부모의 생성자가 호출되면서 부모객체를 초기화 하게된다. 2) super 자신을 가리키는 키워드가 this 라면, 부모들 가리키는 키워드는 super super() 는 부모의 생성자를 의미한다. 부모의 생성자를 임의로 호출하지 않으면, 부모 class의 기본 생성자가 자동으..

JAVA 2021.03.29

17. 추상클래스

1) 추상클래스 추상 클래스란 구체적이지 않은 클래스를 의미한다. 독수리, 타조는 구체적인 새를 지칭하는데 새, 포유류 같은 것은 구체적이지 않다.이런 것을 구현한 클래스를 추상 클래스라고 한다.추상 클래스 정의하기 추상 클래스는 클래스 앞에 abstract 키워드를 이용해서 정의한다. 추상 클래스는 미완성의 추상 메소드를 포함할 수 있다. 추상 메소드란, 내용이 없는 메소드 이다. 즉 구현이 되지 않은 메소드이다. 추상 메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 한다. 추상 클래스는 인스턴스를 생성할 수 없다. 추상 클래스를 상속받는 클래스 생성하기 추상 클래스를 상속받은 클래스는 추상 클래스가 갖고 있는 추상 메소드를 반드시 구현해야 한다. 추상 클래스를 상속받고, 추상 클래스가 갖..

JAVA 2021.03.29

16. 접근제한자

접근제한자 접근 제한자란 클래스 내에서 멤버의 접근을 제한하는 역할을 한다. 접근제한자의 종류 public 어떤 클래스든 접근할 수 있다는 것을 의미 protected 자기 자신, 같은 패키지, 서로 다른 패키지다 하더라도 상속받은 자식 클래스에서는 접근할수 있다는 것을 의미 private 자기 자신만 접근할 수 있다는 것을 의미 접근제한자를 적지 않으면 default접근 지정자 자기자신과 같은 패키지에서만 접근할 수 있다는 것을 의미 AccessObj를 사용하는 AccessObjExam AccessObj의 필드 i 의 접근 제한자는 private이므로 다른 클래스인 AccessObjExam에서 접근할 수 없다. AccessObj 와 다른 패키지에서 사용해보기 패키지가 달라졌기때문에 default접근제한..

JAVA 2021.03.29

15. 상속

상속 상속이란? 부모가 가진것을 자식에게 물려주는것을 의미한다. 노트북은 컴퓨터의 한 종류다. 침대는 가구의 한 종류다. 혹은 침대는 가구다. 소방차는 자동차다. 이렇게 말할 수 있는 관계를 is a 관계 혹은 kind of 관계라고 한다. Car 를 상속받은 Bus 를 class로 표현하는 방법 자바는 클래스 이름 뒤에 extends 키워드를 적고 부모클래스 이름을 적게 되면 부모 클래스가 가지고 있는 것을 상속받을 수 있게 된다. 상속이란 부모가 가지고 있는 것을 자식이 물려받는 것을 말한다. 즉, 부모가 가지고 있는 것을 자식이 사용할 수 있게 된다. 부모클래스에 메소드 추가하기 Car에 run()메소드를 추가 Car를 상속받은 Bus 사용 Bus에 메소드 추가 Bus는 Car에서 물려받은 run메..

JAVA 2021.03.29

14. 생성자 오버로딩과 this

1)생성자 오버로딩 생성자의 매개변수의 유형과 개수가 다르게 하여 같은 이름의 생성자를 여러 개 가질 수 있다. 생성자도 메소드와 마찬가지로 여러개를 선언할 수 있다. 매개변수의 수와 타입이 다르다면 여러개의 생성자를 선언할 수 있다. 오버로딩된 생성자 이용하기 2) 자기 생성자 호출하는 this() 자기 생성자 호출하는 this() 기본생성자를 호출하였을 때 name을 "이름없음" , 숫자를 0으로 초기화 하기 위처럼 작성했을 경우 코드의 중복이 일어난다. 자신이 가지고 있는 다른 생성자를 이용할 수 있다. this괄호 열고로 시작하면 자신의 생성자를 호출하는 것이다. 자기 자신의 생성자를 호출함으로써 비슷한 코드가 중복되서 나오는 것을 방지할 수 있다.

JAVA 2021.03.26

13. 오버로딩

메소드 오버로딩 매개변수의 유형이나 개수가 다르게 하여 같은 이름의 메소드를 여러 개 가질 수 있게하는 기술메소드 오버로딩 이름은 같지만 매개변수가 다른 메소드 메소드 오버로딩은 매개변수 부분이 달라야 한다. 위처럼 변수명은 다르지만, 매개변수의 타입과 개수가 동일한 메소드를 또 정의 할 수는 없다. 오버로딩된 메소드 이용하기 메소드의 인자에 어떤 값이 쓰이느냐에 따라서 각기 다른 메소드가 호출된다.

JAVA 2021.03.26