NOW OR NEVER

[JAVA] Class와 InterFace 본문

Back-End/JAVA

[JAVA] Class와 InterFace

LAURA 2023. 5. 4. 09:03
반응형

Class와 InterFace

  • 변수 사용 할 수 있냐 없냐 여부는 해당 변수를 사용하고자 할 때 그 변수가 메모리에 저장되어 있으면 사용 가능

static

  • 객체를 생성하지 않아도 사용 할 수 있다. : static으로 변수 선언 시 객체를 생성하기 전에 이미 변수가 만들어져 있다.
  • static 메서드는 객체를 생성하지 않아도 사용 가능한 메서드이기에 메소드 안에 들어가는 것(매개변수, static 변수들 등)들은 static만 사용할 수 있다.
  • static으로 선언한 메서드 안에서 객체를 생성해야지만 만들 수 있는 멤버변수 선언은 불가능하다
  • static 변수는 static 메서드에서 사용하는 변수이거나 프로그램 전체에서 1개만 있는 값일 경우 사용하는 것이 편하다.
  • 하나밖에 없거나 멤버변수 사용하지 않을 때 static 메서드 사용한다고 생각하면 된다.
  • 접근 제한자 같이 사용 가능
  • main 메서드 의 경우도 static 붙여져 있는 이유: jvm이 클래스를 호출하지 않고 해당 메서드를 직접 호출하기 위해서이다

final

  • 목적 : 클래스가 가지고 있는 메서드를 오버라이딩하지 못하게 함
  • 상수 정의하기 위해 사용할 수도 있지만 다른 용도로도 사용
  • 상속하지 못하게 함
  • 프로그램 실행 중에 절대로 변경되면 안되는 것들을 final로 정의한다.
  • final 붙여주면 해당 메서드는 overriding 불가
  • 더이상 변경할 수 없다라는 의미를 가진 키워드

추상 클래스

  • 메서드의 오버라이딩을 강제화 하기 위해서 사용
  • 객체 생성되지 않게 하고 무조건적으로 상속해서 만들게 함

interface

  • 전부 추상 메서드만 가지고 있음
  • 상속이 아닌 구현의 개념
  • 동시에 많은 클래스 구현 가능
  • 원래 추상메서드만 가질 수 있었는 데 개발자들의 요구로 그냥 메서드도 추가할 수 있게 됨

ETC

  • 자바는 다중 상속을 지원하진 않지만 인터페이스를 이용해서 다중 상속처럼 이용하라고 함, 하지만 인터페이스를 이용해서 다중 상속처럼 하는 건 복잡해지기에 이용하지 않는 것을 추천함
  • 객체 지향 프로그래밍에서 클래스의 목적 : 객체를 생성하기 위한 설계도의 역할
  • 객체 지향 프로그래밍에서 코드의 재사용성이 중요하다.
  • 변수 사용 할 수 있냐 없냐 여부는 해당 변수를 사용하고자 할 때 그 변수가 메모리에 저장되어 있으면 사용 가능
Comments