Coding 공부/Python

[Python_Summary] 클래스

CBJH 2024. 2. 1.
728x90
반응형

1. 객체 지향 특성 : 캡슐화

객체를 캡슐로 감싸서 내부를 볼 수 없게 하는 것

클래스는 기본적으로 입력과 출력값에 대한 상호작용으로 작동한다.

 

1-1. 클래스 : 객체 모양을 선언한 틀(캡슐화)

메소드(멤버 함수)와 필드(멤버 변수)는 모두 클래스 내에 구현

속성(필드)와 행위,동작,기능(Method)를 갖는 변수이다.

1-2. 객체

클래스의 모양대로 생성된 실체(instance)

객체 내 데이터에 대한 보호, 외부 접근 제한

>>객체 외부에서는 비공개 멤버(필드, 메소드)에 직접 접근할 수 없음

>>객체 외부에서는 공개된 메소드를 통해 비공개 멤버 접근

 

1-3. 상속

자식 클래스가 부모 클래스의 속성을 물려받고 기능을 추가하여 확장(extends)하는 개념이다. 

부모 클래스를 슈퍼 클래스(super class), 자식 클래스를 서브 클래스(sub class)라고 한다.

상속은 슈퍼 클래스의 필드와 메소드를 물려받아 코드를 재사용함으로써, 코드 작성에 드는 시간과 비용을 줄인다.

 

1-4. 다형성

오버라이딩(overriding): 슈퍼 클래스에 구현된 메소드를 서브 클래스에서 동일한 이름으로 자신의 특징에 맞게 다시 구현하는 메소드를 말한다.

오버로딩(overloading): 클래스 내에서 이름이 같지만 서로 다르게 동작하는 메소드를 여러 개 만드는 메소드를 오버로딩이라 한다. 

 

1-5. 생성자

클래스의 이름과 동일한 메소드를 특별히 생성자(constructor)라고 한다. 생성자는 객체가 생성될 때 자동으로 호출된다.

생성자가 없어도 자바에선 default생성자를 자동으로 만든다. (생성자가 하나라도 존재하는 클래스에는 컴파일러가 기본 생성자를 삽입해주지 않는다.)

생성자의 역할 : 메모리 공간을 할당하고 자리를 잡는다. 객체를 사용할 수 있게 만드는 역할.

생성자는 여러개 만들 수 있다.(생성자 오버로딩)

 

교재 192p까지 읽어보고 예제파일 코딩해보기

 

1) 클래스 예제 - 객체 생성, 객체 멤버 접근, 객체 메서드 호출

2) 클래스 예제 - 생성자에서 객체 멤버 초기화, 생성자 오버로딩(매개변수 숫자에 따라 여러개 작성)

>>public class Book{}이 가장 상위이고, main메서드는 그 안에서 작성한다. 만약에 같은 패키지 안에 다른 클래스를 접근하고 싶을 경우엔 main메서드에서 접근할 수 있다. 대신 public class Book{}안에서 또다른 클래스인 public class Circle{}같은건 사용할 수 없다.

 

 

 

 

 

 

 

 

 

 

 

 

댓글