본문 바로가기
백엔드/Java

<FAST CAMPUS>자바웹 개발 - 객체지향 프로그래밍

by 고구마는호박고구마 2020. 12. 31.

<객체지향 프로그래밍 7장~13장 정리>

 

생성자 (constructor)

객체를 생성할 때 new 키워드와 함께 호출 (객체 생성 외에는 호출할 수 없음)

인스턴스를 초기화 하는 코드가 구현됨 (주로 멤버 변수 초기화)

반환값이 없음, 상속되지 않음

 

Strudent 클래스

 

기본 생성자 

기본 생성자 (default constructor)

프로그래머가 생성자를 구현하지 않으면 컴파일러가 생성자 코드를 넣어준다.

 

 

생성자 오버로딩

매개 변수가 다른 생성자를 2개 이상 구현

 

생성자를 2개 만들어준다.

이렇게 생성자를 여러개 만들어 주면 좋은게 객체 생성에 있어 초기화 작업이 용이하다.

 

 

참조 자료형 이란?

클래스 형으로 변수를 선언한다.

ex) 문자 하나하나를 저장 하고 싶다 -> char

     숫자를 저장하고 싶다 -> int , long ...

     학생의 정보를 저장하고 싶다 -> Student 라는 클래스를 만들어서 참조 자료형으로 사용

 

 

정보 은닉

 - 접근 제어자 (access modifier)

   변수, 메서드, 생성자에 대한 접근 권한 지정

   public, private, protected, 아무것도 안 쓰는 경우 (기본 접근 제어자)

   private을 사용하면 클래스 외부에서는 접근 할 수 없음

 

   default인 경우 같은 페키지 안에서만 사용이 가능 하고 public으로 설정하면 

   다른 패키지에 있어도 사용이 가능하다.

 

  private 접근 제어 하기

  

MyDate클래스의 년,월,일을 private

 

main에서 private변수를 사용할 수 없음

그럼 어떻게 값을 넣을 것인가? 

클래스 안에 메서드를 따로 설정 해준다.

Day의 값을 설정하고 반환하는 메서드

this의 기능 - > 넘어오는 매개변수와 클래스의 멤버변수를 구별해주기 위한 기능 

마우스 우클릭 후 get set 함수 자동으로 설정 해주는 기능

main에서 다시 값을 넣어준다. 

 

그럼 public으로 open해서 변수의 값을 넣는 거랑

      private로 접근을 제어하고 메서드로 값을 받는거랑 뭐가 다른가?

                                         

메서드로 설정해줌으로 써 변수 하나하나 핸들링 할수가 있다.

 

set함수를 주석 처리 함으로써 바뀌면 안되는 값들을 설정할수 잇어 읽기만 가능하게도 할 수있다.

 

 

this에 대하여

 역할 

  - 자신의 메모리를 가리킨다.

  - 생성자에서 다른 생성자를 호출 한다.

  - 인스턴스 자신의 주소를 반환한다.

 

 

같은 heap메로리에 저장이 된다.

 

Person클래스에서 자기 자신 return
Person클래스에서 자기 자신을 리턴한 걸 p 에 저장 , Person personLee를 출력 
결과 -> 같은 메모리에 있다.

 

객체 간 협력

3개의 객체 1.학생이 버스를 탄다 (학생 과 버스의 협력)                                  2.학생이 지하철을 탄다 (학생 과 지하철의 협력)           

 

댓글