본문 바로가기

반응형

분류 전체보기

(482)
[java-기초-09] 중첩 클래스와 중첩 인터페이스 충첩 클래스와 중첩 인터페이스란? 클래스 내부에 선언한 클래스를 말하며 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. class ClassName { class NestedClassName { } } 중첩 클래스 class ClassName { interface NestedInterfaceName { } } 중첩 인터페이스 중첩 클래스 클래스의 멤버로 선언되는 중첩 클래스는 멤버 클래스라고 한다. 메서드 내부에 선언되는 중첩 클래스는 로컬 클래스라고 한다. class A { class B { // 멤버 클래스 } static class C { // 정적 멤버 클래스 } void method() {..
[java-기초-08] 인터페이스 인터페이스란 객체의 사용방법을 정의한 타입으로 객체의 교환성을 높여주며 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 해준다. [public] interface 인터페이스명 { } 상수와 메서드만 구성 멤버로 가지마 생성자를 가질 수 없다. 인터페이스는 다중 구현이 가능하다. interface 인터페이스명 { // 상수 타입 상수명 = 값; // 추상 메서드 타입 메서드명(매개변수,..); // 디폴트 메서드 default 타입 메서드명(매개변수, ...) { ... } // 정적 메서드 static 타입 메서드명(매개변수, ...) { ... } } 인터페이스 내부 public interface RemoteControl { // 상수 ..
[java-기초-07] 상속 상속이란 현실에서 상속은 부모가 자식에게 물려주는 행위이고 객체 지향에서도 부모 클래스의 멤버를 자식 클래스에게 물려주는 필드와 메소드를 의미한다. 상속을 하면서 중복이 줄어들고 다형성을 가질 수 있다. 부모 클래스에서 private 접근 제한을 갖는 필드와 메서드는 상속 대상에서 제외된다. 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메서드도 상속 대상에서 제외 된다. 자손의 변경은 조상에 영향을 미치지 않는다. 포함(컴포지션, composite)이란 클래스의 멤버로 참조변수를 선언하는 방식을 포함이라 한다. 상속 대신에 포함을 사용할 수 있는지 확인하자. 작은 단위의 클래스를 만들고, 이 들을 조합하는 클래스 포함과 상속 중 어느것으로 구현해야 할지 모..
[java-기초-06] 클래스 객체 지향 프로그래밍 현실에서 제품을 만드는 과정과 유사하여 제품을 만들기 위해 부품을 먼저 만들고 부품들을 조립해서 제품을 완성하는 방식 소프트웨에서도 부품에 해당하는 객체들을 만들어 하나의 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍(OOP)라 한다. 공장에서 설계도를 가지고 부품을 조립하여 제품을 출하하는 개념과 유사하다. 클래스란? 공장에서 부품과 제품을 만들기 위한 설계도이다. 실제하지 않지만 객체를 만들기 위해서 미리 정의해둔 필드와 메서드들이다. 객체란? 공장에서 설계로를 가지고 만든 부품과 제품이다. 실제하고 설계도를 기반으로 필드와 메서드들이 실제 동작한다. 객체 프로그래밍의 특징 캡슐화 : 객체의 필드, 메서드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다. 외부 객체는..
[java-기초-05] 참조 타입 데이터 타입 분류 참조 타입이란 객체의 번지(메모리 주소)를 참조하는 타입이다. 기본 타입과의 차이점으로 기본 타입은 값을 메모리에 저장하고 참조 타입은 객체가 저장된 메모리 주소를 저장한다. 메모리 영역 메소드 영역 : 클래스(.class)를 읽어들여 저장한다. 런타임 상수풀, 필드 데이터, 메서드 데이터, 메서드 코드, 생성자 코드 등을 저장한다. 메소드 영역은 JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역이다. 힙 영역 : 객체와 배열이 생성되는 영역이다. JVM 스택 영역의 변수나 다른 객체의 필드에서 참조한다. 참조하는 변수나 필드가 없으면 JVM이 가비지 컬렉터를 실행시킨다. 자바는 코드로 직접 제거시키는 방법을 제공하지 않지만 null처리로 대신한다. JVM 스택 영역 : JVM ..
[java-기초-04] 조건문과 반복문 코드 실행 흐름 제어 조건문 조건을 만족하면 실행문을 수행하는 구문조건문(if문) if( 조건식 ) { // 조건문이 참이면 아래 블록 실행 실행문; 실행문; } if (조건문) { // 조건문이 참이면 아래 블록 실행 실행문; } else { // 조건문이 참이 아니면 아래 블록 실행 실행문; } if(조건문) { // if 조건문이 참이면 아래 블록 실행 실행문; } else if(조건문) { // else if 조건문이 참이면 아래 블록 실행 실행문; } else { // 위 조건문들이 모두 참이 아니면 아래 블록 실행 실행문; } 조건문(switch문) switch(변수) { // 전달 받은 변수가 아래 case에 해당하는지 확인 case 값1: // 변수가 값1에 해당하는 경우 실행문 수행 실행..
[java-기초-03] 연산자 연산자 연산자와 연산식 연산자 종류연산자피연산자 수산출값기능 설명산술+, -, *, /, %이항숫자사칙연산 및 나머지 계산부호+, -단항숫자음수와 양수의 부호문자열+이항문자열두 문자열을 연결대입=, +=, -=, *=, /=, %/, &=, ^=, |=, =, >>>=이항다양우변의 값을 좌변의 변수에 대입증감++, -- 단항숫자1만큼 증가/감소비교==, != >, =, >, >이항숫자비트를 좌측/우측으로 밀어서 이동 단항 연산자 : ++x; 이항 연산자 : x + y; 삼항 연산자 : (sum>100) / "A" : "B"; 연산의 방향과 우선순위 산술 연산 시 오버플로우 주의 해당 타입이 연산, 표현하고자 하는 숫자를 담을 수 있는지를 확인해야 하며 담을 수 없을 시 쓰레기 값이 들어가 시스템에 큰 문..
[java-기초-02] 변수와 타입 변수란? 하나의 값을 저장할 수 있는 메모리 공간이다. 상수와는 다르게 변하는 값을 변수라고 한다. 변수의 선언 int age; double value; int : 타입, age : 변수 이름 => 정수(int) 값을 저장할 수 있는 age 변수 선언 자바의 명명 규칙 작성 규칙 예 첫 글자는 문자이거나 '$', '_'이어야 하고 숫자는 시작할 수 없다.(필수) 가능 : price, $price, _companyName 불가 : 1v, @speed, $#value 영어 대소문자를 구분한다.(필수) firstname과 firstName은 다른 변수 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다.(관례) maxSpeed, firstName, carBodyColor 문자 ..

반응형