본문 바로가기

JAVA/객체지향16

자바 this / this() 뜻, 의미, 사용방법에 대해서 안녕하세요, 스코리아입니다. 오늘은 자바의 this, this()의 차이점과 의미(뜻)를 알아보고, 어떻게 사용하는지 사용 방법을 예제와 함께 알아보겠습니다. this 의미(뜻)? this를 단어의 어원적인 측면으로 본다면, '이것'이라고 해석합니다. 자바에서는 '인스턴스 자신의 메모리'를 가리키는 키워드입니다. 아래 그림과 같이 생성된 인스턴스의 메모리 주소를 가집니다. 클래스 내에서 참조 변수가 가지는 주소값과 동일한 주소값을 가지는 키워드입니다. this와 this()의 차이점과 사용방법 this는 this.매개변수 형태로 사용이 가능합니다. 매개변수와 객체 자신이 가지고 있는 변수의 이름이 같은 경우 이를 구분하기 위해 this를 붙입니다. 예를 들어 아래 코드를 보면 this.month = mo.. 2023. 8. 15.
자바 접근 제어 지시자와 정보은닉을 활용한 캡슐화 (객체지향) 안녕하세요. 스코리아입니다. 오늘은 자바의 접근 제어 지시자와 정보은닉을 활용한 캡슐화에 대해서 알아보겠습니다. 자바의 객체지향에서 매우 중요한 부분 중 하나가 바로 '정보은닉'입니다. 접근 제어 지시자 (Access Modifier) 클래스 외부에서 클래스의 멤버 변수, 메소드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 이 키워드는 멤버 변수, 메소드, 생성자의 타입값 (void, int, float..) 앞에 옴. 예를 들면 public int month; public : 클래스의 외부 어디에서나 접근 가능 private: 같은 클래스 내부에서만 접근 가능 (외부 클래스, 상속 관계의 클래스 접근 불가) protected: 같은 패키지나 상속 관계의 클래스에서 접근 가능 (그 외 외부에서는 .. 2023. 8. 14.
자바 참조 자료형 변수 정의하기, 사용 방법 (feat. 객체) 안녕하세요. 스코리아입니다. 오늘은 자바 참조 자료형 변수를 정의하여 사용하는 방법에 대해서 알아보겠습니다. 그전에 자바의 기본형 타입과 참조형 타입의 차이를 알고 계시나요? 모르고 계신다면 이 포스팅을 읽기 전에, 제가 이전에 작성했던 내용을 꼭 참고해 보시기 바랍니다! [이전 내용] 자바 기본형 타입 vs 참조형 타입 차이점 정리 https://skorea6.tistory.com/8 참조 자료형 변수의 자료형은 두 가지로 나뉩니다. 기본 자료형(기본형 타입)에는 int, long, float, double 등이 존재하고 참조 자료형(참조형 타입)에는 기본형을 제외한 모든 것이 해당됩니다. 예를 들면 String, Date, Student(객체) 등이 존재합니다. 참조 자료형은 클래스 형으로 변수를 선.. 2023. 8. 12.
자바 생성자 의미와 구현, 그리고 생성자 오버로딩 뜻? 안녕하세요. 스코리아입니다. 오늘은 자바의 생성자 의미를 파악하고 구현해 본 뒤, 생성자 오버로딩이 무엇인지 알아보겠습니다. 생성자 (constructor)란? 생성자 의미: 인스턴스가 생성될때 호출되는 인스턴스 초기화 메소드 생성자 용도: 객체가 생성될 때 변수나 상수를 초기화하거나 다른 초기화 기능을 수행하는 메소드를 호출 생성자 호출 방법 : 객체를 생성할 때 new 키워드와 함께 사용 - 예를 들면 new Student() 생성자 기본 문법: ([]){[] 생성자를 만들 때 주의할 점 생성자는 반환 값이 없음 생성자는 클래스의 이름과 동일해야 함 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private로 선언해야 하는 경우도 있음 기본 생성자 (default constructor)란.. 2023. 8. 10.
자바 메소드 의미, 인스턴스 생성과 힙메모리란? (feat. 객체) 안녕하세요 스코리아입니다. 자바의 메소드와 인스턴스, 힙메모리를 공부하기 전에 이전 시간에 설명드렸던 '객체지향적 프로그래밍'과 '함수의 스택 메모리 구조'를 꼭 이해하고 오시길 추천드립니다! [이전 내용] 객체지향적 프로그래밍: https://skorea6.tistory.com/3 [이전 내용] 함수의 스택 메모리 구조: https://skorea6.tistory.com/4 시작하기 앞서, TMI 하나만 하겠습니다.. 글의 제목을 생각하던 와중에, 메소드 vs 메서드? 뭐가 맞는가에 대해서 한참 고민했습니다. 구글 서칭 결과, Method의 한글 표기법은 '메서드'가 더 정확한 표현이라고 하네요:) 다만, 사람들은 '메서드'보다 '메소드'라고 더 많이 쓰는 것 같아서, 앞으로 '메소드'로 명칭 하여 설.. 2023. 8. 9.
자바 함수 정의, 호출 방법과 스택 메모리란? 안녕하세요. 스코리아입니다. 자바를 공부하다 보면 함수, 메서드, 인스턴스, 멤버변수(인스턴스변수), 매개변수, 객체 등 다양한 용어를 접하게 됩니다. 각각의 정의를 명확하게 알고 어떤 경우에 사용하는지 파악하면, 보다 쉽게 코딩이 가능합니다. 오늘은 함수에 대해서 자세히 알아보겠습니다. 우선, 함수 (Function)란 무엇일까요? 하나의 기능을 수행하는 일련의 코드 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨 (반환되는 값이 있을 수도 있고 없을 수도 있음) 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용할 수 있음 이제 함수를 정의해 봅시다! 함수는 이름, 매개 변수, 반환 값, 실행되는 몸체로 구성됩니다. 예를 들면, n1과 n2를 더.. 2023. 8. 7.
자바의 객체지향적인 프로그래밍은 도대체 무엇인가? (OOP 원칙) 안녕하세요. 스코리아입니다. 오늘은 자바(JAVA)의 객체지향적인 프로그래밍이 도대체 무엇이고 어떤 장점이 있으며, 어떻게 구현하는지 모두가 알기 쉽게 정리해 보겠습니다. 우선 객체 (Object) 란 무엇일까요? 사전적인 의미로는 의사나 행위가 미치는 대상이라고 합니다. 프로그래밍적인 의미로 봤을 때는 구체적, 추상적 데이터의 단위를 의미합니다. 예를 들면 회원, 생산, 주문, 배송 등을 객체라고 볼 수 있겠지요. 그렇다면 객체지향적인 프로그래밍 (OOP)이 무엇일까요? 프로그램의 구현을 시간의 흐름순이 아닌 객체 간의 관계와 협력을 기반으로 하는 것을 의미합니다. 여기서 프로그램의 구현으로 시간의 흐름순으로 설계하는 것을 절차 지향 프로그래밍이라고 합니다. 아침에 일어나 학교를 가는 과정을 예로 들어.. 2023. 8. 6.