본문 바로가기

BACKEND

(8)
[이것이 자바다] 9장 중첩 클래스와 중첩 인터페이스 중첩 클래스 클래스 내부에 선언되는 위치에 따라서 두 가지로 분류된다. 중첩 클래스를 사용하면 클래스의 멤버를 쉽게 사용할 수 있고 외부에는 중첩 관계 클래스를 감춤으로 코드의 복잡성을 줄일 수 있다. 중첩 클래스도 컴파일 과정에서 바이트코드가 별도로 생성된다. 선언 위치에 따른 분류 선언 위치 설명 멤버 클래스 인스턴스 멤버 클래스 class A { class B { ...} } A 객체를 생성해야만 사용할 수 있는 B 중첩 클래스 정적 멤버 클래스 class A { static class B { ...} } A 클래스로 바로 접근할 수 있는 B 중첩 클래스 로컬 클래스 class A { void method() { class B { ...} } } method() 가 실행할 때문 사용할 수 있는 B ..
[이것이 자바다] 8장 인터페이스 * 인터페이스의 역할 객체의 사용 방법을 정의한 타입 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 주용아한 역할을 한다. 자바 8의 람다식은 함수적 인터페이스의 구현 객체를 생성한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출 시킨다. 개발 코드가 직접 객체의 메소드를 호출하면 간단한데, 왜 중간에 인터페이스를 두는지 의문점이 생길텐데 의문점을 해결할 이유는 개발 코드를 수정하지 않고, 사용하는 개체를 변경할 수 있도록 하기 위해서이다. * 인터페이스 선언 class 키워드 대신 interface키워드 사용 접근제한자 dafual,public 가능하다. // 예시 [ public ] interface 인터페이스면 { ... } public interface R..
[이것이 자바다] 7장 상속 상속(Inheritance) 부모가 자식에게 물려주는 행위를 말한다. 자식은 상속을 통해서 부모가 물려준 것을 자연스럽게 이용할 수 있다. 부모 클래스 = 상위 클래스 // 자식클래스 = 하위 클래스 or 파생 클래스 부모가 자식에게 물려주는 행위로 중복 코드를 줄여 개발 시간을 단축시키고, 클래스 수정을 최소화할 수 있다. * 클래스 상속 자식이 extends 키워드를 이용하여 부모 클래스를 선택하여 상속 받는다. → 다중 상속은 불가능하다. 부모 클래스 public class Phone { public String model; public String color; public Phone() { System.out.println("부모 생성자 호출"); } public void bell() { Syst..
[이것이 자바다] 6장 클래스 객체(Object) 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것 객체는 속성과 동작으로 구성되어 있다. 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링(Object Modeling)이라고 한다. 객체는 각각 독립적으로 존재하고, 다른 객체와 서로 상호작용하면서 동작한다. 메소드라는 수단을 이용하여 객체들 사이를 서로 상호작용한다. 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다. 객체 간의 관계 구분 설명 집합 관계 완성품과 부품의 관계 사용 관계 다른 객체의 필드를 읽고 변경하거나 메소드를 호출하는 관계 상속 관계 부모와 자식 관계 객체 지향 프로그래밍의 특징 1. 캡슐화(Encapsulation) 객체의 필드..
[이것이 자바다] 5장 참조 타입 참조 타입(reference type) 객체(Object)의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말한다. 배열, 열거, 클래스, 인터페이스를 이용해서 선언된 변수는 메모리 번지를 값으로 갖는다. → 번지를 통해서 객체를 참조한다는 의미 그림을 통해 메모리 저장 공간을 생각해보면 간단하게 변수는 스택 영역에 생성되며 객체는 힙 영역에 생성된다. * 메모리 사용 영역 > 힙 영역 객체와 배열이 생성되는 영역이다. 힙에서 생성된 객체와 배열은 JVM 스택 영역의 변수나 다른 객체이 필드에서 참조된다. 참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 떄문에 이것을 쓰레기로 취급하고 GC(가비지 컬렉션)를 실행시켜 쓰레기 객체를 힙 영역에서 자동으로 제거한다. 자바에서는 자동으..
[이것이 자바다] 3장 연산자 연산(Operations) : 프로그램에서 데이터를 처리하여 결과를 산출하는 것 연산자(Operator) : 연산에 사용되는 표시나 기호 피연산자(Operand) : 연산되는 데이터 연산식(Expressions) : 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것 연산자는 필요로 하는 피연산자의 수에 따라 구분된다. 부호 연산자와 증감 연산자가 하나만을 요구하는 단항 연산자 ++X; 단항 연산자와 삼항 연산자 이외의 연산자는 두 개이 피연산자를 요구하므로 이항 연산자 X + Y; 조건 연산자(삼항 연산자) : 조건식, A, B와 같이 세 개의 피연산자가 필요하는 삼항 연산자 (sum>90) ? "A" : "B"; 식을 해석해보면 sum이 90보다 크면 A 아니면 B -> if-else문 * 연산 방..
[이것이 자바다] 1장 자바 시작하기 자바란? 1995년도에 처음 썬 마이크로시스템즈(Sun Microsystems)에서 자바 언어를 발표되었다. 초반에는 메모리 및 CPU를 지나치게 많이 사용하기 때문에 윈도우 프로그래밍 언어로는 부적합하다는 문제가 있었지만 인터넷이 활성화되면서 웹 애플리케이션 구축용 언어로 자바가 급부상하였다. 자바의 특징 1. 이식성이 높은 언어 여기서 이식성이란? 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 뜻하는 것이다. 예를 들어서 윈도우에서 실행하는 프로그램이 리눅스 or 유닉스에서 실행할 수 있다면 이식성이 높은 것! 대부분 윈도우에서 실행되는 프로그램을 리눅스 or 유닉스에서 실행을 할려면 소스 수정 후, 재컴팡일 과정을 거쳐야 하지만 자바는 아니다!! 자바로 개발된 프로그..
[이것이 자바다] 2장 변수와 타입 변수란? 값을 저장할 수 있는 메모리 공간 변수란 이름은 > 프로그램에 의해서 수시로 값이 변동될 수 있기 때문이다. 복수 개의 값을 저장할 수 없고, 하나의 값만 저장할 수 있다. 따라서, 하나의 값을 저장할 수 있는 메모리 공간을 의미한다. 변수 선언 방법 // 타입 변수이름 int age; double value; // 같은 타입에서 여러개 변수 선언 방법 int x,y,z; // 변수 값 저장 int score = 90; 예약어는 변수 이름을 지정할 수 없다. 분류 예약어 기본 데이터 타입 boolean, byte, char, short, int, long, float, double 접근 지정자 private, protected,public 클래스 class, abstract, interface,..