반응형

공부 136

Java 애너테이션(Annotation) 이란? 자바 기초 배우기

애너테이션이란?에너테이션은 소스 코드가 컴파일 되거나 실행될 때 컴파일러 및 다른 프로그램에게 필요한 정보를 전달해주는 문법 요소이다. 어떻게 생겼는지 직접 확인해보자. 먼저 아래와 같이 인터페이스를 정의해보자.public interface ExampleInterface { void example();} 그 다음 아래와 같이 클래스를 정의하고 ExampleInterface를 구현하자.public class ExampleClass implements ExampleInterface {} alt + insert 를 입력 후 Implement Methods를 클릭하여 ExampleInterface의 추상 메서드를 구현하자.OK를 눌러 입력을 완료하면 구현해야 하는 메서드가 자동으로 정의된다.public c..

Java 컬렉션 프레임워크란? 자바 기초 배우기

컬렉션 프레임워크컬렉션이런 여러 데이터의 집합을 의미한다. 이러한 컬렉션을 다루는데에 있어 편리한 메서드들을 미리 정의해 놓은 것을 컬렉션 프레임워크라고 한다. 컬렉션 프레임워크는 특정 자료구조에 데이터를 추가하고, 삭제하고, 수정하고, 검색하는 등의 동작을 수행하는 편리한 메서드들을 제공해준다. 컬렉션 프레임워크 구조주요 인터페이스로 List, Set, Map 을 제공한다. 각각의 인터페이스를 요약하면 아래와 같다.List- List는 데이터의 순서가 유지되며, 중복 저장이 가능한 컬렉션을 구현하는 데에 사용된다.- ArrayList, Vector, Stack, LinkedList 등이 List 인터페이스를 구현한다.Set- Set은 데이터의 순서가 유지되지 않으며, 중복 저장이 불가능한 컬렉션을 구현..

Java 예외처리(Exception Handling)란? 자바 기초 배우기

예외처리예기치 않게 발생하는 에러에 대응할 수 있는 코드를 미리 사전에 작성하여 프로그램의 비정상적인 종료를 방지하고, 정상적인 실행 상태를 유지하기 위한 기능이 예외처리(Exception Handling) 이다.에러가 발생하는 원인은 수없이 다양하나 다음의 몇 가지 예를 들 수 있다.사용자의 입력 오류네트워크 연결 끊김디스크 메모리 공간 부족 등 물리적 한계개발자의 코드 에러존재하지 않는, 유효하지 않는 파일 불러오기위의 원인을 크게 내부적인 요인과 외부적인 요인으로 구분할 수 있다.먼저 대표적인 외부 요인으로 하드웨어의 문제, 네트워크의 연결 끊김, 사용자 조작 오류 등이 있고, 내부 요인으로는 대표적으로 주로 오늘 우리가 초점을 맞춰 학습하게 될 개발자의 코드 작성 에러를 언급할 수 있다.개발자가 ..

Java 제네릭(Generic) 이란? 자바 기초 배우기

제네릭의 필요성class Basket { private String item; Basket(String item) { this.item = item; } public String getItem() { return item; } public void setItem(String item) { this.item = item; }}위의 Basket 클래스는 오로지 String 타입의 데이터만 저장할 수 있는 인스턴스를 만들 수 있다. 그에 따라 다양한 타입의 데이터를 저장할 수 있는 객체를 만들고자 한다면, 각 타입별로 별도의 클래스를 만들어야한다. 하지만 아래와 같이 제네릭을 사용한다면 단 하나의 Basket 클래스만으로 모든 타입의 ..

Java 열거형(Enum) 이란? 자바 기초 배우기

열거형열거형은 서로 연관된 상수들의 집합을 의미하며 final 키워드를 사용하여 선언할 수 있다. 열거형은 이러한 상수들을 보다 간편하게 관리할 때 유용하게 사용할 수 있는 자바의 문법 요소이며 주로 몇 가지로 한정된 변하지 않는 데이터를 다룰 때 사용한다.초기 버전의 자바에서는 enum 문법을 지원하지 않아서 public static final을 통해 전역변수로 상수를 설정하여 아래와 같이 사용했다.// 여러 상수를 정의하기 위한 예전 방식public static final int SPRING = 1;public static final int SUMMER = 2;public static final int FALL = 3;public static final int WINTER = 4;다만 이러한 경우 상..

Java 추상화(Abstraction) 란? 자바 기초 배우기

추상화추상화는 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 의미한다. 상속과는 반대로 기존 클래스들의 공통적인 요소들을 뽑아 상위 클래스를 만들어내는 것이라고 할 수 있다.위의 그림을 보면 자동차와 오토바이의 공통적인 분모들을 모아 이동수단이라는 클래스에 담았다. 이렇게 공통적인 속성과 기능을 모아 정의해주면 코드의 중복을 줄일 수 있고 보다 효과적으로 클래스 간의 관계를 설정할 수 있으며 유지/보수가 용이해진다. 자바에서는 주로 추상 클래스와 인터페이스라는 문법 요소를 사용해 추상화를 구현한다. abstract 제어자abstract 제어자란 주로 클래스와 메서드를 형용하는 키워드로 사용되는데 메서드 앞에 붙은 경우 추상메서드(abstract method), 클래스 앞에 붙은 경우를 추상 클래스..

Java 다형성(polymorphism) 이란? 자바 기초 배우기

다형성다형성(polymorphism)이란 여러개를 의미하는 poly와 어떤 형태 또는 실체를 의미하는 morphism의 결합어로 하나의 객체가 여러 가지 형태를 가질 수 있는 성질을 의미한다. 자바 프로그래밍에서 다형성은 한 타입의 참조 변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미한다. 구체적으로 이야기 하면 상위 클래스 타입의 참조 변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용한 것이라 할 수 있다.// 참조 변수의 다형성 예시class Friend { public void friendInfo() { System.out.println("나는 당신의 친구입니다."); }}class BoyFriend extends Friend { public ..

Java 캡슐화란? 자바 기초 배우기

캡슐화(Encapsulation)캡슐화란 특정 객체 안에 관련된 속성과 기능을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것을 말한다. 캡슐화를 하는 목적으로는 첫째로 데이터의 보호이며, 둘째로 내부적으로만 사용되는 데이터에 대한 불필요한 외부 노출을 방지하기 위함이다.캡슐화의 가장 큰 장점은 정보 은닉(data hiding)에 있다고 할 수 있다. 즉, 외부로부터 객체의 속성과 기능이 함부로 변경되지 못하게 막고, 데이터가 변경되더라도 다른 객체에 영향을 주지 않기에 독립성을 확보할 수 있다. 더 나아가 유지보수와 코드 확장 시에도 오류를 최소화 할 수 있다. 캡슐화를 수행하기 위한 색심적인 수단으로 접근 제어자(Access Modifier)와 getter와 setter 메서드가..

Java 상속(Inheritance) 이란? 자바 기초 배우기

상속자바 언어에서 상속이란 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 문법요소를 의미한다. 두 클래스를 상위 클래스와 하위 클래스로 나누어 상위 클래스의 멤버(필드, 메서드, 내부 클래스)를 하위 클래스와 공유하는 것을 의미한다.이 두 클래스는 서로 상속 관계에 있다고 하며, 하위 클래스는 상위 클래스가 가진 모든 멤버를 상속 받게 된다. 위의 그림을 예시로 보자. 총 4개의 클래스가 정의되어 있다. 먼저 트리구조 아래의 3개 클래스를 정리해보자.Programmer 클래스속성으로 이름, 나이, 회사 이름이 있고, 기능으로 배우기, 걷기, 먹기, 코딩하기 가 정의되어 있음Dancer 클래스속성으로 이름, 나이, 그룹명이 있고, 기능으로 배우기, 걷기, 먹기, 춤추기 가 있음Singer 클래스속성으..

Java 내부클래스 (Inner Class) Java 기초 배우기

내부 클래스(Inner Class)내부 클래스는 클래스 내에 선언된 클래스로 외부 클래스와 내부 클래스가 서로 연관되어 있을 때 사용한다. 내부 클래스를 사용하면 외부 클래스의 멤버들에 쉽게 접근할 수 있고, 코드의 복잡성을 줄일 수 있다. 또한 외부적으로 불필요한 데이터를 감출 수 있어 캡슐화(encapsulation)을 달성하기 유용하다.class Outer { // 외부 클래스 class Inner { // 인스턴스 내부 클래스 } static class StaticInner { // 정적 내부 클래스 } void run() { class LocalInner { // 지역 내부 클래스 } }}위의 코드는 외부 클래스와 그 안에 포함될 수 있는 세 가지의 내부 클래스를 보여준다. 세 가지의 ..

반응형