프로그래밍 공부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. 이전 1 다음