- 객체
- 클래스
- 클래스 구성요소
- 오버로딩
- 정적(Static)
객체 지향 프로그래밍
객체를 정의 및 기능을 구현, 프로그램을 유연하게 하고 유지 보수가 좋아 대규모 프로젝트 개발에 많이 사용
객체
객체가 뭐야?
- 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것
- 물리적(자동차, 사람)으로 존재하는 것과 추상적(학과, 주문)으로 존재하는 것 모두 객체가 될 수 있다
- 객체 : 속성(필드) + 동작(메소드)
- 클래스 -----인스턴스화----> 객체 (=오브젝트, 인스턴스)
- 인스턴스화 : 객체를 만들기 위한 작업
클래스
- 멤버 변수(필드) + 메소드 + 생성자
- 클래스를 쓰는 이유
- 클래스로 하나의 객체에 대한 설계도를 짜면 그 객체를 반복적으로 생성 가능
- 다른 클래스의 필드와 메소드를 상속받아 쓸 수 있다(융합성이 좋다)
- 멤버 변수 : 한 객체 가지는 고유의 속성(정보)을 변수로 저장한것
- 메서드 : 객체의 기능(동작)을 구현한 것
- 생성자
- 보통 객체를 생성하고 객체의 고유 데이터 값을 필드에 저장하는 작업하는데 대개 동일 패턴으로 이루어지기 때문에 객체가 생성되고 나서 할 일을 클래스 안에 미리 써서 모든 객체들이 그 로직을 이용해 초기화 작업을 할 수 있게 하는 게 생성자
- 따로 선언하지 않으면 자동(디폴트 생성자)으로 생성해준다
명시적 생성자 선언
- 코드의 단순화
- 생성자 : python 의 __init__ 역할
- this : python 의 self 역할
- 디폴트 생성자만 있는 상태 : Car EV = new Car( );
- 명시적 생성자를 만든 후 : Car EV = new Car(4885, "Tesla", "Red");
오버로딩
메서드의 이름은 같고 매개변수의 개수나 타입, 순서가 다른 함수를 정의하는 것을 말한다
- 생성자 오버로딩 : 외부의 일정하지 않은 데이터들을 이용하거나 선택적으로 매개변수를 넘겨줘 객체를 초기화하기 위해 생성자를 다양화하는 것
- 메소드 오버로딩: 타입이 달라야 돼
- System.out.println(x);
- static / static / static 으로 접근하는 거니 다 실행이 된다
정적
정적(static) 은 공통의, 공유하는 개념
- 정적 필드(=공용 변수)
- 정적 필드는 여러 객체가 있을 때 이 객체 간의 고유한 데이터 값이 아닌 공용으로 사용하는 필드 값이 필요할 때 사용된다
- 모든 객체가 공통으로 가지고 있는 어떠한 값으로 말할 수도 있다
- static int grandTotal = 0;
- 정적 메소드
- 정적메소드는 객체를 따로 생성하지 않고 그 클래스 안에 있는 메소드만 이용하고 싶을 때 사용
* 객체처럼 필드와 메소드로 구성되어 있다
'2022-2 > seminar' 카테고리의 다른 글
자바 | 6장 상속과 인터페이스 (0) | 2022.02.03 |
---|---|
알고리즘 | 그리디 알고리즘 (0) | 2022.01.28 |
공통세미나 | What do you do for fun? (취미가 뭐예요?) (0) | 2022.01.25 |
쿠버네티스 | 4장 신뢰성 있는 컨테이너 네이브 애플리케이션 구현 (0) | 2022.01.25 |
쿠버네티스 | 3장 네트워킹, 로드밸런서, 인그레스 (0) | 2022.01.25 |