Programming

; develop a program

반응형

Back-End 96

[Java] 추상 클래스(abstract method)

'추상적이다'라는 말은 구체적이지 않고 막연한 것을 뜻한다. '어떤 클래스가 추상적이다'라는 말은 구체적이지 않은 클래스라는 뜻이다. 이번 포스팅에서는 자바(Java)에서 추상 클래스에 대하여 공부를 해보고자 한다. 추상 클래스란 하나 이상의 추상 메서드를 포함하는 클래스를 가리켜 추상 클래스(abstract class)라고 한다. 이러한 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가지는 메서드의 집합을 정의할 수 있도록 해준다. 즉, 반드시 사용되어야 하는 메서드를 추상 클래스에 추상 메서드로 선언해 놓으면, 이 클래스를 상속받는 모든 클래스에서는 이 추상 메서드를 반드시 재정의해야 한다. 추상 메서드는 구현 코드가 없다. 함수의 구현 코드가 없다는 것은 함수 몸체(body)가 없다..

Back-End/Java 2023.02.07

[Java] 다운 캐스팅과 instanceof

이번 포스팅에서는 자바(Java)에서 다운 캐스팅과 instanceof에 대하여 공부를 해보고자 한다. 다운 캐스팅이란 다운 캐스팅(down casting)이란 상위 클래스로 형 변환되었던 하위 클래스를 다시 원래 자료형으로 형 변환 하는 것을 말한다. 위와 같은 계층 구조에서 상위 클래스를 자료형으로 선언하는 Animal ani = new Human( ); 코드를 사용할 수 있다. 이때 생성된 인스턴스 Human은 Animal형이다. Animal형으로 형 변환이 이루어진 경우에는 Animal 클래스에서 선언한 메서드와 멤버 변수만 사용할 수 있다. 다시 말해 Human 클래스에 더 많은 메서드가 구현되어 있고 다양한 멤버 변수가 있다고 하더라도 자료형이 Animal형인 상태에서는 사용할 수 없다. 따라..

Back-End/Java 2023.02.06

[Java] 다형성(polymorphism)

이번 포스팅에서는 자바(Java)에서 다형성(polymorphism)에 대하여 공부를 해보고자 한다. 다형성이란 다형성이란 하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 말한다. 쉽게 말해 같은 코드에서 여러 실행 결과가 나오는 것이다. 다형성은 추상 클래스, 인터페이스에서 구현된다. 또한 안드로이드, 스프링 등 자바 기반의 프레임워크에서 응용할 수 있는 객체 지향 프로그램의 중요한 개념이다. Animal 클래스에 메서드 하나를 정의하고 상속받은 클래스에서 재정의 한다. 이를 코드로 구현하면 다음과 같다. import java.util.ArrayList; class Animal{ public void move(){ System.out.println("동물이 움직입니다."); } } class Hu..

Back-End/Java 2023.02.06

[Java] 메서드 오버라이딩(method overriding)

이번 포스팅에서는 자바(java)에서 메서드 오버라이딩에 대하여 공부를 해보고자 한다. 메서드 오버라이딩이란 메서드 오버라이딩은 상위 클래스에 정의한 메서드가 하위 클래스에서 구현할 내용과 맞지 않을 경우에 하위 클래스에서 이 메서드를 재정의 하는 것을 말한다. 즉, 상속받은 부모 클래스의 메서드를 재정의하여 사용하는 것을 의미한다. 메서드가 오버라이딩되었다면 부모 객체의 메서드는 숨겨지기 때문에, 자식 객체에서 메서드를 호출하면 오버라이딩된 자식 메서드가 호출된다. 메서드 오버라이딩 조건 오버라이딩이란 메서드의 동작만을 재정의하는 것이므로, 메서드의 선언부는 기존 메서드와 완전히 같아야 한다. (반환형, 메서드 이름, 매개변수 개수, 매개변수 자료형) 메서드의 반환 타입은 부모 클래스의 반환 타입으로 ..

Back-End/Java 2023.02.06

[Java] 상속에서 클래스 생성과 형 변환

하위 클래스가 생성될 때는 상위 클래스의 생성자가 먼저 호출된다. 상속 관계에서 클래스의 생성과정을 보면 하위 클래스가 상위 클래스의 변수와 메서드를 사용할 수 있는 이유와 하위 클래스가 상위 클래스의 자료형으로 형 변환을 할 수 있는 이유를 이해할 수 있다. 이번 포스팅에서는 자바(Java)에서 상속의 클래스 생성과 형 변환에 대하여 공부를 해보고자 한다. 상속에서의 클래스 생성 상속을 받은 하위 클래스는 상위 클래스의 변수와 메서드를 사용할 수 있다. 변수를 사용할 수 있다는 것은 그 변수를 저장하고 있는 메모리가 존재한다는 뜻이다. 상위 클래스를 상속받은 하위 클래스가 생성될 때는 반드시 상위 클래스의 생성자가 먼저 호출된다. 그리고 상위 클래스 상성자가 호출될 때 상위 클래스의 멤버 변수가 메모리..

Back-End/Java 2023.02.05

[Java] 상속(inheritance)

이번 포스팅에서는 자바(Java)에서 상속(inheritance)에 대하여 공부를 해보고자 한다. 상속이란 상속이란 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 말한다. 이러한 상속은 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나다. 상속은 일반적으로 무엇을 물려받는다는 의미인데, 객체 지향 프로그램에서도 같은 의미를 갖는다. 예를 들어 B클래스가 A클래스를 상속받으면 B 클래스는 A 클래스의 멤버 변수와 메서드를 사용할 수 있다. 객체 지향 프로그램은 유지보수하기 편하고 프로그램을 수정하거나 새로운 내용을 추가하는 것이 유연한데, 그 기반이 되는 기술이 상속이다. 클래스의 상속 B 클래스가 A 클래스를 상속받는다고 할 때 다음과 같은 그림으..

Back-End/Java 2023.02.05

[Java] 배열 응용 프로그램

이번 포스팅에서는 자바(Java)에서 ArrayList를 사용해 배열 응용프로그램을 구현해보고자 한다. 배열 응용 프로그램 ArrayList를 사용하여 학생 성적 출력 프로그램을 구현해보고자 한다. 이 프로그램은 Student 클래스와 Subject 클래스를 사용한다. 만약 어떤 학생이 10과목을 수강한다면 Subject 클래스형을 자료형으로 선언한 변수가 10개 필요할 것이다. 다른 학생은 3과목을, 또 다른 학생은 5과목을 수강할 수도 있다. 이러한 경우에는 배열을 사용하여 프로그램을 구현하는 것이 좋다. Student 클래스 구현 import java.util.ArrayList; public class Student { int studentID; String studentName; ArrayList..

Back-End/Java 2023.02.05

[Java] ArrayList 클래스

이번 포스팅에서는 자바(Java)에서 ArrayList 클래스에 대하여 공부를 해보고자 한다. 기존 배열의 단점과 ArrayList 기본 배열의 단점 항상 프로그램에서 사용하려면 항상 배열 길이를 정하고 시작한다. 배열을 사용하는 중에는 배열 길이를 변경할 수 없기 때문에 코드를 수정해야 한다. 배열은 중간에 있는 요소를 비워 둘 수 없으므로 배열 요소 위치를 변경해야 한다. ArrayList 클래스 ArrayList는 자바에서 객체 배열을 좀 더 쉽게 사용할 수 있도록 제공하는 객체 배열 클래스를 말한다. 객체 배열을 관리할 수 있는 멤버 변수와 메서드를 제공하므로 사용 방법만 알아 두면 편리하게 사용할 수 있다. ArrayList 클래스와 주요 메서드 ArrayList 클래스에는 이미 만들어져 있는 ..

Back-End/Java 2023.02.04

[Java] 다차원 배열

이번 포스팅에서는 자바(Java)에서 다차원 배열에 대하여 공부를 해보고자 한다. 다차원 배열이란 이차원 이상으로 구현한 배열을 다차원 배열이라고 한다. 수학에서 평면을 나타내기 위해 x, y 좌표를 쓰는 것처럼 프로그램에서도 평면을 구현하기 위해 이차원 배열을 사용할 수 있다. 삼차원 이상의 배열도 가능한데, 삼차원 배열은 주로 공간을 나타내는 프로그램에서 활용한다. 다차원 배열은 평면이나 공간 개념을 구현하는 데 사용한다. 이차원 배열 다음은 이차원 배열을 선언하는 코드와 논리구조다. 배열의 모든 요소를 참조하려면 각 행을 기준으로 열 값을 순회하면 된다. 이차원 배열을 초기화하려면 다음처럼 행과 열 개수에 맞춰서 중괄호 { } 안에 콤마(,)로 구분해 값을 적는다. 이차원 배열을 초기화하면 괄호 안..

Back-End/Java 2023.02.04

[Java] 배열(Array)

이번 포스팅에서는 자바(Java)에서 배열(Array)에 대하여 공부를 해보고자 한다. 배열이란 배열은 자료가 연속으로 나열된 자료구조를 말하며, 자료구조의 가장 기초 내용이다. 배열을 사용하면 자료형이 같은 자료 여러 개를 한 번에 관리할 수 있다. 자료구조(data structure) 데이터를 어떻게 관리하면 좋은지 공부하는 분야 예를 들어 학생 100명의 학번을 관리해야 할 때, 학번의 자료형을 정수라 하면 int studentID1, int studentID2, ··· , int studentID100과 같이 변수 100개를 선언해서 사용해야 한다. 학번에 대한 여러 개 변수를 일일이 쓰는 것은 너무 번거롭기 때문에 배열을 사용한다. 배열 선언과 초기화 배열을 사용하려면 먼저 배열을 선언해야 한다..

Back-End/Java 2023.02.04
반응형