본문 바로가기

분류 전체보기97

[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] 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] 8. Scanner 1. 개요 이번에 정리한 것은 자바에서 사용되는 여러가지 입력 방법 중 하나인 Scanner 클래스에 대한 것이다. 바로 Scanner 클래스가 가진 특징을 확인하고, 예제문제로 넘어가도록 하겠다. 2. Scanner 클래스 ① Scanner의 특징 - 정수, 실수, 문자열과 같은 기본적인 데이터 타입을 가진 값들을 Scanner가 가진 메소드를 사용해서 입력받을 수 있다. - Scanner를 사용할 때는 'java.util' 패키지에서 Scanner 클래스와 관련된 패키지를 호출해야만 사용할 수 있다. (자바에서 사용되는 대부분의 클래스들은 lang 패키지가 아니라면 import를 통해서 호출해야만 한다.) - 공백(띄어쓰기)이나 ' ', '\n'과 같은 줄바꿈을 기준으로 데이터를 읽는다. 이를 통해서.. 2022. 12. 4.
[Java] 함수, 메소드 1. 개요 저번 주에 클래스와 객체에 대한 글을 티스토리에 올리고 나서 주말에 김장을 하고, 핸드폰으로 내가 올렸던 글을 다시 읽다가 궁금증이 하나 생겼다. 메소드는 개념적으로도 구조적으로도 함수와 똑같은데 그러면 "이 둘의 차이가 무엇일까?" 라는 생각이었다. 일단 결론부터 말하자면 메소드는 클래스에 포함된 함수이다. 왜 이러한 결론에 도달했는 지를 말하기 전에 함수의 정의를 먼저 정리해보겠다. 2. 함수의 정의 ① 함수의 정의 - 하나의 특별한 목적의 작업을 수행하기 위해서 독립적으로 설계된 프로그램 코드의 집합 ② 함수를 사용하는 이유 - 함수를 사용하면 반복적인 프로그래밍을 피할 수 있다. - 프로그램에서 특정한 작업을 여러 번 반복해야 한다면 해당 작업을 수행하는 함수를 작성하고 프로그램이 그 .. 2022. 11. 30.
[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.
목계지덕(木鷄之德) 기성자가 왕을 위해 싸움닭을 길렀습니다. 열흘이 지나 왕이 물었습니다. "닭이 되었느냐?" 그러자 기성자 말하길 "아직 안 되었습니다." "지금은 쓸데없이 허세를 부리고 자기 힘만 믿습니다." 다시 열흘이 지나 왕이 또 물었습니다. "아직 안 되었습니다." "다른 닭의 소리나 모습만 보아도 덤벼듭니다." 다시 열흘이 지나 왕이 또 물었습니다. "아직 안 되었습니다." "아직도 상대를 노려보고, 혈기 왕성합니다." 다시 열흘이 지나 왕이 또 물었습니다. "이제 됐습니다." "상대가 울음소리를 내어도 아무 변화가 없습니다. 멀리서 보면 마치 나무로 깎아놓은 닭 같습니다. 그 덕이 온전해진 것입니다. 다른 닭이 감히 상대하지 못하고 돌아서 달아나 버립니다." 장자, 달생(達生), 투계(鬪鷄) 이야기 장자가 이.. 2022. 11. 12.
[Java] 7. 클래스와 객체 (Part 1) 0. 개요 우리가 프로그래밍을 하다보면 변수에 여러 값을 담아야하는 경우가 많다. 다만 변수에는 값을 하나만 담을 수 밖에 없으며, 변수와 값의 자료형이 다르면 값을 담을 수 없다. 그래서 고안된 것이 '객체 (Object)'이다. 객체에는 정수, 실수, 논리형 등의 각기 다른 값들을 담는 것이 가능하다. 이러한 객체를 만들기 위해서 필요한 것이 '클래스 (Class)'이다. https://rclogstorage.tistory.com/14 [Java] 0 - (1). 객체 지향 프로그래밍이란 무엇인가 앞에서 자바의 정의와 특징들을 설명할 때, 자바의 특징인 '객체지향 언어'라는 부분에 대해 설명하지 않고 넘어갔었다. 이번에는 객체 지향 언어, 객체 지향 프로그래밍에 대해 정리해보겠다. rclogstora.. 2022. 10. 28.