반응형

자바 기초 26

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

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

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 { // 지역 내부 클래스 } }}위의 코드는 외부 클래스와 그 안에 포함될 수 있는 세 가지의 내부 클래스를 보여준다. 세 가지의 ..

생성자(Constructor)란? 자바 기초 배우기

생성자(Constructor)란?생성자는 말 그대로 객체를 생성하는 역할을 하는 클래스의 구성 요소로, 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드라 정리할 수 있다. new 키워드를 사용하여 객체를 생성할 때 호출 되는 것이 생성자이다. 인스턴스 생성을 담당하는 것은 new 키워드이며 생성자는 인스턴스 변수들을 초기화하는데 사용되는 특수한 메서드라 할 수 있다.생성자는 메서드와 비슷한 구조를 가지고 있지만 크게 두 가지 부분에서 차이를 가진다.첫 번째, 생성자의 이름은 반드시 클래스의 이름과 같아야 한다.두 번째, 생성자는 리턴 타입이 없다. 클래스명(매개변수) { // 생성자 기본 구조 ...생략...} 생성자 생성 예제 public class ConstructorExample { pu..

필드(Field)와 메서드(Method) 자바 기초 배우기

필드(Field)란?필드란 클래스에 포함된 변수를 의미하는 것으로 객체의 속성을 정의할 때 사용된다. 자바에서 변수는 크게 클래스 변수(cv, class variable), 인스턴스 변수(iv, instance variable), 지역 변수(lv, local variable) 가 있다. 이 중 우리가 필드라 부른 것은 클래스 변수와 인스턴스 변수이며 이 둘은 다시 static 키워드의 유무로 구분할 수 있다.static 키워드와 함께 선언된 것이 클래스 변수, 그렇지 않은 것은 인스턴스 변수이다. 그리고 이 두 가지의 변수 유형에 포함되지 않고 메서드 내에 포함되는 모든 변수를 지역변수 라고 한다.class Example { // => 클래스 영역 int instanceVariable; // 인스턴스 변..

Java 클래스(Class) & 객체(Object) 자바 기초 배우

클래스(Class)와 객체클래스(Class)란 객체를 정의한 설계도나 틀 정도로 정의할 수 있다. 즉 클래스는 객체를 생성하는데 사용되며, 반대로 객체는 클래스에 정의되고 설계된 내용 그대로 생성된다. 클래스는 객체 그 자체가 아닌 객체를 생성하는 하나의 틀이라고 볼 수 있다. 아래의 그림을 예로 들면 집 설계도가 집 자체가 될 수 없듯이 말이다. 클래스를 통해 생성된 객체들을 해당 클래스의 인스턴스 라고 하며, 클래스로부터 객체를  만드는 과정을 인스턴스화(instantiate)라고 한다.객체와 인스턴스의 차이같은 말이라서 차이를 두는 것에 큰 의미는 없지만 굳이 따지자면 객체는 모든 인스턴스를 포괄하는 넓은 의미를 가지고 있는 반면, 인스턴스는 해당 객체가 어떤 클래스로부터 생성된 것인지를 강조한다...

반응형