본문 바로가기

Java

[Java 기초 공부 07] 자바 객체지향 문법

일상에 지쳐서 블로그를 조금 밀렸다 ㅠ

오늘은 자바공부를 하기위해 반드시 알아야하는

객체지향과 관련된 문법에 대해 간단히 정리해보았다.

(시간이 되면 따로 하나씩 다뤄볼 예정)

 

 

 

1. 생성자

           - 클래스명과 같다.
           -
반환하는 값이 없음.
           - default
생성자 : JVM이 자동으로 생성
           -
오버로딩 지원.
           - this
생성자 : 생성자의 첫번째 라인에서만 수행.(다른생성자의 것 불러오기)
           *
생성자 내에서 다른 생성자는 호출 불가하므로 this를 쓴다.
           -
인스턴스객체 생성시 멤버변수를 초기화하는 기능.
          

 

 

2. Static

           - 공유
           -
로딩시점 : 클래스를 한 번 읽을 때 (new보다 전에)
           -
메모리 할당 : 클래스당 하나의 공간. (인스턴스 객체마다 메모리할당X)
           -
사용상 차이
           *
일반 메소드에서 static변수, static메소드 호출가능
           * static
에서는 일반 메소드, 멤버변수 호출 불가.
           * class
.static메소드


          

 

3. 상속

     - 재사용성과 확장성 : 부모의 것을 내것처럼 쓰는 것
     - extends
     - super :
부모 것 불러오기.
     *
접근제한자 : public, protected만 자식이 접근 가능하다.
     -
다형성 : 자식이 부모와 같은 메소드를 가지고 있지만 기능이 다른 것 [오버라이딩]


 

4. 접근제한자

           - public
           - protected –
상속인 경우 같은 클래스 접근가능.
           - default
           - private –
은닉성 캡슐화
           **
접근 범위 : public > protected > default > private



 

5. 추상클래스

           - 하나이상의 추상메소드를 가지고 있는 클래스
           -
추상메소드 : 선언부만 있고 { } 기능이 없음.
           -
인스턴스 생성 불가 : new(X)
           - abstract
키워드 클래스와 메소드에만 가능 (멤버변수에는 X)
           -
일반메소드와 추상메소드 모두 가질 수 있음
           -
하위 클래스에서는 부모클래스 오버라이드 해야함
           -
추상 클래스 객체변수 얻기

 

 

6. 객체의 형변환

           - 정의 : 대입연산자를 기준으로 좌변 우변의 타입이 다른 경우 발생

           - 조건 : 좌변 우변이 상속일때만 일어남.
           -
종류 : 묵시적 / 명시적
           *
묵시적 : 자식의 타입의 변수를 부모가 가짐
           *
명시적 : 부모의 주소값을 자식이 갖게함. [강제적으로] -> 묵시적 형변환이 되어있어야함.

 

 

7. 인터페이스

           - 상수와 추상메소드의 집합. 기능의 집합
           - implements
           -
인터페이스는 추상메소드만 있다보니 인스턴스 객체(new)불가.
           -
인터페이스 메소드를 자식에서 반드시 오버라이드해야 인스턴스객체 생성가능
           - public static final :
인터페이스 객체 변수 얻기.

 

 

8. final

           - 변수, 메소드, 클래스에 붙일 수 있음.
           *
변수 : 대입불가
           *
메소드 : 오버라이드불가
           *
클래스 : 상속불가.

 

 

 

9. 객체의 형변환

           - 익명클래스?
           -
클래스 선언 + 객체 생성
           -
익명클래스의 형태

 

 

10. 예외처리

           - 예상치 못하게 발생한 문제방지 (프로그램종료).
           -
직접처리 : try, catch, finally
           * try :
예외가 발생할수도 있는 부분.
           * catch :
예외시 수행
           * finally :
예외 발생하든말든 무조건 수행
           -
간접처리 : throws
           *
나를 부른 피호출자 메소드에서 예외를 처리하는 것.
           - throw :
내가 예외 상황을 설정하고 싶을 때 ( 8글자 이상입력하면 에러메시지 띄우기)