개발자로 가는길 :: 3/8 Java 인강 공부 (feat . chatGPT)

3/8 Java 인강 공부 (feat . chatGPT)

개발/파이썬|2023. 3. 8. 08:53
728x90
반응형

객체지향의 개념과  / Getter , Setter 사용 하는 이유 / 클래스의 캡슐화 / 추상화 의 개념 / 생성자의 개념

 

이 인도인 강사님은 진도가 시원시원하고 디버그를 통해 코드가 어떤순서로 동작하는지 보여줘서 좋다.

 

어느정도 개념은 잡았는데 이부분은 계속 반복해서 들어야 할 듯 하다.

 

chatGPT 에게 오늘 공부한 내용에대해 물어봤다.


Q:.객체지향 프로그래밍에 대해 요약해서 알려줘

 

A : 객체 지향 프로그래밍(OOP)은 코드를 특성과 동작이 있는 객체로 구성하는 데 중점을 둔 프로그래밍 패러다임입니다. 개체는 개체의 특성과 동작을 정의하는 청사진인 클래스의 인스턴스입니다. OOP에서 코드는 이러한 개체를 중심으로 구성되며 개체 간의 상호 작용은 개체 또는 클래스에 속하는 함수인 메서드를 사용하여 모델링됩니다. OOP는 코드 재사용, 모듈성 및 확장성을 가능하게 하는 강력한 개념인 캡슐화, 상속 및 다형성을 허용합니다. OOP는 Java, C++, Python 및 Ruby를 포함한 많은 프로그래밍 언어에서 사용됩니다.

 

Q: OOP가 뭐야?

 

A: OOP는 객체 지향 프로그래밍을 의미합니다. 객체를 프로그램의 기본 빌딩 블록으로 사용하는 프로그래밍 패러다임입니다. OOP에서 객체는 속성(속성 또는 데이터라고도 함)과 메서드(함수 또는 동작이라고도 함)가 있는 클래스의 인스턴스입니다. 클래스는 개체의 속성과 동작을 정의하는 데 사용되며 개체는 작업을 수행하기 위해 서로 상호 작용할 수 있습니다.

OOP는 모듈성, 캡슐화, 상속 및 다형성을 비롯한 여러 이점을 제공합니다. 모듈화를 통해 코드를 더 작고 관리하기 쉬운 부분으로 구성할 수 있습니다. 캡슐화는 외부 세계에서 개체의 내부 세부 정보를 숨겨 사용하기 쉽게 만들고 해당 상태의 우발적인 수정을 방지합니다. 상속을 통해 클래스는 다른 클래스의 속성과 동작을 상속하여 코드 재사용을 촉진할 수 있습니다. 다형성을 통해 서로 다른 클래스의 개체를 상호 교환하여 사용할 수 있으므로 유연성과 확장성이 제공됩니다.

OOP는 Java, C++, Python 및 Ruby와 같은 프로그래밍 언어에서 널리 사용됩니다.

 


Q : 추상화 클래스를 사용하는 이유를 알려줄래?

 

A : 물론이죠! Java에서 추상 클래스는 직접 인스턴스화할 수 없지만 다른 클래스의 기반으로 사용할 수 있는 클래스입니다. 이를 통해 개발자는 관련 클래스 그룹에 대한 공통 인터페이스 또는 구조를 정의하면서 구현의 변형을 허용할 수 있습니다. 개발자는 추상 클래스를 사용하여 프로그램에서 코드 재사용, 유지 관리 용이성 및 유연성을 높일 수 있습니다.

 


Q : 생성자의 개념에 대해 알려줘

 

A: Java에서 생성자는 클래스의 인스턴스를 만드는 데 사용되는 특수 메서드입니다. 클래스와 이름이 같고 반환 유형이 없으며 void도 없습니다. 생성자는 개체가 처음 생성될 때 개체의 상태, 즉 인스턴스 변수 또는 속성을 초기화하는 데 사용됩니다.

"new" 키워드를 사용하여 새 개체를 만들면 Java는 자동으로 클래스의 생성자를 호출하여 개체를 초기화합니다. 클래스에 정의된 생성자가 없으면 Java는 인수를 사용하지 않는 기본 생성자를 제공하고 인스턴스 변수를 기본값으로 초기화합니다.

생성자는 하나 이상의 인수를 사용할 수 있으며 오버로드될 수 있습니다. 즉, 클래스에 매개 변수 목록이 다른 여러 생성자가 있을 수 있습니다. 이를 통해 개발자는 생성자에 전달된 인수에 따라 초기 상태가 다른 개체를 만들 수 있습니다.

생성자는 코드 중복을 줄이고 코드 재사용을 촉진하기 위해 "this" 키워드를 사용하여 동일한 클래스의 다른 생성자를 호출할 수도 있습니다.

요약하면 생성자는 개체가 처음 생성될 때 개체의 상태를 초기화하는 데 사용되는 특수 메서드입니다. 클래스와 이름이 같고 반환 유형이 없으며 오버로드될 수 있습니다.

728x90
반응형

'개발 > 파이썬' 카테고리의 다른 글

3/9 Java 인강 공부(feat.chatGPT)  (2) 2023.03.09
3/8 Python 인강 Day 6 / Day 100  (0) 2023.03.08
3/7 Python 인강 Day 5 / Day 100  (0) 2023.03.07
3/6 Python 공부 day 4 / day 100  (0) 2023.03.06
3/5 Python 공부 day 3 / day 100  (0) 2023.03.05

댓글()