본문 바로가기

java

(13)
자바강의 10일차 1. 내부클래스 - 내부클래스는 클래스 내에 클래스가 선언된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. - 내부클래스는 사용빈도가 높지 않으므로 내부 클래스의 기본 원리와 특징을 이해하는 정도만 알아보자. - 내부클래스는 클래슨 내에 선언된 클래스로써 두 클래스가 서로 긴밀한 관계에 있기 때문에 사용한다. - 내부클래스의 장점은 다음과 같다. ① 내부클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. ② 코드의 복잡성을 줄일 수 있다. 1-1) 내부클래스의 종류와 특징 - 내부클래스의 종류는 변수의 선언위치에 따른 종류와 같다. - 내부클래스는 마치 변수를 선언하는 것과 같은 위치에 선언할 수 있으며, 변수의 선언위치에 따라 인스턴스변수, 클래스변수, 지역변수로 구분되는 것과 같이 내부클래..
자바강의 9일차 1. 추상클래스 (abstract class) - 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. - 즉, 완성되지 못한채로 남겨진 설계도를 말한다. - 미완성설계도로 완성된 제품을 만들 수 없듯이 추상클래스로 인스턴스를 생성할 수 없다. - 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. (확장) - 추상클래스는 새로운 클래스를 작성하는 데 있어서 바탕이 되는 클래스로써 중요한 의미를 가진다. - 만약, 같은 크기의 Tv라도 기능의 차이에 따라 여러 종류에 모델이 있지만 사실 이들의 설계도는 아마 90%정도 동일할 것이다. 서로 다른 여러개의 설계도를 따로 그리는 것보다 이들의 공통부분만을 그린 미완성 설계도를 만들어 놓고 이 미완성 설계도를 이용해서 각각..
자바강의 8일차 1. 제어자(modifier) 1-1) 제어자란? - 제어자란 클래스, 변수 또는 메소드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. - 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근제어자 public, protected,(default),private 그 외 static, final, abstract, transient, synchronized, volatile, strictfp... - 제어자는 클래스나 멤버변수와 메소드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. - 단, 접근제어자는한 변에 4가지 중 하나만 선택해서 사용할 수 있다. 1-2) static - 클래스, 공통적인 - static은 '클래스의' 또는 '공통적..
자바강의 7일차 1. 상속(inheritance) 1-1) 상속의 정의와 장점 - 상속이란 기존 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. - 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. => 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. - 상속을 구현하기 위해선 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 extends와 함께 써 주기만 하면 된다. 조상클래스 부모(parent)클래스, 상위(super)클래스, 기반(base)클래스 자손클래스 자식(child)클래스, 하위(sub)클래스, 파생된(der..
자바강의 6일차 1. 오버로딩(overloading) 1-1) 오버로딩이란? - 한 클래스 내에 같은 이름의 메소드를 여러개 정의하는 것을 '메소드 오버로딩(method overloading)' 또는 간단히 오버로딩(overloading)이라고 한다. - 하나의 메소드 이름으로 여러 기능을 구현하기 위해 사용한다. 1-2) 오버로딩의 조건 ① 메소드 이름이 같아야 한다. ② 매개변수의 개수또는타입이 달라야 한다. - 메소드의 이름이 같더라도 매개변수가 다르면 서로 구별될 수 있기 때문에 오버로딩이 가능하다. - 반환타입은 오버로딩을 구현하는데 아무런 영향도 주지 못한다. 1-3) 오버로딩의 장점 - 하나의 이름을 사용하고 기억하면 되므로 '이 메소드는 이름이 같으니 같은 기능을 하겠구나'라고 쉽게 예측이 가능하다. - ..
자바강의 5일차 [객체지향 언어(클래스와 객체)] 1. 객체지향 언어 - 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며 발생하는 모든 사건들은 사물간의 상호작용이다'라는 것이다. - 실제 사물의 속성과 기능을 분석한 다음 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같다. - 객체지향 언어의 특징 ① 코드의 재 사용성이 높다. - 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. ② 코드의 관리가 용이하다. - 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. ③ 신뢰성이 높은 프로그래밍을 가능하게 한다. - 제어자와 메소드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 ..
자바강의 4일차 1. 배열(array) 1-1) 배열이란? - 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열이라 한다. "배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것" - 여기서 중요한 것은 같은타입이어야 한다는 것이다. - 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다. Ex) int[] score = new int[5]; // 5개의 int값을 저장할 수 있는 배열 생성 1-2) 배열의 생성 - 배열을 선언하는 방법은 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호 []를 붙이면 된다. 선언방법 선언예시 타입[ ] 변수이름; int[] score; , String[] names; 타입 변수이름[ ] int score[]; , String names[]; * 배열의..
자바강의 3일차 1. 제어문 (조건문,반복문) 2. 배열 * 지금까지 코드의 실행 흐름이 무조건 위에서 아래로 한 문장씩 순차적으로 진행되었지만, 때로는 조건에 따라 문장을 건너뛰고, 때로는 같은 문장을 반복해서 수행해야 할 때가 있다. 이처럼 프로그램의 흐름(flow)을 바꾸는 역할을 하는 문장들을 제어문이라고 한다. * 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다. 1. 조건문 if (if, if-else, if-else if-else), switch - 조건문은 조건식과 문장을 포함하는 블록 {}으로 구성되어 있으며, 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할 수 있다. - 조건문은 if문과 switch문 두가지가 있으며 주로 if문이 많이 ..