JAVA/자바 기초 12

[JAVA]열거형(enums)-개념,특징,사용법

목차 열거형 관련이 있는 상수들의 집합 프로그래밍을 할 때 봄,여름,가을,겨울 이나 동,서,남,북 처럼 변하지 않고 일정한 값을 유지하며 사용해야 할 때 enum 을 사용한다. 자바의 열거형은 C언어의 열거형보다 더 향상된 것으로, 갖는 값 뿐만 아니라 타입까지 관리하기 때문에 논리적인 오류를 줄일 수 있다. 열거형 정의 enum 열거형이름 { 상수명1, 상수명2, ... } enum Direction { EAST, SOUTH, WEST, NORTH } 괄호 { } 안에 상수의 이름을 나열하기만 하면 된다. 이름을 지을때, 상수는 보통 대문자를 사용하고 두단어 이상의 결합은 underscores를 이용하여 구분한다. ex) EAST, EAST_HOME 사용하는 방법 열거형이름.상수명 으로 사용할 수 있다..

JAVA/자바 기초 2021.10.19

[JAVA]제네릭(Generics)-개념,사용법,와일드카드

목차 제네릭 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일시의 타입 체크를 해주는 것. 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법 제네릭의 장점 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준다. 즉, 타입 안정성을 제공하는 것이다. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. 제네릭 클래스 선언하는 방법 public class Box { Object item; void setItem(Object item){ this.item = item; } Object getItem(){ return item; } } 다음과 같이 클..

JAVA/자바 기초 2021.10.19

[JAVA]예외처리(exception handling)-종류,예외처리방법,사용자정의예외

목차 예외처리(exception handling) 예외처리란 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것이다. 예외의 발생으로 인한 실행중인 프로그램의 갑작스러운 비정상 종료를 막고, 정상적인 실행 상태를 유지할 수 있도록 하는 것이다. 예외의 종류 컴파일 에러와 런타임 에러 프로그램이 실행 중 오작동을 하거나 비정상적으로 종료되는 것을 프로그램 에러 또는 오류라고 한다. 이는 발생 시점에 따라 컴파일 에러(compile-time error) 와 런타임 에러(runtime error) 로 나눌 수 있다. 컴파일 에러 - 컴파일 시에 발생하는 에러 런타임 에러 - 실행 시에 발생하는 에러 논리적 에러 - 실행은 되지만, 의도와 다르게 동작하는 것 소스코드를 컴파일..

JAVA/자바 기초 2021.10.18

[JAVA]객체지향 프로그래밍(7)-추상화,캡슐화

📖이전글 객체지향 프로그래밍(1)-클래스와 객체,객체지향의의미,장단점 객체지향 프로그래밍(2)-객체와 인스턴스 객체지향 프로그래밍(3)-변수와 메서드 객체지향 프로그래밍(4)-생성자 객체지향 프로그래밍(5)-상속 객체지향 프로그래밍(6)-다형성,오버라이딩vs오버로딩 목차 추상화 추상의 사전적 정의는 다음과 같다. 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용이다. IT에서 사용하는 추상화의 정의도 크게 다르지 않다. 추상화란 여러 객체의 공통 속성이나 기능을 묶어 이름을 붙이는 것이다. 객체지향 프로그래밍(1)-클래스와 객체,객체지향의의미,장단점 에서 프로그래밍에 필요한 공통 속성을 묶는 작업을 여러번 했다. 이를 추상화 라고 한다. 들어가서 확인해보면 훨씬 이해가 잘..

JAVA/자바 기초 2021.10.12

[JAVA]객체지향 프로그래밍(6)-다형성,오버라이딩vs오버로딩

📖이전글 객체지향 프로그래밍(1)-클래스와 객체,객체지향의의미,장단점 객체지향 프로그래밍(2)-객체와 인스턴스 객체지향 프로그래밍(3)-변수와 메서드 객체지향 프로그래밍(4)-생성자 객체지향 프로그래밍(5)-상속 목차 다형성 객체지향의 4가지 특징 중 하나로, 하나의 클래스나 메소드가 다양한 방식으로 동작이 가능한 것을 의미한다. 구현하는 방법 다형성을 구현하는 방법에는 대표적으로 오버로딩과 오버라이딩이 있다. 오버라이딩(overriding) 상위 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 하위 클래스에서 변경해 사용해야 할 때 상위 메서드를 오버라이딩해 사용한다. override 의 사전적인 의미는 '~위에 덮어쓰다(overwrite)' 이다. 참고하면..

JAVA/자바 기초 2021.10.12

[JAVA]객체지향 프로그래밍(5)-상속

📖이전글 객체지향 프로그래밍(1)-클래스와 객체,객체지향의의미,장단점 객체지향 프로그래밍(2)-객체와 인스턴스 객체지향 프로그래밍(3)-변수와 메서드 객체지향 프로그래밍(4)-생성자 목차 상속(inheritance) 상속이란 객체지향의 4가지 특징중 하나로, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상위 클래스의 특성을 하위 클래스에서 상속하고 거기에 더해 필요한 특성을 추가, 확장해서 사용할 수 있다. 조류 클래스와 포유류 클래스를 만들어보면, 조류는 알을 낳고 포유류는 새끼를 낳지만 먹고 자고 싸는 것은 같다. 그리고 만약 '걷다' 라는 속성을 추가하려면 조류와 포유류 클래스에 모두 추가를 해주어야 하는데, 만약 클래스의 개수가 많다면 노가다이기도 하고 빼먹을 위험성도 크다. 이를..

JAVA/자바 기초 2021.10.12

[JAVA]객체지향 프로그래밍(4)-생성자

📖이전글 객체지향 프로그래밍(1)-클래스와 객체,객체지향의의미,장단점 객체지향 프로그래밍(2)-객체와 인스턴스 객체지향 프로그래밍(3)-변수와 메서드 목차 생성자 생성자란 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 이다. 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. 생성자로 인스턴스 변수 초기화 하는 방법 1. new 연산자를 이용해 메모리(heap)에 Animal클래스의 인스턴스를 생성한다. 2. 생성자 Animal( )이 호출되어 수행된다. 3. 연산자 new의 결과로, 생성된 Animal 인스턴스의 주소가 반환되어 참조변수 c에 저장한다. new연산자를 사용해야되는 것 까지는 알겠다. 그런데 2번에서 생성자 Animal( ..

JAVA/자바 기초 2021.10.12

[JAVA]객체지향 프로그래밍(3)-변수와 메서드

📖이전글 객체지향 프로그래밍(1)-클래스와 객체,객체지향의의미,장단점 객체지향 프로그래밍(2)-객체와 인스턴스 목차 변수의 종류에는 클래스변수, 인스턴스변수, 지역변수로 세 종류가 있다. 변수의 종류를 결정짓는 요소는 '변수의 선언된 위치'이므로 변수의 종류를 파악하기 위해서는 어느 영역에 선언되었는지를 확인해야한다. 변수 별로 올라가는 메모리 영역도 다르므로 함께 살펴보자. 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 주요 영역은 Method Area, Call Stack, Heap 영역이 있다. JVN 메모리 영역 1. 메서드 영역(Method Area) - 클래스 프로그..

JAVA/자바 기초 2021.10.11

[JAVA]객체지향 프로그래밍(2)-객체와 인스턴스

📖이전글 객체지향 프로그래밍(1)-클래스와 객체,객체지향의의미,장단점 목차 인스턴스의 생성과 사용 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화 라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance)라고 한다. 클래스로부터 인스턴스를 생성한다 = 클래스로부터 객체를 만든다 인스턴스를 생성하는 방법은 다음과 같다. 클래스명 변수명; //클래스의 객체를 참조하기 위한 참조변수 선언 변수명 = new 클래스명(); //클래스의 객체를 생성 후 객체의 주소를 참조변수에 저장 //한줄로 표현하기 클래스명 변수명 = new 클래스명(); 참조변수를 까먹었다면 여기로 이전글에서는 동물 클래스를 만들고, 이를 바탕으로 토끼객체와 여우 객체를 만들었다. 이를 코드로 표현하면 다음과 ..

JAVA/자바 기초 2021.10.11

[JAVA]객체지향 프로그래밍(1)-클래스와 객체,객체지향의의미,장단점

목차 객체지향 프로그래밍 클래스와 객체 객체지향 프로그래밍을 설명하기에 앞서 클래스와 객체의 의미를 먼저 알고 들어가야 한다. 클래스의 정의 - 클래스란 객체의 속성과 행동을 정의해 놓은 것이다. 클래스의 용도 - 클래스는 객체를 생성하는데 사용된다. 그러면 도대체 객체는 무엇일까? 객체의 정의 - 실제로 존재하는 것. 사물 또는 개념 객체의 용도 - 객체가 가지고 있는 기능과 속성에 따라 다르다. 객체의 사전적인 정의는 '실제로 존재하는 것'이다. 지금 내 앞에 있는 컴퓨터, 핸드폰, 필통, 의자 모두 객체이다. 형체가 있는 것만 객체가 될 수 있는 것은 아니다. 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다. 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻한다. 1) ..

JAVA/자바 기초 2021.10.11