본문 바로가기

객체5

자바 객체 간의 상속(extend) 의미, 구현방법 안녕하세요, 스코리아입니다. 오늘은 자바 객체 간의 상속의 의미와 구현 방법을 예시와 함께 알아보겠습니다. 클래스 상속 (Class Inheritance) 의미 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속함 상속하는 클래스: 상위 클래스, parent class, base class, super class 상속받는 클래스: 하위 클래스, child class, derived class, sub class 상속 문법 (방법) class B extends A { } 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념, 기능을 가짐 하위 클래스는.. 2023. 8. 25.
자바 객체 배열 선언/구현하기 + 얕은복사, 깊은복사 방법 안녕하세요. 스코리아입니다. 이전 시간에는 자바 1차원 배열을 선언하는 방법과 초기화하는 방법에 대해서 알아보았습니다. [이전 내용] 1차원 배열 선언, 초기화 방법 : https://skorea6.tistory.com/14 오늘은 자바 객체 배열을 선언/구현해 보고, 얕은 복사와 깊은 복사 방법을 예제와 함께 알아보겠습니다. 객체 배열 특징 기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당됩니다. 하지만, 객체 배열의 경우에는 요소가 되는 객체의 주소가 들어갈 메모리(4byte, 8byte..)만 할당되고 각 요소 객체는 생성하여 저장해야 합니다. 객체 배열을 만들고 나면, 모든 index의 값은 null로 초기화됩니다. 객체 배열 선언, 구현하기 Book.java 파일을 만들어, Bo.. 2023. 8. 21.
자바 this / this() 뜻, 의미, 사용방법에 대해서 안녕하세요, 스코리아입니다. 오늘은 자바의 this, this()의 차이점과 의미(뜻)를 알아보고, 어떻게 사용하는지 사용 방법을 예제와 함께 알아보겠습니다. this 의미(뜻)? this를 단어의 어원적인 측면으로 본다면, '이것'이라고 해석합니다. 자바에서는 '인스턴스 자신의 메모리'를 가리키는 키워드입니다. 아래 그림과 같이 생성된 인스턴스의 메모리 주소를 가집니다. 클래스 내에서 참조 변수가 가지는 주소값과 동일한 주소값을 가지는 키워드입니다. this와 this()의 차이점과 사용방법 this는 this.매개변수 형태로 사용이 가능합니다. 매개변수와 객체 자신이 가지고 있는 변수의 이름이 같은 경우 이를 구분하기 위해 this를 붙입니다. 예를 들어 아래 코드를 보면 this.month = mo.. 2023. 8. 15.
자바 메소드 의미, 인스턴스 생성과 힙메모리란? (feat. 객체) 안녕하세요 스코리아입니다. 자바의 메소드와 인스턴스, 힙메모리를 공부하기 전에 이전 시간에 설명드렸던 '객체지향적 프로그래밍'과 '함수의 스택 메모리 구조'를 꼭 이해하고 오시길 추천드립니다! [이전 내용] 객체지향적 프로그래밍: https://skorea6.tistory.com/3 [이전 내용] 함수의 스택 메모리 구조: https://skorea6.tistory.com/4 시작하기 앞서, TMI 하나만 하겠습니다.. 글의 제목을 생각하던 와중에, 메소드 vs 메서드? 뭐가 맞는가에 대해서 한참 고민했습니다. 구글 서칭 결과, Method의 한글 표기법은 '메서드'가 더 정확한 표현이라고 하네요:) 다만, 사람들은 '메서드'보다 '메소드'라고 더 많이 쓰는 것 같아서, 앞으로 '메소드'로 명칭 하여 설.. 2023. 8. 9.
자바의 객체지향적인 프로그래밍은 도대체 무엇인가? (OOP 원칙) 안녕하세요. 스코리아입니다. 오늘은 자바(JAVA)의 객체지향적인 프로그래밍이 도대체 무엇이고 어떤 장점이 있으며, 어떻게 구현하는지 모두가 알기 쉽게 정리해 보겠습니다. 우선 객체 (Object) 란 무엇일까요? 사전적인 의미로는 의사나 행위가 미치는 대상이라고 합니다. 프로그래밍적인 의미로 봤을 때는 구체적, 추상적 데이터의 단위를 의미합니다. 예를 들면 회원, 생산, 주문, 배송 등을 객체라고 볼 수 있겠지요. 그렇다면 객체지향적인 프로그래밍 (OOP)이 무엇일까요? 프로그램의 구현을 시간의 흐름순이 아닌 객체 간의 관계와 협력을 기반으로 하는 것을 의미합니다. 여기서 프로그램의 구현으로 시간의 흐름순으로 설계하는 것을 절차 지향 프로그래밍이라고 합니다. 아침에 일어나 학교를 가는 과정을 예로 들어.. 2023. 8. 6.