반응형

java 36

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 다형성(polymorphism) 이란? 자바 기초 배우기

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

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)라고 한다.객체와 인스턴스의 차이같은 말이라서 차이를 두는 것에 큰 의미는 없지만 굳이 따지자면 객체는 모든 인스턴스를 포괄하는 넓은 의미를 가지고 있는 반면, 인스턴스는 해당 객체가 어떤 클래스로부터 생성된 것인지를 강조한다...

Java 배열(Array) 자바 기초 배우기

배열(Array)이란?이번달에 비가 온 날을 조사하기 위해서는 1~31일에 대한 변수를 선언해야 한다. 하지만 배열을 사용하면 단 하나의 변수만으로 데이터를 다룰 수 있다. 배열이란 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 의미한다. 즉 각 값들이 같은 의미를 지니면서 서로 연관성이 있을 때 이들을 하나로 묶은 값들의 집합을 배열이라고 한다. 그림을 통해 조금 더 자세히 이해해보자. 위 그림은 메모리를 형상화 한 그림이다. 메모리는 여러 메모리셀들로 이루어져있고 각 메모리셀은 값을 저장할 수 있는 1바이트의 메모리 공간을 가지고 있다. 예를 들어 7월 한달동안 일별 최고 기온을 저장하는 경우를 살펴보자. 이 경우 각 변수는 개별적으로 double 타입으로 선언이 되어있고 메모리 공간상 여기..

Java 제어문(Control Flow Statements) 조건문과 반복문

Java 제어문일반적으로 코드의 흐름은 위에서 아래로 향한다. 하지만 제어문을 사용하면 코드의 흐름을 개발자가 원하는 방향으로 바꿀 수 있다. 제어문은 if문, switch문을 사용하는 조건문과 for문, while문, do while문을 사용하는 반복문으로 분류된다. if문if 문의 소괄호 안에는 boolean 값으로 평가될 수 있는 조건식을 넣어주고 중괄호 안의 실행 블록에는 조건식이 참일 때 실행하고자 하는 코드를 적어주면 된다.if (조건식) { //조건식이 참이라면 실행되는 블록} if...else 문if,,,else문은 조건식의 결과에 따라 실행 블록을 선택한다. if문의 조건식이 true 이면 해당 블록이 실행되고, 조건식이 false 이면 다음으로 넘어가 else if 문의 조건식을 검사한..

Java 연산자(Operator) 및 콘솔 입출력 Java 기초 배우기

산술연산자수학 연산자와 동일하다. +, -, *, / 가 있다. 우리가 일반적으로 쓰는 연산자와 다른게 있다면 % 만 확인하면 될 것 같다. 연산자에서 %는 백분율이 아닌 나머지를 반환하는 연산자이다. 예를 들면 7%3 은 결과가 1이다. 몫과 나머지, 초등학교때 이야기 듣고 오랜만에 보는 나머지이다. 증감연산자어떤 정수 타입 변수가 가진 값을 증가시키거나 감소시켜야 하는 경우가 있는데 이러할 때 아래와 같이 작성을 할 것이다.num1 = num1 + 1; // num1의 값은 2가 됩니다.num2 = num2 - 1; // num2의 값은 0이 됩니다. 이 코드를 증감 연산자를 이용하여 아래와 같이 작성할 수 있다. num1++; // num1 = num1 + 1;과 같습니다.++num1; // num..

반응형