본문 바로가기

IT/자바 Java

[Java 기초] #9. 예외 처리 런타임에서 발생하는 에러를 예외 (Exception) 라고 하는데, 자바는 예외 처리를 위한 잘 만들어진 방법을 제공하고 있습니다. try - catchtry 와 catch로 이루어진 블록은 예외 처리에서 가장 핵심적인 역할을 수행합니다. try { // block of code to monitor for errors } catch (ExcepType1 exOb) { // handler for ExcepType1 } catch (ExcepType2 exOb) { // handler for ExcepType2 } try 키워드로 먼저 예외처리를 할 코드를 블럭화 하고, 블럭 다음에 오는 catch 키워드를 이용해서 특정 타입의 예외가 발생할 때 수행할 작업을 정의합니다.여러 개의 catch 키워드로 다양한.. 더보기
[Java 기초] #8. 패키지와 인터페이스 Packages 패키지 서로 관련된 클래스들은 자바의 패키지 기능을 통해 관리 할 수 있습니다. 패키지로 묶인 클래스는 패키지 이름을 통해 억세스 하게 되며, 이전 포스팅에서 설명했던 자바의 억세스 컨트롤과도 관련이 있습니다. 패키지 내의 클래스들은 다른 패키지의 클래스들과 별도의 네임스페이스 (declarative region)를 가지게 됩니다. 따라서 서로 다른 패키지 내의 클래스는 같은 이름을 가질 수 있습니다. 패키지는 코드 상단의 package 선언문을 이용해서 정의합니다. 하나의 패키지는 하나의 디렉토리를 가지며 반드시 패키지와 같은 이름을 가진 디렉토리 내에 해당 패키지의 클래스 파일들이 저장되어야 합니다.패키지도 hierarchy를 가질 수 있습니다. 즉 상위 패키지에 속하는 여러 개의 하.. 더보기
[Java 기초] #7. 상속 상속 상속은 객체지향 프로그래밍의 3대 속성 중 하나 입니다. 상속의 개념을 이용해서, 일반적인 속성을 가지는 클래스와 상세한 속성을 가지는 클래스를 나누어 정의하는 것이 가능해집니다.상속되는 클래스 (상위 클래스)는 슈퍼클래스, 상속을 받는 클래스 (하위 클래스)는 서브클래스라고 부릅니다. 서브클래스는 extends키워드를 사용해서 정의됩니다. class TwoDShape { double width; double height; void showDim() { System.out.println("Width and height are " + width + " and " + height); } } class Triangle extends TwoDShape { String style; double area() .. 더보기
[Java 기초] #6. 메서드와 클래스 - 심화 클래스 멤버 억세스 클래스의 멤버 (변수, 메서드)는 외부에서 억세스 할수 있는지 여부에 따라 public 와 private로 나눌 수 있습니다. 이렇게 구분 하는 것은 객체지향 프로그램의 사상인 Encapsulation과 연관이 있습니다. 가능하면 최소한의 정보만 외부에 노출시켜서 객체의 잘못된 사용을 막겠다는 취지라고 하네요. public : 프로그램의 다른 어떤 코드도 억세스 가능private : 같은 클래스 내의 멤버만 억세스 가능default (public이나 private 설정이 없는 경우) : 보통은 public과 동일하나 패키지를 사용하는 경우는 같은 패키지 내에서만 억세스가 가능합니다. 일반적으로 자바 프로그램의 클래스에서는 setter, getter메서드를 정의해서 클래스 외부에서의 억.. 더보기
[Java 기초] #5. 추가적인 데이터 타입과 오퍼레이터 배열 Arrays 배열은 공통된 이름을 가지는 같은 타입의 변수의 집합입니다. 다른 언어들처럼 자바도 다차원 배열을 지원합니다. 배열도 자바에서는 오브젝트이기 때문에, 선언할 때 new 를 사용합니다. 클래스 오브젝트와의 차이점은 괄호 안에 컨스트럭터로 넘겨지는 파라메터를 명시하지 않고, 대괄호 안에 배열의 크기를 지정한다는 것이죠. type array-name[] = new type[size]; type은 배열 변수의 데이터타입을 의미하며 size는 배열 변수의 갯수를 정의합니다. 배열의 정의 시 사용되는 대괄호 [] 는 변수이름 뒤에 오지만, 데이터 타입 뒤에 와도 됩니다. 여러 개의 배열을 동시에 선언할 때 이런 방식을 사용하면 더 간단하게 쓸 수 있습니다. int[] nums, nums2, num.. 더보기
[Java 기초] #4. 클래스, 오브젝트, 메서드 클래스 클래스의 정의: 클래스는 오브젝트의 형식을 정의하는 템플릿입니다. 클래스는 데이터와 테이터에서 작동하는 코드를 모두 정의합니다.오브젝트는 클래스의 인스턴스입니다. (뒤에서 설명하겠지만, new 키워드로 클래스의 컨스트럭터를 호출하면 오브젝트가 생성됩니다) 클래스는 논리적 추상화입니다. 즉 클래스는 오브젝트로 구체화 되기 전까지는 실재하는 존재가 아니라고 할 수 있습니다. "자동차" 에 대한 클래스를 아래처럼 정의해 봅니다. class Vehicle { int passengers; // number of passengers int fuelcap; // fuel capacity in gallons int mpg; // fuel consumption in miles per gallon } 클래스의 정의.. 더보기
[Java 기초] #3. 프로그램 제어 이번에는 프로그램의 흐름 등을 제어하기 위한 자바의 명령어를 정리해 보겠습니다. ifif를 이용한 가장 단순한 형식은 다음과 같습니다. (else는 필수가 아닙니다.) if(컨디션) 명령;else 명령;중괄호를 이용해서 하나가 아닌 다양한 명령을 수행하게 합니다.if(condition) { statement sequence } else { statement sequence } 자바에는 elif 구문이 없습니다. 그냥 else if 를 이용하면 됩니다.if(condition) statement; else if(condition) statement; else if(condition) statement; . . . else statement; switchswitch는 case / break 구문을 이용합니다... 더보기
[Java 기초] #2. 자바의 데이터 타입(자료형)과 오퍼레이터(연산자) 자바의 데이터 타입 데이터 타입 (자료형) 은 문자, 정수, 소수 등 데이터(자료) 의 형식을 말합니다. 프로그래밍 언어중에서는 파이썬처럼 데이터 타입을 명시적으로 정의할 필요가 없는 언어도 있지만, C처럼 데이터 타입을 반드시 정의해야 하는 언어도 있습니다. 자바는 후자에 속하며, 이와 같은 언어를 "strongly typed language"라고 합니다. 자바는 크게 2가지 형태의 데이터 타입을 가지고 있는데, 객체지향타입과 비객체지향 타입입니다. 앞에서 간략히 언급했던 class 가 가장 대표적인 객체지향타입이라면, 비객체지향 타입은 자바의 8가지 기본타입 (primitive data type)으로 정의할 수 있습니다. 자바의 기본 타입 (Built-in Primitive Data Types)정수형.. 더보기