0512 TIL
클래스
Object
객체지향 프로그램밍특징
추상화
- 객체에서 공통된 속성과 행위를 추출하는 기법
- 코드 상에서 구현(로직) 부분을 제외한 오직 선언 부분만을 설계
캡슐화
관련된 필드(속성)와 메소드(기능)를 하나로 묶고, 실제 구현 내용을 외부로부터 감추는 기법(정보은닉)
만일의 상황(타인의 외부에서 조작)을 대비해서 특정 속성이나 메소드를 사용자가 조작할 수 없도록 숨겨 놓은 것
외부에서 공개된 메소드(기능)의 인터페이스를 통해 접근할 수 있다.
상속
이미 작성된 클래스의 특성을 그대로 이어받아 새로운 클래스를 생성하는 기법
메소드 오버로딩 = 중복정의
메소드 오버라이딩 = 재정의
다형성
하나의 형태를 가지고 여러가지를 표현
운다 -고양이 : 야용
운다 -강아지 : 멍멍
운다 - 사람 : 엉엉
사전적 의미 ' 다양한 형태로 나타날 수 있는 능력
같은 기능(메소드)를 호출하더라도 객체에 따라 다르게 동작하는 것
상위클래스의 동작을 하위클래스에서 다시 정의하여 사용하는 것 또한 다형성으로 볼 수 있다.
객체지향프로그램의 장점
- 신뢰성 있는 소프트웨어를 쉽게 작성할 수 있다
- 코드를 재사용하기 쉽다
- 유지보수가 용이하다
- 직관적인 코드 분석이 가능하다
- 소프트웨어 생산성이 향상된다
클래스의 구조
public class 클래스명{
--- 객체의 속성 정의
자료형 필드명1;
자료형 필드명2;
--- --- 객체의 기능 정의
반환형 메소드1(){---}
반환형 메소드2(){---}
객체지향 프로그래밍(oop)
class(설계도)
- 필드(속성, 데이터, 변수)
- 메서드(객체의 행위, 기능)
- ** 생성자
Person p1 = new Person();
Person p1 = new Person("조자연",24,"여");
- 리턴 타입이 존재하지 않는다(void도 x)
- 생성자 메소드의 이름과 클래스 명이 동일하다
- 메인메서드에서 객체를 생성하는 순간 자동적으로 호출
- 생성자는 메서드입니다.
- 클래스를 만들면 기본생성자 생략이 되어있다.
새로운 생성자를 작성하면 기본생성자는 기능이 덮어씌어진다.
(사용하고 싶다면 기본생성자도 작성해주기!!!)
----> 오버로딩(중복정의)
.....(숨어있는 기본생성자)
- 오버로딩
public Person(){
}
public Person(String name, int age){
}
Object