1. Java의 특징 크로스 플랫폼 지원 Java 프로그램은 운영체제나 하드웨어가 아닌 자바가상머신(JVM)과 통신하고, 자바가상머신이 Java프로그램으로부터 전달 받은 명령을 해당 운영체제가 수행할 수 있도록 변환하여 전달한다. 따라서 Java프로그램은 운영체제나
변수란 데이터를 저장할 수 있는 저장공간이다.프로그래밍을 할 때 데이터를 저장하려면 저장할 공간이 필요하다. 이러한 저장공간이 필요할 때 "변수를 선언한다"라고 한다. 변수타입은 그 변수에 저장될 수 있는 데이터의 타입을 제한하고 변수이름은 저장공간의 이름으로 이해해도
1. 식별자 식별자란 클래스명, 메소드명, 변수명과 같이 개발자가 임의로 만들어서 사용하는 고유한 이름이다. 식별자에 대한 규칙은 다음과 같다. 문자, 숫자, 언더바(_)를 조합해서 정한다. 예) name, studentName, IMAGE_DIRECTORY, P
x, y에 있는 값을 서로 교환하려면 어떻게 해야 할까?변수는 '저장공간'이다. 따라서 x의 값을 y로 옮기기 위해서는 y의 값을 임시로 보관하기 위한 공간을 마련하면 된다.사용하는 값의 종류에 따라 값이 저장될 공간(변수)의 크기와 저장 형식을 정의한 것이 자료형이다
앞에서 사용했던 println()은 값을 기본적으로 10진수로 표현하거나 변수에 저장된 값을 그대로 출력한다. 그래서 저장된 값을 다른 형식으로 출력하기 위해서는 미리 값을 변환해야한다. 예를 들면 다음과 같다.입력출력printf()는 '지시자'를 통해 변수의 값을 여
들어가기에 앞서 오버플로우란 무엇인가?예를 들어, 4bit 타입의 2진수 '1111'에 1을 더한다고 생각하자. 결과는 '10000'이 나와야 하지만 4bit로는 4자리만 저장할 수 있기 때문에 '0000'으로 표현된다. 즉, 5자리의 2진수 '10000'중에서 하위
연산자는 '연산을 수행하는 기호'이다. 피연산자는 연산의 대상이다.그래서 연산자는 연산을 수행한 후 반드시 결과값을 반환한다.위와 같은 식에서 +는 덧셈 연산자이고 =는 대입 연산자이다.덧셈 연산자는 두 값을 더한 결과를 반환하므로, 두 개의 피연산자를 필요로 한다.
형변환(Casting)이란? 형변환은 리터럴(값)의 타입을 다른 타입으로 변환하는 것이다. 변수(저장공간)의 타입은 변환시키지 않는다. 컴퓨터는 같은 타입 간의 연산만 가능하다. 그래서 다른 타입 간의 연산을 수행해야 할 때는 '형변환'을 통해 타입을 일치시킨다. 형
지금까지의 코드 실행은 위에서 아래로 한 문장씩 순차적으로 진행되었지만 때로는 조건에 따라 문장을 건너뛰거나 특정 문장을 반복해서 수행해야 할 때가 있다. 이처럼 프로그램의 흐름을 바꾸는 문장들을 제어문이라고 한다. 제어문에는 조건문(if문, switch문)과 반복문
비교 연산자 ==를 다룰 때, 문자열을 비교하고자 한다면 비교 연산자==보다는 equals()메소드를 사용해야한다고 했었다. 그 이유에 대해 보다 자세히 알아보도록 하자. 문자열 생성 Java에서는 문자열을 생성하는 방법이 아래와 같이 두 가지가 있다. 첫 번째 방법
for문 for문은 특정 실행문을 반복 수행한다. 조건식의 결과값이 true인 경우, 블럭 내 실행문을 반복 수행한다. 반복 횟수를 알고 있을 때 for문을 사용한다. 구조 for문은 위와 같이 '초기화식', '조건식', '증감식', 블럭{}으로 구성되어 있다.
배열이란? 배열은 같은 타입의 데이터를 여러개 저장할 수 있는 공간이다. 배열의 각 저장공간은 '인덱스(index)'를 따라 연속적으로 배치되어 있다. 인덱스는 배열의 저장공간마다 붙여진 일련번호다. 배열에 저장되어 있는 각각의 값을 '배열의 요소(element)'라고
객체를 생성하면 클래스로부터 정의된 객체의 변수와 메소드를 사용할 수 있다. 생성된 객체의 변수와 메소드에 접근하려면 반드시 참조변수에 객체의 주소값을 저장해두어야 한다.생성된 객체의 속성과 기능을 각각 '인스턴스 변수'와 '인스턴스 메소드'라고 한다. 또한, 인스턴스
객체를 생성하면 클래스로부터 정의된 객체의 변수와 메소드를 사용할 수 있다. 생성된 객체의 변수와 메소드에 접근하려면 반드시 참조변수에 객체의 주소값을 저장해두어야 한다.생성된 객체의 속성과 기능을 각각 '인스턴스 변수'와 '인스턴스 메소드'라고 한다. 또한, 인스턴스
객체의 기능을 담당한다.선언부와 구현부로 구성된다.선언부는 접근제한자, 반환타입, 메소드명, 매개변수로 구성된다.구현부는 해당 메소드가 수행하는 작업에 대한 실행문이 포함되어 있다.반드시 객체를 생성하고, 호출해야만 사용할 수 있다.메소드가 호출되면 블럭 내 실행문을
메소드 오버로딩(Method Overloading)이란? 하나의 클래스 안에 같은 이름의 메소드를 여러 개 정의하는 것이 다. 메소드도 변수와 마찬가지로 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 한다. 그러나 Java에서는 매개변수의 개수나 타입이
생성자란? 객체 생성 직후 실행되는 메소드다. 매개변수를 통해 객체의 멤버변수를 초기화한다. 반환값이 없다. 객체 생성시 new연산자와 함께 사용한다. 조건 생성자도 클래스 내에 선언되는 메소드이지만 다음 조건을 만족해야 생성자로 간주한다. 반환값이 없는 메소드이지만
정보 은닉(Informaiton Hiding)이란? 외부로부터 객체의 멤버에 대한 접근을 제한하는 것. 멤버에 대한 직접적인 접근을 허용하지 않음으로써 객체에 포함된 정보의 손상과 오용을 막기 위해 사용한다. 외부로부터 객체의 접근을 막는다면 어떻게 객체의 멤버변수나
static 키워드 클래스를 정의할 때 static이라는 키워드와 함께 변수 혹은 메소드를 정의할 수 있다. static은 클래스에 고정되어 있다는 의미이다. static키워드가 붙은 변수와 메소드를 정적멤버 혹은 클래스멤버라고 한다. 정적 멤버의 특징은 다음과 같다.
객체지향프로그래밍에서는 클래스를 통해 객체를 생성하고, 그 객체들이 상호작용하며 프로그램의 기능을 수행한다. 현실세계에 존재하는 개념들이 상위 개념, 하위 개념으로 나뉘고 복잡하게 얽혀있는 것처럼 프로그램의 클래스도 다양한 관계를 맺고 있다.상속 관계
기존의 클래스(상위클래스)를 재사용하여 새로운 클래스(하위클래스)를 정의하는 것.하위 클래스는 상위 클래스의 멤버를 상속받는다. 다르게 표현하면 상위 클래스를 확장시켜 하위 클래스를 정의한다.하위 클래스는 추가적인 코드 작성 없이 상위 클래스의 멤버를 그대로 사용할 수
메소드 재정의란?