본문 바로가기
국비교육기관/수업

22일차_자바_OOP

by 밀키스 2021. 4. 13.

@21.04.13

JAVA 

@OOP 

OOP ==> (Object Oriented Programming - 객체 지향 프로그래밍

       ==> 캡슐화, 추상화, 상속성, 다형성 이 4가지 특성을 갖는 것.

       ==> 어떤 대상을 Abstraction하여 공통점을 찾고, 그것을 Encapsulation하여 한군데에 모아서 객체               를 만들고, Inheritance하여 재사용이 가능하게 만들어 준다.

       ==> 상속받은 객체는 Polymorphism 하여 기능을 수정 또는 추가하여 재사용할 수 있다로                            이해하면 된다고 한다.

 

@1_Class 

    => 실제 Object를 제작하기 전 설계하는 도면 (== 설계도)

@2_ Object(객체) 

   ==> 클래스(설계도)를 기반으로 실제로 메모리에 할당되는 것

   ==> 클래스의 인스턴스화. (== 클래스(설계도)를 통해 만든 것. )(== 클래스를 실체화한다.)

@OOP의 특징 4가지 

@1_추상화( Abstract ) 

   ==> 자동차를 예로 들자면 겉의 각 부품들은 에쿠스와 페라리(?)가 공통된게 있을 것.

   ==> 추상화는 이러한 공통된것들만 뽑아내어 하나로 만드는 것.

 

 

@2_캡슐화( Encapsulation ) 

   ==> 만든 Data, Logic 등을 하나로 묶어 관리하는 것. / 정보를 은닉하는 것.

 

   자바에서의 캡슐화 예시

 

자바에서는 위와 같은 메소드를 불러들여와서 사용하고자 하는 명령어를 호출하지 않았는가?? 그와 비슷하다.

 

 

@3_상속( Inheritance ) 

   ==> 추상화가 공통점을 찾아 요약해나가는 것, 이라면 상속은 " 구체화 " 해나가는 과정이다.

 

@4_다형성( Polymorphism ) 

 

 

%Programming Paradigm 

   => 프로그래밍을 할 때 가지는 체계, 관점, 틀   (ex - 1. 절차적 / 2. 객체지향적)

%객체지향 프로그래밍의 장점 

@Class 만들어보기

People이란 Class를 만들어 보려한다. 사람이 갖고있는 정보(Field)와 기능(Method or Logic)을 구현한다.

뭐.. 갖고있는 장기, 이름, 나이 등등이 Class의 구조 중  Data(Field) 에 해당하며, 밥을 먹거나 운동한다 라고 이름지은 Method들은  Logic 에 해당한다.

이렇게 만든 People이란 클래스를 사용하려면 아래와 같이 특정 변수에 선언한다. Scanner와 같은 기능을 사용하는것과 같다.

 

%배열선언에 관해서

위에서 People이란 Class를 만들고 Organs라는 String 배열을 만들었다. 아래는 이에 Data를 채워 넣는 방법에 관해..

 

첫번째가 People이란 Class안에서 만든 Organs라는 Data를 선언한 모습이고, 2번째와 3번째가 각각의 Object(sewook,IU)에 장기를 채워 넣은 모습이다.

 

sewook 이란 객체에는 배열의 크기를 미지정하고 바로 Data를 집어 넣었다.

IU란 객체에는 배열의 크기를 3으로 부여하고, 각각 Data를 집어 넣었다.

 

2개의 방법에 대해서는 음.... 첫번째는 배열의 Frame을 생성과 동시에 Data를 집어 넣는다고 생각하면 되고,

두번째 방법의 경우는 3개의 공간을 만들고 Data를 넣는걸 순차적으로 이뤘다고만 생각하면 된다.

 

@ClASS - get / set Method 한번에 만들기 

만일 아래와 같은 Class를 생성했다고 할 때, 각 변수들을 리턴해주거나 설정하는 명령어들을 한번에 만들어주는 이클립스 기능이 존재한다.

Alt + Shift + S 단축키를 통해 Generate Getters and Setters라는 옵션을 선택하고 아래와 같이 만들고자 하는 Method를 선택하여 생성하면 한번에 만들 수 있다.

 

 

@생성자( Constructor )

생성자: 메소드명이 클래스명과 동일하고 리턴 자료형이 없는 메소드

 

사진을 보면 알 수 있듯, 그냥 s1이란 변수에 Student Class를 호출할 수도 있지만, 2번째 처럼 특정 값을 집어 넣어 Data를 Set하도록 하는 Method를 "생성자" 라고 한다.

 

%생성자( Constructor ) 에 대해서..

- Class와 이름이 동일한 Method여야 한다.

- 리턴 타입을 지정하지 않는다.

- 오버로딩이 가능하다.ㅁㄴㅇ

 

%단축키 - Constructor Generate 

 

위에서 Getters / Setters Method를 만든 방법과 동일하게 단축키를 사용하여 Constructor를 만들 수 있다.

참고로 만들었을 때, super( )라는 명령어도 만들어졌는데, 아직 수업 전이라고 지우게 됐다.

 

이클립스 스캔

 

반응형

댓글