자바공부 10

[Java] 13. 객체지향언어(4)_상속

1. 상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 구현 방법 : 'extends' 이용 Ex) class Student extends School 여기서 Student와 School 클래스는 서로 상속 관계에 있으며, 상속을 받는 Student 클래스는 자손(자식) 클래스, 상속해주는 School 클래스는 조상(부모) 클래스라고 한다. 위의 예시에서 Student 클래스는 이미 상속을 한 번 받았는데, 만약 이 Student클래스를 상속받아 A라는 클래스가 생성된다면, A와 School은 간접적인 상속관계라고 할 수 있다. 부모 클래스를 상속받아 만든 자손 클래스는 변경사항이 생겨도 부모 클래스에 영향을 주지 않지만, 부모 클래스에서 변경이 생기면 자손 클래스는 영향을 받는다. ★ 상속 ..

[Java] 12.객체지향언어(3)_클래스

1. JVM(Java Virtual Machine) JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고, 메모리는 용도에 따라 여러 영역으로 나누어 관리한다. ◆ 메서드 영역 프로그램 실행 시 필요한 클래스에 대한 정보를 저장하는 영역이다. 클래스의 클래스 변수도 이 영역에 함께 생성된다. ◆ 힙 인스턴스 및 인스턴스 변수가 생성되는 공간이다. 프로그램 실행 중 생성되는 모든 인스턴스가 힙에 생성된다. ◆ 호출스택(call stack) 메서드의 작업에 필요한 메모리 공간을 제공한다. 호출된 메서드를 위한 메모리가 할당되며, 메서드가 작업을 수행하는 동안 지역 변수 및 연산의 중간결과 등을 저장하는데 사용된다. 이후 작업이 끝나면 메모리 공간은 반환되어 비워진다. 호출 스택의 가장 위에 ..

[Java] 11.객체지향언어(2)_클래스

1. 클래스와 인스턴스 → 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 함. #인스턴스를 생성하고 사용해보는 예제 class Tv{ String color; int channel; boolean power; void power(){ power = !power; } void channelUp(){ ++channel; } void channelDown(){ --channel; } } public class exCode { public static void main(String[] args) { Tv t1 = new Tv(); t1.channel = 7; t1.channelDown(); System.out.println("현재 t1 채널의 번호는 " + t1.channel + "입니다."); Tv ..

[Java] 10. 객체지향언어(1)_클래스

객체지향언어 실제 세계의 사물과 모든 상호작용을 가상 세계(컴퓨터)의 데이터와 함수로 정의한 것 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가하여 발전시킨 언어이다. 특징 1. 코드의 재사용성이 높다. 2. 코드의 유지보수가 용이하다. 3. 신뢰성이 높은 프로그래밍이 가능하다. 객체 실제로 존재하는 사물 또는 개념(유형적/무형적 모두 포함) 클래스(Class) 객체를 정의해높은 것, 객체의 설계도이자 틀 인스턴스 클래스로부터 만들어진 객체 인스턴스화 : 클래스로부터 객체를 만드는 과정 ※ 객체 ≠ 인스턴스 객체는 모든 인스턴스를 포괄하는 의미, 인스턴스는 어떤 클래스로부터 만들어진 구체적인 것을 말한다. 엄연히 두 용어는 다르지만, 대부분 섞어서 사용된다. 객체의 구성요소 : 속성과 기능 # 속성..

[Java] 9. 배열_예제

[예제 ①] 총합과 평균 구하기 public class exCode { public static void main(String[] args) { int sum = 0; float average = 0f; int[] score = {88, 100, 76, 84, 94}; for (int i = 0; i < score.length; i++) { sum += score[i]; } average = sum/(float)score.length; System.out.println("총점 : " + sum); System.out.println("평균 : " + average); } } [실행 결과] [예제 ②] 최대값, 최소값 찾기 public class exCode { public static void main(S..

[Java] 8. 배열

*배열 예제코드는 다음 글에 게시 1. 일차원 배열 같은 타입의 변수 여러개를 하나로 묶어서 다루는 것 # 배열 선언 int[] array; → 여기서 array는 배열이 아닌 배열을 다루기 위한 참조변수이다. # 배열 생성 array = new int[10]; → 실제로 값을 저장할 수 있는 공간을 만든 것이다. → 배열을 생성하기 위해 new라는 예약어를 반드시 사용해야 한다. 배열 내 각 요소에 접근하기 위해 인덱스를 사용하며, 각 요소의 인덱스는 순서대로 0부터 부여된다. 또한, 배열은 생성됨과 동시에 값을 저장하지 않으면 각 타입의 기본값으로 자동 초기화된다. ※ 에러 : ArrayIndexOutOfBoundsException 인덱스의 범위가 유효하지 않다는 것으로 인덱스의 범위를 넘어가는 값을..

[Java] 7. 반복문

반복문 (for문, while문, do-while문) 어떠한 작업을 반복적으로 수행해야 할 때 사용한다. ★★★ ※ break문 : 자신이 포함된 가장 가까운 반복문을 벗어난다. 무한 반복문에서 프로그램 종료를 위해 자주 사용된다. ※ continue문 : 반복문의 끝으로 이동하여 다음 반복으로 넘어가도록 한다. for문에서 사용 시, 증감식으로 이동 while문, do-while문에서 사용 시, 조건식으로 이동 → break문과 continue문 모두 반복문에서만 사용 가능하다!! ① for문 작업의 반복 횟수를 알고있을 때 적합하다. 초기화, 조건식, 증감식, 블럭으로 이루어져 있다. # 초기화 : 반복문에서 사용할 변수를 초기화하는 부분으로 처음 한번만 수행한다. 두개 이상의 변수(동일한 타입)가 ..

[Java] 6. 조건문

조건문 (if문, switch문) 조건식의 연산결과에 따라 실행할 문장이 달라지므로 실행흐름을 변경할 수 있다. ※ 블럭 내에 문장이 하나인 경우에는 괄호를 생략할 수 있다. ① if문 가장 기본적인 조건문으로, 조건식과 블럭({ })으로 이루어져 있다. 조건식이 true이면 블럭 내의 문장들을 수행하고, false이면 수행하지 않는다. ★ if-else문 / if-else if문 else 블럭은 조건식의 결과가 false일 때 수행하며, 생략이 가능하다. else if문은 조건식이 여러 개인 경우에 사용한다. 또한, if문은 다른 if문에 포함시키는 중첩이 가능하다. 중첩의 횟수에는 제한이 없으나, 조건문을 되도록 간단하게 작성해야 함에 유의하는 것이 좋다. import java.util.Scanner..

[Java] 5. 연산자(2)

1. 비교 연산자 대소비교 연산자 ( , =) 기본형에서는 boolean형을 제외한 나머지 자료형에 사용 가능하며, 참조형에는 사용할 수 없다. 등가비교 연산자 (== , !=) 기본형과 참조형에 모두 사용 가능하다. 이때, 참조형에 사용하면 객체의 주소값을 비교하므로 사용 시 주의해야 한다. ※ 문자열 비교 두개의 문자열을 비교할 때에는 등가비교 연산자가 아닌 equals() 메서드를 사용해야 한다. Ex. String str = 'dakveloper' boolean result = str.equals("dakveloper") 결과 : true +) 자바는 대소문자를 구분하므로 문자열 비교 시 대소문자에 유의해야 한다. 대소문자를 구분하지 않고 비교하려면 equalsIgnoreCase()를 사..

[Java] 4. 연산자(1)

1. 연산자 [연산자 종류] 단항 연산자 : ++ -- + - ~ ! 산술 연산자 : * / % + - 비교 연산자 : = instanceof == != 논리 연산자 : & ^ | && || 삼항 연산자 : ?: 대입 연산자 : = += -= *= /= %= = &= ^= |= 연산자의 우선순위 ① 산술, 비교, 논리, 대입 연산자 순서로 수행한다. ② 단항, 이항, 삼항 연산자의 순서로 단항 연산자가 우선순위가 높다. ③ 단항 연산자와 대입 연산자의 진행방향은 왼→오이며, 나머지는 모두 오→왼이다. 일반 산술 변환이란? 연산이 수행되기 전에 피연산자가 자동 형변환되는 것으로 두 피연산자의 타입을 동일하게 만든다. 이때, 두 타입 중 큰타입으로 변환되며, int보다 작은 타입들의 연산인 경우 모두 int..