본문 바로가기

프로그래밍 공부7

[Java] 15. 추상 클래스 1. 개요 Abstract, '추상적'이라는 의미를 가지고 있는 단어이다. 추상적이라는 것은 어떠한 사물이 직접 경험하거나 지각할 수 있는 일정한 형태나 성질을 갖추지 않은 것이다. 즉, 구체적인 것이 존재하지 않고 막연하기만 한 것을 추상적이라고 한다. 프로그래밍, 자바에서도 이와 비슷하게 구체적인 형태가 존재하지 않은 클래스 문법을 '추상 클래스(Abstract Class)'라고 한다. 2. 추상 클래스 (Abstract Class) ① 추상 클래스의 정의 - 미완성된 설계도(클래스, class) - 미완성된 메서드, 추상 메서드를 가진 클래스 - 클래스 앞에 추상적이라는 의미를 가진 'abstract' 단어를 붙여서 정의한다. - new() 연산자를 통해서 객체를 만들 수 없지만, 상속을 통해서 추.. 2023. 1. 26.
[Java] 13. 오버로딩 (Overloading) 1. 개요 자바 생성자 게시물에서 this 키워드를 설명할 때, 오버로딩의 정의를 간략하게 설명하고 상세한 것은 추후에 하겠다고 하며 넘어간 적이 있었다. 이번엔 오버로딩에 대해 좀 더 상세하게 설명해 보도록 하겠다. 2. Overloading ① 오버로딩의 정의 - 자바에서 메서드를 다루는 기법 중 하나 - Overloading: 과적하다, 너무 많이 주다. (사전적인 의미) - 매개변수의 개수, 타입을 다르게 해서 같은 이름의 메서드가 존재할 수 있게 하는 기법 - 오버로딩, 메서드 오버로딩은 객체 지향 프로그래밍 언어의 특징 중 하나인 '다형성(Polymorphism)'을 구현하는 방법 중 하나이다. 아래는 메서드 오버로딩의 성립 조건이다. 자바로 프로그래밍을 하다 보면 오버로딩을 활용할 일도 많으.. 2023. 1. 17.
[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] 9. static 1. 'static' ① 'static'의 정의 - Java에서 사용되는 키워드 중 하나 - Class 내부의 변수나 함수에 'static'을 붙이는 것으로 해당 변수나 함수는 객체를 생성하지 않고 바로 사용할 수 있다. - 객체 생성 없이 바로 사용할 수 있으므로 프로그램 내에서 공통적으로 사용되는 데이터를 관리할 때 이용한다. //'static' 사용 예시 public class Main { public static void main(String[] args) { Sample.A = 15; Sample.talk(); //별도의 인스턴스 생성 없이 //'Sample' class가 가진 변수와 함수 사용가능 System.out.printf("A의 값: %d", Sample.A); } } class Sam.. 2022. 12. 21.
[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.