본문 바로가기

Java/Java 기초

(8)
8. 추상 클래스와 인터페이스, 내부 클래스 추상 메소드(함수)와 추상 클래스 추상의 개념은 이력서와 같다고 할 수 있다. 이력서를 작성할 때, 내가 아무리 스펙이 다양하더라도 이력서에서 정해준 내용만 기입해야 한다. 추상 메소드는 이력서처럼 틀을 정해두고, 구체적인 내용을 비워놓아 상속받기 위한 클래스에서는 비어있는 내용을 구체적으로 작성하여 구현해서 사용해야 한다. 추상메소드는 제어자 'abstract'를 붙여서 선언하고, 구체적인 내용이 없으면 내용인 중괄호({ })를 생략하고 세미콜론을 붙인다. 형태는 다음과 같다. abstract void methodA( ); 추상클래스는 추상메소드를 멤버로 가지는 클래스로 메소드가 추상이면 클래스도 추상으로 선언해줘야 한다. 형태는 다음과 같다. abstract class Cellphone { abstr..
7. 상속과 다형성 지금부터 다루는 내용은 2~6단원의 충분한 이해를 바탕으로 접근해야 쉽게 이해가 된다. 상속의 정의 상속은 새 클래스를 작성할 때, 기존에 존재하는 클래스에서 멤버를 물려받아 생성하는 행위이다. 이때, 물려주는 쪽을 부모 클래스, 물려받는 쪽을 자식 클래스라고 하고, 자식은 부모에게 상속받는다고 한다. 이렇게 작성하게 되면 사용할 코드의 양이 줄어드는 효과가 있다. 상속의 형태는 다음과 같다 Class A{} Class B extends A {} 이때 부모 클래스는 A가 되고, 자식 클래스는 B가 됩니다. 자식 클래스는 부모 클래스의 함수나 변수를 그대로 가져와서 사용할 수 있지만, 부모는 자식에서 만들어진 변수나 함수를 사용할 수 없다. 또한, 자식이 상속을 받을 때, 부모의 생성자는 상속되지 않는다...
6. 클래스 객체지향 언어 자바는 객체지향 언어로서 다음과 같은 특징을 가진다. 1. 코드의 재사용성 - 새 코드를 작성할 때 기존 코드를 사용하여 코딩하여 코드수를 줄이고 유지보수가 용이해지도록 한다. 2. 신뢰성 - 제어자와 메소드를 사용하여 데이터를 보호 및 코드 중복제거를 하여 오동작을 예방한다. 3. 코드관리의 편리함 - 객체지향은 각각이 연결되어 있어 유지보수에 있어 한부분을 변경하면 전체가 수정된다. 그래서 코드유지보수성이 좋다. 클래스와 객체 클래스는 변수와 함수로 이루어져 있는 설계도와 같은 역할을 수행한다. 인스턴스는 위에 정의한 클래스(설계도)를 통해 만들어진 형태입니다. 클래스는 생성해도 메모리(RAM)상에 존재하지 않지만, 인스턴스로 구현되는 순간부터 존재한다고 할 수 있다. 클래스로 인스턴스..
5. 배열 배열(Array)의 정의 배열은 같은 데이터 타입의 변수를 하나의 묶음으로 관리한다. 배열의 기본적인 형태는 다음과 같다. int[ ] a = new int[ ]; 만약 여기서 선언 시 배열 크기를 10으로 설정하고 싶으면 다음과 같이 작성한다. int[ ] a = new int[9]; 배열의 제일 처음이 0으로 시작하여 0,1,2,3,4,5,6,7,8,9로 10개가 생성된다. 배열의 내용 배열은 한번에 여러개의 데이터를 사용해서 각각 구분하기 위해선 주소를 사용해야된다. 주소의 기본적인 형태는 다음과 같다. a[0] = 10; a[1] = 20, a[3] = 30; public static void main(String[] args) { int[] student = new int[3]; System.o..
4. 제어문 1) 조건문 조건문은 특정 조건을 만족하거나 하지 않을 때 수행할 작업을 미리 정해놓고, 조건에 따라 각각 결과를 반환한다. 단, 조건문은 중복선택이 불가능하다. 조건에 맞는 답이 두가지가 될 수 없다. 1-1) if문 if 문은 조건식 부분과 실행부분으로 나누어진다. if 문의 형태는 다음과 같다. if(조건식) { //실행할 내용 } 여기서 조건식에 들어갈 값은 무조건 비교연산자나 boolean 값으로 나타낼 수 있는 참 또는 거짓의 값이여야 한다. 예를 들자면 예나 아니오로 대답할 수 있는 질문만 하는것이 조건식이다. "생일이 언제입니까?", "성함이 어떻게 되십니까?" 와 같이 예나 아니오로 답변할 수 없는 질문은 조건식이 될 수 없다. "생일이 3월보다 늦습니까?", "이름이 홍길동씨 입니까?"..
3. 연산자 연산자의 종류와 우선순위 연산자란 연산자를 위해 사용되는 기호이다. 종류 연산자 설명 산술 연산자 +, -, *, /, % 사칙연산과 나머지 연산 단항 연산자 - 부호 연산자 ! 논리 부정 연산자 ++, -- 증감 연산자 기타 연산자 =, +=, -=. *= 대입 연산자 연산의 대부분은 우측에서 좌측이지만 단항 연산자와 대입연산자는 왼쪽에서 오른쪽으로 실행한다. 연산자에도 우선순위가 있고, 우선순위에 따라 연산순서가 결정된다. 우선자 순위 종류 연산자 1 최우선 연산자 [ ], ( ) 2 단항 연산자 !, ~, +, -, ++, -- 3 산술 연산자 +, -, *, /, % 4 쉬프트 연산자 , >>> 5 비교 연산자 , >=, = false ++ 증가 연산자 ++a, a++ 변수 a에 1을 더해서 삽입..
2. 변수와 상수 변수 변수는 데이터를 담아둘 수 있는 메모리 공간이다. 쉽게 말해 상자라고 할 수 있다. 기본적인 틀은 다음과 같다. int a; 여기서 int는 데이터 타입이고, a가 변수(명)가 된다. 데이터 타입은 말 그대로 그 데이터가 무슨 타입인지 나타내주는 것이다. 대표적으로 int, float, long 등 이 존재한다. (해당 타입들을 처음 봤으면 float정의 long 정의를 구글에 검색해보자) a는 변수(명)로 이제 이곳에 바뀌는 값이 들어가게 된다. 이것을 '변수 선언' 이라고 한다. int a = 1; 이렇게 쓰면 데이터 타입은 int고 변수는 a가 되며 그 변수에 처음 들어가는 값은 1이 된다. 초기값을 설정해주면서 선언을 해주는 것이다. 변수 설정에는 몇가지 약속이 있다. 변수명의 처음엔 숫자가..
1. 개발환경 설정 식사를 하려면 밥상부터 차리는 것처럼, 자바(식사)를 하고 싶다면, 먼저 개발환경(밥상)부터 설정해야된다. JDK는 Java Development Kit의 약자로 말 그대로 자바 개발 도구이다. 설치방법은 다른 블로그에도 많이 소개가 되있으니 간단하게 순서만 소개하겠다. 혹시 이 글을 보면서 처음으로 자바개발환경을 설정 해본다면, 구글에 자바개발환경 구축방법을 검색해보자. 검색을 잘하는 것도 개발 실력 중 하나이다. 구글링을 많이 연습하자. 현재 정리는 jdk-8u201버전을 기준으로 진행 되므로 해당 버전으로 다운받자. 다운이 되면 자바를 설치해주자. 자바를 설치한 이후, 중요한 설정을 해줘야 된다. 환경변수 환경변수란 어떤 폴더에서나 환경변수가 설정된 곳에 접근 할 수 있도록 설정 해주는 것이다. J..