loading

디지털노마드 달토깽이♡

반응형

객체지향 프로그래밍

모듈화

유지보수에 용이하다

arrayList

 

각각의 객체는 호환이 되어야한다.

각각 객체가 호환성을 갖게 하려면

규격이 필요해요!

 

그 규격이 인터페이스, 추상케이스 다되요.

 

 

 

객체 지향 프로그래밍이란? 

객체 지향 프로그래밍(Obect Oriented Programming : OOP) 이란? 여러 개의 독립된 단위, 즉 객체들의 모임으로 파익하고자 하는것/ 각각의 객체들은 호환이 되어야한다. 호환이 되기위해 반드시 규격을 함께 설계해줘야한다.

각각의 객체는 메시지를 주고 받고 데이터를 처리하는데, 뭘 사용해서? 메소드를 가지고 (구체적 매개변수, 리턴)

 

대표적으로 arraylist add 매소드, 리무브 메서드, get 등

 

 

 

 

객체지향프로그래밍의 특징 

1. 추상화

객체는 유일한거고, 설계(클래스)는 추상적

클래스를통해 만들어진 메모리가 객체

 

 

 

 

 

2.다형성 : 

설계 추상적으로 구성했기때문에 객체가 다형성으로 설계할수있음. 인과관계.

 

 

 

 

 

3. 상속

프로그래밍 상속

전화기를 상속받아서 핸드폰과 공중전화가 만들어졌다. 이렇게 말하고 점점점 업그레이드되고, 구체화되는 것.

프로그래밍에서 상속이라는 것은 더 나은 것을 만들어가는 과정, 구체화 되는 과정.  가장 구체적인 설계 ios, Android

 

추상적인 클래스(부모클래스)의 특성을  그대로 이어받아 더 구체적인 클래스(자식클래스)를 생성하는 기법기본코드를 그대로 재사용하거나 재정의 - 재사용+확대 

 

 

전화기 - 전화 거는 기능, 받는기능, 전화번호 

 

 

 

 

 

 

4.캡슐화 (정보은닉)

접근제한자 

 

 

객체지향 프로그래밍의 활용방안 중 가장 초보가 이해하기 쉬운 것이 있다!- 사용자(개발자) 정의 자료형 ! (Value Object) _DTO

 

예시) 우리는 키오스크를 만들고 있습니다!메뉴 정보(배열,ArrayList)을 미리 저장해두고 싶습니다!

 

1) 설계

- 그렇다면! 각각의 메뉴들은 어떤 정보를 가지고 있을까?가격, 이름, 판매량,분류 (공통적인 속성들을 뽑아서 정의)

 

2) 가격숫자를 고를때는 연산이 필요할때 정수로 하는 것이 적합.핸드폰번호는 String - 숫자계산할필요가 없으니까.10진수 : 1-9까지, 그래서 10이라고!

 

주민등록번호는 int 2개로 쓰는 것이 적합함학번 String 메뉴이름 String 판매량 int 분류 - 코드값

 

데이터의 무결성 반드시 그 데이터의 하나여야하는데, 데이터의 결점무결성이 존재해야 한다. 

 

 

=> class로 설계!

 

 

 

 

 

 

 

 

//설계도

package cafe;

public class MenuVO {

//사용자 정의 자료형(개발자가 필요에 의해 새롭게 만드는 자료형!)

//내가 만든 자료형~~ MenuVO

 

//1.여기에 담을 정보들을 변수(필드)로 생성한다.

String name;

String type;

int Price;

int cnt;

 

필드 + 생성자 + get, set + 메소드 

 

 

}

 

 

 

 

 

 

 

//메인 -실행시키는거

package cafe;

public class Main {

public static void main(String[] args) {

 

//2. 내가 설계(class)해놓은 자료형(vo)을 가지고 실제 메모리(객체)를 만들어보자!

메모리 만드는 키워드 = new★ 뉴옆에는 내가 만들고 싶은 형태

MenuVO m1= new MenuVO();  메모리 할당되면 주소 부여,주소를 저장해놔야 찾아갈수 있는데 변수에 저장해야한다. 레퍼런스 변수

MenuVO m2= new MenuVO();

 

//정리) 클래스 - 객체를 만들기 위한 설계도

//객체 - 클래스 사용해(실체화한) 생성한 메모리!

 

m1.name="아메리카노";//객체에 값 집어넣은거.

m2.name="아이스 바닐라 라떼"

}

}

 

이거 왜 에러남?
해결하려면 어케함?

객체를 생성할때!
생성자가 호출이 되는데!
생성자 메소드에! 매개변수가 있으니!
객체 생성시 매개변수 개수와 타입을 맞춰줘야 한다!~

 

 

같은 자료형일때, 배열 VS VO

  • 배열- 배열 할때 유리할때는 인덱스 순서가 필요할때
  • VO - 데이터의 이름이 필요할때, 순서 중요 x 

메소드 통해서 접근
메소드 중에서 딱 한번 호출되는 거 써서 - 생성자

getname안에 범위안에 변수가 없어서
그냥 this 쓸 필요없음.

set은 수정할때만 사용 

 

 

 

 

유연하다 = 의존성을 제거했다, 추상적인 설계

 


Copyright ⓒ 2023 달토깽이. All Rights Reserved.


같이 읽으면 좋은글 

 

 

슬기로운 광주 스마트인재개발원 교육생 생활 2달째 (인공지능 개발자 과정) | 달토깽이

슬기로운 광주 스마트인재개발원 교육생 생활 2달째 (인공지능 개발자 과정) 글 사진 · 달토깽이 안녕하세...

blog.naver.com

 

정처기 정보처리기사 수업시작 광주 스마트인재개발원 일상(인공지능 개발자 과정) | 달토깽이

광주 스마트인재개발원 정처기 정보처리기사 수업시작 글 사진· 달토깽이 <오전 수업시간> 정보처리...

blog.naver.com

 

광주 스마트인재개발원 인공지능서비스 개발자 과정 개강식 | 달토깽이

광주 스마트인재개발원 인공지능서비스 개발자 과정 개강식 글사진 · 달토깽이 안녕하세요. 디지털노마드 ...

blog.naver.com

반응형

'개발자 공부 > java study' 카테고리의 다른 글

Duplicate local variable createDate 에러  (0) 2023.01.02