10일차(6/20화)
JAVA
객체지향 프로그래밍
- 프로그래밍에서 객체를 사용하는 것을 의미함.
- 데이터와 메서드를 포함하는 객체 개념에 기반한 프로그래밍
- 프로그램의 유연성을 향상하고 유지관리 기능성을 높임
- 데이터 및 데이터의 동작(메서드)을 단일 위치(객체)에 통합하여 프로그램 작동 방식을 더 쉽게 이해할 수 있음.
객체지향 프로그래밍의 장점
- 개발 속도 향상
- 소프트웨어 유지관리 향상
- 소프트웨어 개발의 생산성 향상
- 개발 비용 절감
객체지향 프로그램이의 구성요소
캡추다정상
-
클래스
- 멤버변수 (=인스턴스변수)
- 멤버 메서드
- 객체의 동작, 데이터의 조작이 이루어지는 곳.
- 생성자
-
객체
-
캡슐화
- 데이터(변수)와 행동(메서드)를 하나의 단위(클래스)로 묶는 기법
- 데이터를 수정하지 못하도록 안전하게 하기 위해 정보의 세부 사항을 숨기고 객체의 데이터와 메서드를 보호하는 과정을 의미함.
-
추상화(abstract)
-
다형성
- 오버로딩
- 동일 클래스 내, 메서드명이 같지만 매개변수의 개수 혹은 데이터형태가 다른 메서드를 정의하는 것.
- 오버라이딩
- 상속 관계일때, 자식클래스에서 부모클래스의 성질을 변경하는 것.
-
상속
-
클래스의 메서드
- 정적 메서드
static
키워드로 정의되는 메서드
- 인스턴스를 생성하지 않고도 클래스 이름을 통해 직접 호출할 수 있다
- 인스턴스 메서드
- 정적 키워드가 없는 메서드
- 특정 인스턴스(객체)에 속하는 메서드
- 인스턴스가 생성된 후에만 호출이 가능하다.
- 생성자
- 클래스와 동일한 이름을 가진 특별한 종류의 메서
- 객체를 초기화하고 생성하는 데 사용
- final메서드
final
키워드로 선언된 메서드
- 하위 클래스에서 재정의(오버라이딩)할 수 없는 메서드
- 상위 클래스에서 최종적인 구현을 제공하고 하위 클래스에서 변경되지 않도록 할 때 사용
- 추상 메서드
abstract
키워드로 선언된 메서드
- 메서드의 시그니처(이름, 매개변수, 반환 타입)만 정의되고 실제 구현은 하위 클래스에서 이루어진다.
생성자
- 멤버변수를 초기화하기 위해 쓴다.
- static은 자동으로 디폴트생성자를 불러온다.
- 아니라면, new를통해 디폴트생성자를 만들어줘야한다.
![](https://velog.velcdn.com/images/jja6312/post/adc69f77-31ab-4787-b861-5ed6a5486a11/image.png)
- 타 클래스의 함수에 매개변수가 없다면,
![](https://velog.velcdn.com/images/jja6312/post/9c78c3dd-bfc6-402e-875e-d2ee0f103c63/image.png)
기본생성자
- 매개변수가 없는 생성자
- 클래스 내에 기본 생성자를 정의하지 않아도 됨
- 클래스 내에 기본 생성자를 정의하지 않으면 컴파일러는 해당 클래스에 대한 기본 생성자를 자동으로 생성함.
MySQL
데이터테이블의 범위를 좁혀야 실행속도가 빨라진다.
따라서 from절 최적화를 이뤄야한다.
![](https://velog.velcdn.com/images/jja6312/post/9c71db69-9ca3-4a59-8b5d-c78dfa0096de/image.png)
![](https://velog.velcdn.com/images/jja6312/post/727115ec-4293-4426-af05-963bc4b81f92/image.png)