본문 바로가기

자바13

[Java] 15. 추상 클래스 1. 개요 Abstract, '추상적'이라는 의미를 가지고 있는 단어이다. 추상적이라는 것은 어떠한 사물이 직접 경험하거나 지각할 수 있는 일정한 형태나 성질을 갖추지 않은 것이다. 즉, 구체적인 것이 존재하지 않고 막연하기만 한 것을 추상적이라고 한다. 프로그래밍, 자바에서도 이와 비슷하게 구체적인 형태가 존재하지 않은 클래스 문법을 '추상 클래스(Abstract Class)'라고 한다. 2. 추상 클래스 (Abstract Class) ① 추상 클래스의 정의 - 미완성된 설계도(클래스, class) - 미완성된 메서드, 추상 메서드를 가진 클래스 - 클래스 앞에 추상적이라는 의미를 가진 'abstract' 단어를 붙여서 정의한다. - new() 연산자를 통해서 객체를 만들 수 없지만, 상속을 통해서 추.. 2023. 1. 26.
[Java] 14. 다형성 (Polymorphism) 1. 개요 이번에 정리한 것은 자바, 객체 지향 프로그래밍 언어로써 가지는 특징 중 하나인 '다형성'에 대한 것이다. 처음에는 객체 지향 프로그래밍 언어 특징 전체를 정리한 게시글에 이 내용을 추가하는 것을 고려해 봤지만 정리를 하다 보니 처음에 생각한 것보다 분량이 많아서 그냥 개별적으로 추가하기로 했다. 객체 지향 프로그래밍 언어에 대해 정리한 것은 아래 링크를 통해서 확인하면 될 것이다. https://rclogstorage.tistory.com/m/14 [Java] 0 - (1). 객체 지향 프로그래밍이란 무엇인가 앞에서 자바의 정의와 특징들을 설명할 때, 자바의 특징인 '객체지향 언어'라는 부분에 대해 설명하지 않고 넘어갔었다. 이번에는 객체 지향 언어, 객체 지향 프로그래밍에 대해 정리해보겠다.. 2023. 1. 20.
[Java] 13. 오버로딩 (Overloading) 1. 개요 자바 생성자 게시물에서 this 키워드를 설명할 때, 오버로딩의 정의를 간략하게 설명하고 상세한 것은 추후에 하겠다고 하며 넘어간 적이 있었다. 이번엔 오버로딩에 대해 좀 더 상세하게 설명해 보도록 하겠다. 2. Overloading ① 오버로딩의 정의 - 자바에서 메서드를 다루는 기법 중 하나 - Overloading: 과적하다, 너무 많이 주다. (사전적인 의미) - 매개변수의 개수, 타입을 다르게 해서 같은 이름의 메서드가 존재할 수 있게 하는 기법 - 오버로딩, 메서드 오버로딩은 객체 지향 프로그래밍 언어의 특징 중 하나인 '다형성(Polymorphism)'을 구현하는 방법 중 하나이다. 아래는 메서드 오버로딩의 성립 조건이다. 자바로 프로그래밍을 하다 보면 오버로딩을 활용할 일도 많으.. 2023. 1. 17.
[Java] 12. 캡슐화와 접근 제어자 1. 개요 이번에는 객체 지향 프로그래밍의 특징 중 하나인 캡슐화에 대해서 정리해 보겠다. https://rclogstorage.tistory.com/m/14 [Java] 0 - (1). 객체 지향 프로그래밍이란 무엇인가 앞에서 자바의 정의와 특징들을 설명할 때, 자바의 특징인 '객체지향 언어'라는 부분에 대해 설명하지 않고 넘어갔었다. 이번에는 객체 지향 언어, 객체 지향 프로그래밍에 대해 정리해보겠다. rclogstorage.tistory.com 사실 캡슐화는 앞에서 객체 지향 언어의 특징을 정리할 때 한 번 다뤄본 적이 있었지만 상세하게 다루지는 않고 그냥 이런 것이 있다 식으로 넘어갔었다. 이번에는 캡슐화의 정의와 캡슐화를 가장 잘 표현할 수 있는 '접근 제어자'도 같이 다뤄보도록 하겠다. 2. .. 2023. 1. 16.
[Java] 11. 생성자 (Constructor) 1. 생성자 ① 생성자의 정의 - 사용자가 new 연산자를 통해서 객체를 생성할 때, 제일 먼저 호출되는 일종의 메서드이다. ② 생성자의 특징과 역할 - 생성자는 return 타입이 존재하지 않는다. - 개발자가 생성자를 만들지 않은 상태로 컴파일을 하면 매개변수가 없는 생성자가 자동으로 생성된다. 이때 매개변수가 없는 생성자를 기본 생성자라고 한다. - 클래스가 객체화될 때, 객체의 멤버 변수를 초기화하는 역할을 한다. - 생성자 메서드는 자바 프로그램이 실행될 때 딱 한 번만 실행된다. ③ 일반 메서드, 생성자 메서드 비교 //일반 메소드 class Example { int add(int a, int b){ //'return 타입''메소드 명'(매개변수){/*명령 입력*/} } } //생성자 메소드 .. 2023. 1. 16.
[Java] 10. 상속 (Inheritance) 1. 상속 (Inheritance) ① 상속의 정의 상속의 사전적인 정의는 "부모가 가진 것을 자식에게 물려주는 것."이라고 할 수 있다. 프로그래밍에서의 상속도 이러한 기능을 가지고 있다.상속은 객체 지향 프로그래밍에서 제공되는 함수/데이터 모듈화의 일종으로피상속 객체의 데이터나 함수를 상속 객체가 그대로 이어받아서 쓸수 있는 기능이다. 여기서 데이터와 함수를 이어주는 피상속 객체를 '부모 클래스' 이를 상속받는 상속 객체를 '자식 클래스'라고 한다. ② 상속 사용 방법 프로그래밍에서 상속 기능을 사용하는 방법은 아래와 같다. class 동물 { } class 사람 extends 동물 { } //class extends //부모 클래스: 동물 //자식 클래스: 사람 //사람 class는 동물 class.. 2022. 12. 22.
[Java] 8. Scanner 1. 개요 이번에 정리한 것은 자바에서 사용되는 여러가지 입력 방법 중 하나인 Scanner 클래스에 대한 것이다. 바로 Scanner 클래스가 가진 특징을 확인하고, 예제문제로 넘어가도록 하겠다. 2. Scanner 클래스 ① Scanner의 특징 - 정수, 실수, 문자열과 같은 기본적인 데이터 타입을 가진 값들을 Scanner가 가진 메소드를 사용해서 입력받을 수 있다. - Scanner를 사용할 때는 'java.util' 패키지에서 Scanner 클래스와 관련된 패키지를 호출해야만 사용할 수 있다. (자바에서 사용되는 대부분의 클래스들은 lang 패키지가 아니라면 import를 통해서 호출해야만 한다.) - 공백(띄어쓰기)이나 ' ', '\n'과 같은 줄바꿈을 기준으로 데이터를 읽는다. 이를 통해서.. 2022. 12. 4.
[Java] 7. 클래스와 객체 (Part 2) 0. 개요 https://rclogstorage.tistory.com/23 [Java] 7. 클래스와 객체 (Part 1) 0. 개요 우리가 프로그래밍을 하다보면 변수에 여러 값을 담아야하는 경우가 많다. 다만 변수에는 값을 하나만 담을 수 밖에 없으며, 변수와 값의 자료형이 다르면 값을 담을 수 없다. 그래서 고 rclogstorage.tistory.com '클래스와 객체' Part 1에서 객체의 정의와 클래스의 정의 및 구성요소들에 대한 설명을 했었으니 이번에는 그때 정리했던 내용을 다시 복습한다는 느낌으로 예제 문제를 하나 만들고 이에 대한 설명을 하는 것 위주로 할 것이다. 예제로 제시한 문제는 다음과 같다. //예제 문제 //조건: 자동차 객체를 만드시오. public class Main { p.. 2022. 11. 21.
[Java] 7. 클래스와 객체 (Part 1) 0. 개요 우리가 프로그래밍을 하다보면 변수에 여러 값을 담아야하는 경우가 많다. 다만 변수에는 값을 하나만 담을 수 밖에 없으며, 변수와 값의 자료형이 다르면 값을 담을 수 없다. 그래서 고안된 것이 '객체 (Object)'이다. 객체에는 정수, 실수, 논리형 등의 각기 다른 값들을 담는 것이 가능하다. 이러한 객체를 만들기 위해서 필요한 것이 '클래스 (Class)'이다. https://rclogstorage.tistory.com/14 [Java] 0 - (1). 객체 지향 프로그래밍이란 무엇인가 앞에서 자바의 정의와 특징들을 설명할 때, 자바의 특징인 '객체지향 언어'라는 부분에 대해 설명하지 않고 넘어갔었다. 이번에는 객체 지향 언어, 객체 지향 프로그래밍에 대해 정리해보겠다. rclogstora.. 2022. 10. 28.