제이제이
article thumbnail
11. Java 객체지향 문법(11) - 상속과 오버라이딩

본 내용은 "윤성우의 열혈 Java 프로그래밍"를 참고로 정리한 내용입니다. 1. 상속을 위한 두 클래스의 관계 🔥 이전 포스팅 "상속의 기본"에서 상속을 살펴봤습니다. 10. Java 객체지향 문법(10) - 상속의 기본 본 내용은 "윤성우의 열혈 Java 프로그래밍"를 참고로 정리한 내용입니다. 1. 상속 ❓ 상속이란? 🔥 상속이란 “서로 연관된 클래스에 대해 공통적인 규칙, 규약들을 정의한 것”입니다. 상속에 jay-so.tistory.com ❓그렇다면 언제 상속을 사용해야 할까? 이와 관련하여 ‘IS -A의 관계’라는 것을 알아봅시다. 상속을 적용하는 기준인 ‘IS -A 관계’ 이전 시간에 상속을 배웠었습니다. 상속의 특성을 자식 클래스(하위 클래스)의 입장에서 생각해봅시다. 자식 클래스(하위 클..

article thumbnail
10. Java 객체지향 문법(10) - 상속의 기본

본 내용은 "윤성우의 열혈 Java 프로그래밍"를 참고로 정리한 내용입니다. 1. 상속 ❓ 상속이란? 🔥 상속이란 “서로 연관된 클래스에 대해 공통적인 규칙, 규약들을 정의한 것”입니다. 상속에 대해서 처음 배우게 되었을 때 학교 수업 혹은 강의에서 상속은 “코드의 재활용을 위한 문법이다"라고 배우는 경우가 있습니다. 그러나 상속은 “서로 연관된 클래스에 대해 공통된 규칙, 규약들을 정의한 것”으로 생각해야 합니다. 이 내용을 알고나서 상속에 대해서 자세히 살펴봅시다. 상속의 특성 상속을 간단하게 설명하자면,기존에 정의된 클래스에 메소드와 변수를 추가하여 새로운 클래스를 정의하는 것입니다. 코드를 통해 상속의 특성에 대해서 알아봅시다. class Man{ String name; //이름 //메소드 tel..

article thumbnail
9. Java 객체지향 문법(9) - 배열

배열 🤔 배열이란? 자료형이 같은 둘 이상의 데이터 값을 저장할 수 있는 메모리 공간을 의미합니다. 배열은 구조에 따라 1차원 배열과 2차원 이상의 배열인 다차원 배열로 구분됩니다. 먼저 1차원 배열부터 살펴보겠습니다. ❓ 1차원 배열이란? 자료형이 같은 둘 이상의 데이터를 저장할 수 있는 1차원 구조의 메모리 공간을 의미합니다. 자바는 배열을 인스턴스(객체)로 인식하고 사용합니다. 1차원 배열의 선언 방법1 int [] array = new int[5]; //크기가 5인 int형 1차원 배열의 생성문 위의 코드를 뜯어보면 등호를 기준으로 왼편에는 배열의 참조 변수 선언과 오른쪽에는 배열의 생성을 나타납니다. 왼쪽(배열의 참조 변수 선언) int[] array //배열의 인스턴스를 참조할 수 있는 '참조..

article thumbnail
8. Java 객체지향 문법(8) - 콘솔 입력과 출력

콘솔 입력 🤔 콘솔이란? 컴퓨터를 대상으로 데이터를 입력하고 출력하는 장치들을 의미합니다. 예를 들어 키보드로 데이터를 입력하고 입력된 데이터를 출력하는 모니터도 콘솔 입출력 장치에 해당합니다. Scanner 클래스 자바 5버전부터 Scanner 클래스가 도입되었습니다. 역할 키보드 입력뿐만 아니라 여러 가지의 입력 값에 대해서 데이터를 추출하는 역할을 하는 클래스입니다. java.util 패키지에 있으며 Scanner 클래스안에는 다음과 같이 여러 생성자들이 정의되어 있습니다. Scanner(File source) //파일 입력과 관련된 생성자 Scanner(String source) //문자열 입력과 관련된 생성자 Scanner(InputStream source) //입력 스트림과 관련된 생성자 Sc..

article thumbnail
7. Java 객체지향 문법(7) - String 클래스

String 클래스 지금까지 String 클래스는 단순히 문자열을 입력하고 사용하는 것으로만 알고 있었습니다. 이번시간에는 String클래스에 대해 자세히 살펴보고 정리하겠습니다. String 클래스의 인스턴스 생성 방법 1) String str = new String("간단한 문자열 표현"); 문자열 표현을 위한 String 인스턴스의 생성방법은 다음과 같습니다. 일반적으로 그동안 객체를 생성했던 방법과 차이가 없습니다. System.out.println(str); 📸 출력 결과 간단한 문자열 표현 지금까지 많이 사용했던 System.out.println메소드 내부에는 다음과 같이 정의되어 있기 때문에 String 객체의 참조값을 인자로 전달하는 것이 가능했습니다. public void println(..

article thumbnail
6. Java 객체지향 문법(6) - 메소드 오버로딩

메소드 오버로딩(Method Overloading) 🤔 메소드 오버로딩이란? 매개변수의 선언을 다르게 하여 동일한 이름의 메소드를 정의하는 것을 의미합니다. -> 원래 하나의 클래스 안에 동일한 이름의 메소드를 둘 이상 정의하는 것을 허용하지 않습니다. -> 그러나 매개변수의 선언이 다르면 가능하며 이를 메소드 오버로딩이라고 합니다. 자바에서 호출한 메소드를 찾는 조건 자바의 컴파일러는 다음의 두 가지 정보를 기본으로 메소드를 찾게 됩니다. 1. 메소드의 이름 2. 메소드의 매개변수 정보 다음의 메소드를 참고하여 살펴봅시다. MyHouse house = new MyHouse(); house.myRoomLocation(1,2); 위의 코드에서 메소드를 호출할 때 다음의 두가지 정보가 사용됩니다. 1. 메소..

article thumbnail
5. Java 객체지향 문법(5) - 클래스 변수와 클래스 메소드

클래스 변수 🤔 클래스 변수란? static으로 선언된 변수로써, 선언된 클래스의 모든 인스턴스(객체)가 공유하는 변수를 의미합니다. 클래스 변수 선언 클래스 내에 선언된 변수 앞에 static 선언을 붙이면 인스턴스 변수가 아닌 클래스 변수가 됩니다. static 클래스변수명 다음의 예를 통해 자세히 이해 해봅시다. 💻 예제 코드 class InstCnt{ static int instNum = 0; //생성자 InstCnt() { instNum++; //static으로 선언된 변수의 값을 증가 System.out.println("인스턴스 생성: " + instNum); } } public class ClassVar { public static void main(String[]args){ //객체 생성 ..

article thumbnail
4. Java 객체지향 문법(4) - 캡슐화

캡슐화(Encapsulation) 🤔 캡슐화란? 캡슐화는 하나의 목적을 이루기 위해 관련 있는 모든 것을 논리적으로 하나의 캡슐에 담아 두는 것을 의미합니다. -> 객체 지향의 관점에서 캡슐은 클래스에 해당합니다. -> 즉, 클래스를 적절히 캡슐화시키면 프로그램이 간결해집니다. 아래의 세가지 코 감기약이 있고 아래와 같은 기능들이 있다고 가정하겠습니다. 1. 흐르는 ‘콧물’을 멎게하는 기능을 가진 캡슐 약 2. 멈추지 않는 ‘재채기’를 가라앉혀 주는 기능을 가진 캡슐 약 3. 답답한 ‘코막힘’ 상태를 완화시켜 주는기능을 가진 캡슐 약 위의 기능들을 모아 하나의 코 감기약으로 캡슐화를 하면 복용하면 보다 약 사용에 간편합니다. 아래의 코드를 통해 캡슐화가 되지 않은코드와 캡슐화 된 코드 두 가지를 살펴봅시..