Programming

; develop a program

반응형

기초 77

[Java] Object 클래스

자바로 프로그램을 구현하면서 주로 사용하는 String, Integer와 같은 클래스는 java.lang 패키지에 속해 있다. String >> java.lang.String Integer >> java.lang.Integer java.lang 패키지에는 기본적으로 많이 사용하는 클래스들이 포함되어 있다. 이번 포스팅에서는 자바(Java)에서 최상위 클래스인 java.lang.Object에 대하여 공부를 해보고자 한다. Object 클래스란 Object 클래스는 java.lang 패키지 중에서 가장 많이 사용되는 클래스이자 모든 자바 클래스의 최상위 클래스이다. 따라서 자바의 모든 클래스는 Object 클래스의 모든 메서드를 상속받아 바로 사용할 수 있다. 이러한 Object 클래스는 필드를 가지지 않으..

Back-End/Java 2023.02.10

[Java] 인터페이스 요소

이번 포스팅에서는 자바(Java)에서 인터페이스 요소에 대하여 공부를 해보고자 한다. 인터페이스 상수 인터페이스는 추상 메서드로 이루어지므로 인스턴스를 생성할 수 없으며 멤버 변수도 사용할 수 없다. 그런데 인터페이스에 다음 코드와 같이 변수를 선언해도 오류가 발생하지 않는다. public interface Calc { double PI = 3.14; int ERROR = -999999999; ... } Calc 인터페이스에 선언한 변수 PI를 컴파일하면 public static final double PI = 3.14, 즉 상수 3.14로 변환된다. int형 변수 ERROR 역시 public static fianl int ERROR = -999999999로 변환되어 상수로 취급된다. 인터페이스에 선언한..

Back-End/Java 2023.02.10

[Java] 인터페이스와 다형성

이번 포스팅에서는 자바(Java)에서 인터페이스와 다형성에 대하여 공부를 해보고자 한다. 인터페이스의 역할 인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공하는지 미리 알려주는 명세(sepcification) 또는 약속의 역할을 한다. 인터페이스는 디폴트 메서드와 정적 메서드 구현부(implementation part)가 없다면 무용지물이다. 예를 들어 Abc 인터페이스를 구현한 A클래스와 이 클래스를 사용하는 Z 프로그램이 있다고 가정했을 때, ABC 인터페이스에는 구현할 추상 메서드가 모두 선언되어 있고, 어떤 메개변수가 사용되는지, 어떤 자료형 값이 반환되는지 선언되어 있다. 즉 Z 프로그램에서는 A 클래스의 구현 코드 전체를 살펴보지 않고 Abc 인터페이스의 선언부만 봐도 이 A 클래스를 어떻..

Back-End/Java 2023.02.09

[Java] 인터페이스(Interface)

자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메서드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있다. 이번 포스팅에서는 자바(Java)에서 인터페이스(Interface)에 대하여 공부를 해보고자 한다. 인터페이스란 인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. 인터페이스는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 한다. 인터페이..

Back-End/Java 2023.02.09

[Java] final 예약어

이번 포스팅에서는 자바(Java)에서 final 예약어에 대하여 공부를 해보고자 한다. final 예약어란 final은 '마지막'이란 의미를 갖고 있다. 즉, 마지막으로 정한 것이니 더 이상 수정할 수 없다는 뜻이다. 자바 프로그램에서 final 예약어는 변수, 메서드, 클래스에 사용할 수 있다. 사용 위치 설명 변수 final 변수는 상수를 의미한다. 메서드 final 메서드는 하위 클래스에서 재정의할 수 없다. 클래습 fianl 클래스는 상속할 수 없다. 상수를 의미하는 final 변수 public class Constant { int num = 10; final int NUM = 100;//상수 선언 public static void main(String[] args) { Constant cons ..

Back-End/Java 2023.02.08

[Java] 템플릿 메서드(Template Method)

템플릿 메서드는 추상 클래스를 활용한 예시 중 하나다. '템플릿(template)'이란 사전 용어로 틀이나 견본을 뜻한다. 즉, 틀이 있는 메서드라는 의미이다. 이번 포스팅에서는 자바(Java)에서 템플릿 메서드(Template Method)에 대하여 공부를 해보고자 한다. 템플릿 메서드란 템플릿 메서드는 싱글톤 패턴과 같은 디자인패턴 중 하나로, 추상 클래스를 사용해 구현할 수 있다. 템플릿 메서드를 사용하면 실행의 순서는 정해놓고 구현은 상속받는 각 하위 클래스마다 다르게 할 수 있게된다. 템플릿 메서드의 안의 메소드중 하나 이상이 추상 메소드로 정의되며, 그 추상 메소드는 서브클래스에서 구현된다. 이렇게 하면 서브클래스에서 일부분을 구현할 수 있도록 하면서도 구조는 바꾸지 않아도 된다. 예제 pub..

Back-End/Java 2023.02.07

[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
반응형