JAVA

[JAVA] 자바 언어 특징

dy8_8 2022. 9. 1. 20:24
728x90

1. 자바는 객체지향 프로그래밍 언어이다.

- 캡슐화

  - 접근에 제한을 워서 정보 은익

  - 관련된 기능과 데이터를 하나의 클래스에 묶어서 사용 

  - public (+) : 클래스 내부/외부에서 접근이 가능하다.

  - protected (#) : 해당 객체를 상속받은 객체 내부에서 접근 할 수 있다. 단순 인스턴스에선 접근 할 수 없다.

  - default : 동일한 패키지 내의 객체에서 인스턴스를 생성하여 접근 할 수 없다.

  - private (-) : 클래스 내부에서는 접근이 가능하나 외부에서 접근 할 수 없다. 

                 

- 상속 

  - 부모 클래스에서 선언한 변수나 메소드를 자식 클래스에서 직접 만들지 않고 상속 받아

    자식 클래스에서 부모 클래스의 변수나 메소드를 사용 할 수 있다. 

  - 자바의 모든  class는 Object 클래스의 후손이다. 

  - 자바는 단일 상속만 지원한다. 

  - 부모의 private 멤버는 상속은 되지만 직접 접근이 불가하다.

 

- 추상화 

  - 객체에서 공통된 속성과 행위를 추출한다.

  - 유연성을 확보하기 위해 구체적인 것은 제거한다는 의미이다.

  - 프로그램에서 필요한 공통점을 추출하고, 불필요한 공통점을 제거하는 과정이다. 

 

- 다형성 

  - 오버라이딩(Overriding) 

    - 부모 클래스와 자식클래스의 메서드 이름과 매개변수 타입, 개수, 순서가 동일하면

      메서드를 재 정의 할 수 있는 것이다.

 

  - 오버로딩(OverLoding)

    - 한 클래스 내에서 같은 매개변수 타입을 다르게하여 같은 이름의 메서드를 여러개 정의하는 것이다. 

 

2. 자바는 컴파일 언어인 동시에 인터프린터 언어이다.

- 자바는 JVM 위에서 동작하므로 *.java 원시코드를 *.class 바이트 코드로 변환한 후 

  자바 런타임이 바이트코드를 인터프린트 하면서 실행한다.

 

3. 자바는 OS에 종속 받지 않는다.

- 위에서 말했듯이 자바는 JVM 위에서 동작하므로 OS에 종속 받지 않는다. 

 

4. 메모리 관리 

- C와 다르게 자바는 객체 생성 시 메모리를 알아서 할당해 주고 사용하지 않는 건 제거 해 준다.