객체 1-1./객체지향언어/추상화/캡슐화/변수
자바에서 시작 혹은 자바의 꽃을 묻는다면 객체를 얘기 안 할 수 없습니다. 자바언어의 본질과 객체지향언어, 객체,클래스등등에 대해서 얘기해보겠습니다.
객체 지향 언어 : 객체 지향언어란 객체를 지향하는 언어로써 객체 중심으로 돌아갑니다.
그렇다면 객체란 무엇일까요? 모든것을 말할 수 있습니다. 사물,개념,무형,유형...등등
객체 지향 프로그래밍 : 현실세계에서 독립적으로 존재하는 것들간의 상호작용(행위)을 코드로 구현하는 과정입 니다.
구현하고자 하는 프로그램의 상의 객체를 만들기 위해 클래스라는 틀을 만들어야 합니다.
그렇다면 클래스는 무엇일까요?
클래스는 틀,구조입니다. 그 틀,구조은 각 객체의 속성(정보,행위)등을 담아냅니다.
클래스를 만드는 과정은 1) 추상화 과정
2) 캡슐화 과정입니다.
추상화 과정은 한마디로 내가 만들 틀에서 필요한 정보를 어떻게 뽑아낼 것인가라는 고민이라고 생각합니다.
예를 들어 주민등록증 클래스를 만든다고 할때 개발자는 어떠한 정보를 토대로 기입해야 할까요?
이름, 주소, 주민등록번호,성별,등등을 포함한다면 틀이 완성됩니다. 이러한 과정이 추상화 과정이 될것 같습니다.
캡슐화 과정은 이렇게 만든 틀에 대해서 외부에서 접근을 어떻게 처리 할 것인가라는 부분입니다.
예를 들어 정보은닉이 필요한 경우를 들어 은행 클래스을 만든다고 가정합니다. 여러가지 변수중에 통장잔액이 있다고 합시다. 이 부분은 외부에서 접근해서 바꾸면 안되기 때문에 은닉 처리를 하여야 합니다. 이러한 과정을 캡슐화 과정이라고 생각하시면 이해가 빠를것 같습니다.
클래스를 그럼 생성해보겠습니다. 2개의 클래스를 생성하겠습니다. 학생이라는 객체를 담을 클래스(즉, 라이브러리 역할을 할 클래스입니다.) 그리고 메인메소드를 포함하고 new연산자를 통해 객체를 생성해서 실행할 run클래스입니다.
기본적인 라이브러리 역할 클래스 구조는 필드부에서 변수를 선언 그리고 생성자부에서 변수를 초기화하는 값, 메소드부에서는 get,set 함수 등등 메소드를 구성할 수 있습니다.
학생을 객체로하는 라이브러리 클래스에서 필드부만 작성하였습니다. 필드부는 즉 변수를 만들고 선언하는 곳입니다. 접근제한자는 정보은닉을 생각하며 캡슐화를 생각하면서 그 범위를 정할 수 있습니다. 간단히 접근제한자를 설명하면, public은 모든 곳에서, private은 같은 클래스내에서 default 같은 패키지내에서 protected는 같은 패키지와 상속관계일때만 접근 가능합니다. 접근제한자는 나중에 더 자세하게 설명하겠습니다.
여기서는 이름,나이,성별을 변수로 선정하였습니다.
다음은 실행할 클래스 run 클래스입니다.
여기서는 new 연산자를 통해서 객체를 생성하였습니다. 혹시 new 연산자를 잘 모르신다면 보고오세요.
https://kwanghyung.tistory.com/entry/New-%EC%97%B0%EC%82%B0%EC%9E%90
New 연산자
New 연산자란 무엇일까요? 자바는 객체지향언어입니다. C를 하셨던 분들은 절차지향적 언어를 배우셨습니다. C++, C#, 파이썬등 쓰임새가 조금씩 다르지만 자바와 같이 객체 지향언어입니다. 객체
kwanghyung.tistory.com
iu라는 객체를 생성했습니다. 정확히 말하자면 iu 인스턴스를 생성하였습니다. 그 안에 .을 이용하여 라이브러리에 선언된 name,age,gender를 가져왔습니다. 접근제한자가 public이라서 가져올 수 있었습니다. 그리고 그 값을 각각 위와 같이 선언했습니다. 그리고 그 값을 출력하면 다음과 같습니다.
이렇듯 외부 클래스에서 new연산자를 통해 객체를 생성하고 라이브러리에 선언된 변수를 .으로 가져와 초기화 시킨 후 출력을 해보았습니다.
다음은 생성자부터 차근히 설명하겠습니다.
'자바-자린이의 도전기' 카테고리의 다른 글
객체1-3) 생성자부/접근제한자 (0) | 2022.04.03 |
---|---|
객체1-2.) 추상화/캡슐화/setter함수/Getter함수 (0) | 2022.04.01 |
배열복사 arraycopy()/Arrays.copyOf/clone (0) | 2022.03.28 |
배열복사 (0) | 2022.03.27 |
배열 array 예제/최대값/최소값/문자길이,개수/ (0) | 2022.03.26 |
댓글
이 글 공유하기
다른 글
-
객체1-3) 생성자부/접근제한자
객체1-3) 생성자부/접근제한자
2022.04.03 -
객체1-2.) 추상화/캡슐화/setter함수/Getter함수
객체1-2.) 추상화/캡슐화/setter함수/Getter함수
2022.04.01 -
배열복사 arraycopy()/Arrays.copyOf/clone
배열복사 arraycopy()/Arrays.copyOf/clone
2022.03.28 -
배열복사
배열복사
2022.03.27