Language/Java

자바 클래스의 이해와 객체지향 프로그래밍 강의노트3

SambaLim 2019. 10. 26. 10:28
2_클래스_활용

인프런에서 자바: 클래스의 이해와 객체지향 프로그래밍을 수강하며 적은 강의노트입니다.

강의내의 예시와 자세한내용은 강의를 통해 확인하실 수 있습니다.

 

14. 은닉화

객체의 변수를 public으로 설정하였을 경우, 외부에서 마음대로 그 변수를 사용할 수 있음

  • 의도하지 않은 범위의 값을 넣을 수 있다.
  • 원하지 않는 데이터타입을 강제적으로 형변환하여 넣을 수도 있다.

Getter ,Setter

 

15. 객체 확인

클래스와 오브젝트의 응용

instanceof는 오브젝트가 지정한 클래스의 오브젝트인지를 조사하기 위한 연산자

왼쪽 오브젝트가 오른쪽 클래스 또는 서브 클래스의 오브젝트라면 true

 

instanceof는 지정한 인터페이스를 오브젝트가 구현하고 있는지를 조사할 수도 있다.

왼쪽 오브젝트가 오른쪽 인터페이스를 구현하고 있으면 true

 

16. 클래스

  • 자바의 모든 클래스와 인터페이스는 컴파일 후, class 파일로 생성된다.
  • class 파일에는 객체의 정보(멤버변수, 메서드, 생성자 등)가 포함되어 있다.
  • Class클래스는 컴파일된 class 파일에서 객체의 정보를 가져올 수 있다.
  • reflection 프로그래밍: Class클래스를 이용하여 클래스의 정보를 가져오고 이를 활용하여 인스턴스를 생성하고, 메서드를 호출하는 등의 프로그래밍 방식

Class.forName()

프로그래밍 할 때는 어떤 클래스를 사용할지 모를 때 변수로 처리하고, 실행될 때 변수에 대입된 값의 클래스가 실행될 수 있도록 Class 클래스에서 제공하는 static 메서드

  • 실행 시에 로딩(동적 로딩)되므로 경우에 따라 다른 클래스가 사용될 수 있어 유용하다.
  • 컴파일 타임에 체크할 수 없으므로 Class.forName()에 들어간 문자열에 댛나 클래스가 없는 경우 ClassNotFoundException이 발생할 수 있다.
  • 외부에서 소스코드 없이 클래스만 제공받아 사용할 경우에도 많이 사용한다.

 

17. 절차지향 및 객체지향

  • 절차지향 프로그래밍 : C
  • 객체지향 프로그래밍 : Java, C++, C#, Python

절차지향

순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법

서로 분리되면 안되고, 함수 호출순서가 틀려서도 안된다.

객체지향

제작에 있어서 순서적이지 않아도 되며, 각각 독립적으로 개발되어 나중에 한곳에 모여 자신의 기능만 제대로 발휘되면 된다.