TIL - Java 기초(3)

김지현·2023년 4월 5일
0

항해99

목록 보기
3/16

2023-04-05


객체지향 프로그래밍

  • 프로그램을 보다 유연하고 변경이 용이하게 만들 수 있음
  • 코드의 변경을 최소화하고 유지보수 하는데 유리
  • 반복적인 코드를 최소화, 코드를 최대한 간결하게 표현 (코드의 재사용)
  • 보다 인간 친화적이고 직관적인 코드

객체

  • 세상에 존재하는 물체를 뜻하며 식별이 가능한 것
  • 속성(필드)와 행위(메서드)로 구성되어있음

객체간의 관계

1) 사용관계

  • 객체가 다른 객체를 사용하는 관계

2) 포함관계

  • 클래스의 멤버로 다른 클래스타입의 참조변수를 선언하고 그 타입의 객체를 만들어 주는 것
  • 작은 단위의 클래스를 만들고, 이를 조합해서 클래스를 만듦
  • A는 B를 가지고 있다 (has-a)
class Point {
	int x;
    int y;
}

class Circle {
	Point p = new Point();				// Circle이 Point를 포함
    int r;
}

3) 상속관계

  • 기존의 클래스로 새로운 클래스를 작성하는 것 (부모-자식 관계)
  • class 자식클래스 extends 부모클래스
  • A는 B이다 (is-a)
class Point {
	int x;
    int y;
}

class Circle extends Point {			// Circle이 Point를 상속
	int r;
}

특징

■ 캡슐화

  • 클래스 안에 서로 연관있는 속성과 기능들을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것

■ 상속

  • 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 것
  • 여러 객체에서 사용되는 기능을 하나의 클래스로 분리해서 사용할 수 있음 (코드 재사용)

■ 다형성

  • 어떤 객체의 속성이나 기능이 그 맥락에 따라 다른 역할을 수행할 수 있는 특성
  • 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것

■ 추상화

  • 객체의 공통적인 속성과 기능을 추출하여 정의하는 것
  • 추상 클래스(abstract class) & 인터페이스(interface)

객체와 클래스

클래스는 설계도, 객체는 인스턴스
객체를 인스턴스로 바꾸는 과정을 인스턴스화

0개의 댓글

관련 채용 정보