반응형

언어(Language)/Java 95

[Java] 자바 인터페이스 활용 예제

Intro 인터페이스를 왜 사용하고, 이것이 가지는 장점이 무엇인지 예제를 통해 알아보도록 한다. 예상 시나리오 1. 식당를 운영하는 사람이 있다. 2. 단골손님들은 매일 먹는 음식이 정해져 있다. 3. 단골손님 A는 항상 김치찌개를 주문한다. 4. 단골손님 B는 항상 제육볶음을 주문한다. 인터페이스를 활용하지 않는 경우 // 식당 손님 class ResCustomer { public String resCustomer; public void setResCustomer(String resCustomer) { this.resCustomer = resCustomer; } } // ResCustomer 클래스로부터 단골손님 A와 B 상속 class ResCustomerA extends ResCustomer { ..

[Java] 자바 인터페이스(Interface) 개념 정리 및 활용

인터페이스 (Interface) 프로그래밍에서의 인터페이스는 서로 다른 두 시스템, 장치, 소프트웨어를 서로 이어주는 부분 또는 접속 장치로 정의할 수 있다. 컴퓨터의 내용을 그래픽 형태로 이미지화하여 사용자와 소통할 수 있도록 연결하는 GUI(Graphic User Interface)가 인터페이스의 대표적인 예시이다. 자바의 인터페이스 또한 유사한 기능을 가지고 있으며, 추상 클래스와 함께 자바에서 추상화를 구현하는 핵심적인 역할을 담당한다. 추상 클래스에 비해 더 높은 단계의 추상성을 가지는 것이 바로 인터페이스다. 추상 클래스는 메서드 바디가 없는 추상 메서드를 하나 이상 포함하는 점 외에는 일반 클래스와 동일하다. 하지만, 인터페이스는 기본적으로 추상 메서드와 상수(static 변수)만을 멤버로 ..

[Java] 자바 final 개념 정리 및 활용

fianl final 키워드는 ‘최종의’, ‘마지막의’라는 뜻을 가진 용어로, 자바 언어에서는 변수, 클래스, 메서드 등에 사용할 수 있다. 또한, 필드, 지역 변수, 클래스 등 어디에 사용하느냐에 따라 의미가 달라진다. final 의미 클래스 : 확장 또는 변경이 불가능한 클래스로 상속을 할 수 없다. 메서드 : 오버라이딩이 불가능한 메서드를 의미한다. 변수 : 값을 변경시킬 수 없는 변수(상수)를 의미한다. 공통적인 의미로는 어디에 사용을 하더라도 변경이 불가능하다. // final 클래스 : 상속, 확장, 변경 불가능 final class FinalClass { // final 변수(클래스 변수) : 값 변경 불가능 final int num = 10; // final 메서드 : 오버라이딩 불가능 f..

[Java] 자바 추상화(Abstraction) 개념 정리 및 활용

추상화 (Abstraction) ‘추상’이라는 용어는 사물이나 표상을 어떤 성질이나 공통성, 본질에 착안하여 이를 추출하고 파악하는 것이다. 즉, 자바에서 추상화에 대한 핵심 개념으로는 공통성과 본질을 모아 추출하는 것에 있다. 추상화의 공통성과 본질을 모아 추출하는 것은 객체의 공통적인 속성과 행위를 추출하여 정의하는 것을 말한다. 이는 기존 클래스들의 공통적인 요소를 모아 상위 클래스를 만들어 내는 기술이다. 예를 들어, 자동차와 오토바이 객체가 존재한다고 가정하면, 자동차와 오토바이의 공통적인 속성과 행위를 생각할 수 있다. 속성에는 제조업체, 가격, 모델명 등이 있을 수 있고, 행위로는 시동을 거는 행위, 앞으로 가는 행위, 정지하는 행위, 뒤로 가는 행위 등이 있다. 이러한 공통적인 속성과 행위..

[Java] 자바 다형성(Polymorphism) 개념 정리 및 활용

다형성 (Polymorphism) 다형성이란 여러 개를 의미하는 poly와 형태 또는 실체를 의미하는 morphism의 결합어로, 하나의 객체가 여러 가지 형태를 가질 수 있는 것을 의미한다. 자바에서 다형성은 한 타입의 참조 변수를 통해 여러 타입의 객체를 참조할 수 있도록 하는 것이다. 즉, 상위 클래스 타입의 참조 변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용하여 상위 클래스가 동일한 메시지로 하위 클래스들이 서로 다른 동작을 할 수 있도록 한다. 다형성을 활용하면, 부모 클래스가 자식 클래스의 동작 방식을 알 수 없어도 오버라이딩을 통해 자식 클래스에 접근할 수 있다. 다형성의 장점 유지보수 : 여러 객체를 하나의 타입으로 관리할 수 있어 유지보수가 용이하다. 재사용성 : 객체의 재사..

[Java] 자바 Getter와 Setter 개념 정리 및 활용

Intro 캡슐화를 통해 정보 은닉을 했다고 가정한다면, private 접근 제어자가 포함되어 있는 데이터의 변경이 필요한 경우, getter와 setter 메서드를 사용하여 데이터의 값을 추가하거나 수정을 할 수 있다. getter() 메서드 getter 메서드는 설정한 변수 값을 읽어오는 데 사용한다. 경우에 따라 객체 외부에서 필드 값을 사용하기에 부적절한 경우가 발생할 수 있는데, 이러한 경우에는 값을 가공한 이후에 외부로 전달하는 역할을 한다. setter() 메서드 setter 메서드는 외부에서 메서드에 접근하여 조건에 맞을 경우 데이터 값을 변경할 수 있도록 한다. 먼저, setter 메서드를 사용하여 데이터의 값을 저장하고, getter 메서드를 통해 해당 데이터 값을 불러와 변수에 담아 ..

[Java] 접근 제어자(Access modifier) 개념 정리 및 활용

제어자 (Modifier) 자바에서 제어자는 클래스, 필드, 메서드, 생성자 등에 외부로부터의 접근을 제어하는 것을 의미한다. 자바의 제어자는 접근 제어자와 기타 제어자로 구분할 수 있다. 접근 제어자 : public, protected, default, private 기타 제어자 : static, final, abstract, native, transient, synchronized 등 접근 제어자(Access Modifier) 접근 제어자는 클래스 외부로의 불필요한 데이터 노출을 방지하고, 외부로부터 데이터가 임의로 변경되지 않도록 막을 수 있다. 즉, 정보 은닉(data hiding)과 연관이 깊다. 접근 제어자는 public, protected, default, private로 구성되어 각각의 역..

[Java] 자바 패키지(Package)와 임포트(Import) 개념 정리 및 활용

패키지 (Package) 자바에서 패키지란 특정한 목적을 공유하는 클래스와 인터페이스의 묶음을 의미한다. 즉, 서로 관련 있는 클래스들을 묶어 효과적으로 관리하기 위해 사용한다. 자바의 패키지는 하나의 디렉토리(directory)이고, 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지에 속해있다. 패키지는 계층 구조를 가지며, 계층 간의 구분은 점(.)으로 표현된다. 패키지가 있는 경우 소스 코드의 첫 번째 줄에 반드시 package 패키지명이 표시되어야 하고, 패키지 선언이 없으면, 이름 없는 패키지에 속하게 된다. package 패키지.서브패키지.서브패키지의서브패키지; public class PackageEx { ... } 자바에 기본적으로 포함되어 있는 대표적인 패키지로는 java.lang..

[Java] 자바 캡슐화(Encapsulation) 개념 정리

캡슐화 (Encapsulation) 캡슐화란 특정 객체 안에서 관련된 속성과 행위(필드와 메서드)를 하나의 캡슐 형태로 묶어 데이터를 외부로부터 보호하기 위해 정보 은닉(Data Hiding)을 하는 것이다. 즉, 외부에서 내부로 직접적인 접근을 막고, 객체가 제공하는 필드와 메서드를 통해서만 접근이 가능하도록 한다. 캡슐화를 하면 데이터 보호와 함께 내부적으로만 사용되는 데이터를 외부로 노출하는 것을 방지할 수 있으며, 데이터가 변경되더라도 다른 객체에 영향을 주지 않아 독립성을 확보할 수 있다. 또한, 유지보수와 코드 확장 시 오류의 범위도 최소화할 수 있는 장점이 있다. 캡슐화를 수행하기 위해 접근제어자와 getter(), Setter() 메서드에 대해 학습할 필요가 있다. 접근 제어자(Access..

[Java] 자바 Object 클래스 개념 정리

오브젝트 클래스 (Object Class) 자바의 Object 클래스는 클래스 상속계층도에서 최상위 계층에 위치한 상위 클래스이다. 따라서, 자바의 모든 클래스는 Obejct 클래스로부터 확장된다. 자바 컴파일러는 컴파일링 과정에서 다른 클래스로부터 아무런 상속을 받지 않는 클래스는 자동으로 extends Object를 추가하여 Object 클래스를 상속받도록 한다. class Parents { // 컴파일러가 extends Object 자동 추가 } class Child extends Parents { } 따라서 생성한 모든 클래스들은 Object 클래스의 멤버들을 자동으로 상속받아 사용할 수 있다. Object 클래스의 메서드 toString() 메서드 toString() 메서드는 객체의 정보를 문자..

반응형