Java 9

[JAVA] 클래스 상속

상속(inheritance) 상속은 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. 상속을 이용하여 기존에 정의한 클래스의 필드와 메서드를 물려받고, 새로운 클래스를 생성할 수 있다. 구현된 클래스보다 구체적인 기능을 가진 클래스를 구현해야 할 때, 기존의 클래스를 상속하여 구현한다. 기존의 클래스를 부모 클래스(parent class)나 상위 클래스(super class) 또는 기초 클래스(basic class)라고 한다. 상속받은 클래스를 자식 클래스(child class)나 하위 클래스(sub class) 또는 파생 클래스(derived class)라고 한다. 하위 클래스 생성 과정 하위 클래스를 생성하면 상위 클래스가 먼저 생성된다. 상위 클래스가 먼저 호출되..

Java 2022.02.21

[JAVA] 자바의 배열

배열 동일한 자료형의 순화적 자료구조 인덱스 연산자 []를 이용하여 참조할 수 있다. 배열의 인덱스는 0부터 시작한다. 배열의 선언과 초기화 int[] arr1 = new int[10]; int arr2[] = new int[10]; 배열은 선언과 동시에 자료형에 따라 초기화된다. 정수는 0, 실수는 0.0, 객체는 null int[] num = new int[] {10, 11, 12}; int[] num = {1, 2, 3}; int[] idx; idx = new int[] {1, 2, 3}; 선언과 초기화를 따로 하는 경우, new int[] 를 생략할 수 없다. 배열 사용하기 배열의 길이와 요소의 개수는 동일하지 않다. 배열을 선언하면 개수만큼 메모리가 할당되지만, 데이터가 없는 경우도 있다. 배열..

Java 2022.02.17

[JAVA] 정적 변수와 정적 메서드

정적 변수 여러 인스턴스에서 공통으로 사용하는 변수 항상 값이 변하지 않는 경우에 사용한다. 즉, 같은 데이터 영역을 사용한다. 정적 변수는 프로그램이 메모리에 있는 동안 계속 그 영역을 차지하므로 큰 메모리를 할당하는 것은 좋지 않다. 예제 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생의 학번, 회사원의 사번 카드 번호 정적 변수 선언과 사용 static int serialNumber; ex) Student.serialNumber = 100; 프로그램이 메모리에 로딩될 때, 메모리를 할당하여 사용한다. 인스턴스 생성과 관계없이 사용할 수 있으므로 클래스 이름으로 직접 참조할 수 있다. 정적 메서드 정적 변수를 private으로 선언하고, getter/setter를 구현하여 사용할 수 있다. 정적..

Java 2022.02.17

[JAVA] 객체와 객체지향 프로그래밍

자바는 대표적인 객체지향 언어이다. 객체와 객체 지향 프로그램에 대해 공부해보자!! 객체(Object) 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다. 객체는 속성과 동작으로 구성되어 있고, 속성을 필드(field), 동작을 메소드(method)라고 한다. 사람을 예로 들자면, 사람이 객체가 되고, 사람의 이름, 나이와 같은 값 필드, 사람이 움직이거나 달리는 등의 동작이 메소드가 된다. 클래스(Class) 클래스는 객체를 정의하는 설계도이다. 설계도 내에 값을 저장하여 객체를 만들 수 있다. 인스턴스(Instance) : 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 한다. 클래스는 필드, 메소드, 생성자로 구성되어 있다..

Java 2022.02.08

[JAVA] 반복문 ~ while ~ for

반복문 Iteration Statements 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문 while 문 조건이 참인 동안 주어진 명령어를 반복 실행한다. while (조건식){ 수행문; } do ~ while 문 조건에 관계없이 한 번은 수행문을 실행하고 나서 조건이 참인 동안 주어진 명령어를 반복 실행한다. do{ 수행문; } while(조건식); 조건이 거짓인 경우, 더이상 수행하지 않는다. for 문 조건이 참인 동안 주어진 명령어를 반복 실행한다. 특정 수의 범위, 횟수와 관련된 경우에 많이 사용된다. for(초기식; 조건식; 증감식){ 수행문; } 초기식 생략 이전에 값이 초기화되어 값을 지정할 필요가 없는 경우 for(; 조건식; 증감식){ 수행문; } 조건식 생략 반복 수..

Java 2022.02.07

[JAVA] 조건문 ~ if

조건문이란? Conditional Statements 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문 if문 문법 조건식이 참이 경우 수행문이 수행된다. if (조건식){ 수행문; } if ~ else 문 문법 조건식이 참이 경우 수행문1이, 거짓인 경우 수행문2가 수행된다. if (조건식){ 수행문1; } else{ 수행문2; } if ~ else if ~ else 문 문법 조건식1이 참인 경우, 수행문1이 조건식2가 참인 경우, 수행문2가 조건식3이 참인 경우, 수행문3이 모두 거짓인 경우 수행문4가 수행된다. if (조건식1){ 수행문1; } else if (조건식2){ 수행문2; } else if (조건식3){ 수행문3; } else { 수행문4; } 하나의 조건이 만족하면 ..

Java 2022.02.07

[JAVA] 자바의 연산자

항과 연산자 항(operand) 연산에 사용하는 값 연산자(operator) 항을 이용하여 연산하는 기호 연산자 대입 연산자(=) assignment operator 변수에 다른 변수나 값을 대입하는 연산자 이항 연산자 중 우선순위가 가장 낮은 연산자 왼쪽 변수 = 오른쪽 변수 a = 10; 부호 연산자(+, -) 단항 연산자 실제 변수의 부호가 변하려면 대입 연산자를 사용해야 한다. -10, +10 산술 연산자(+, -, *, /, %) 사칙 연산자 연산자 기능 예제 + 더하기 a + b - 빼기 a - b * 곱하기 a * b / 몫 a / b % 나머지 a % b 복합 대입 연산자(+=, -=, *=, /=, %=, =, >>>=, &=, !=, ^=) 대입 연산자와 다른 연산자가 함께 쓰인다. 연..

Java 2022.02.07

[JAVA] 자바의 자료형

변수 변수는 변하는 값을 의미한다. 표현하려는 값에 맞는 데이터 타입을 이용하여 변수를 선언, 정의할 수 있다. 변수 선언은 자료형과 변수 명으로 선언하고, 선언과 동시에 초기화 할 수 있다. 변수 선언 예제 public static void main(String[] args){ int age; age = 10; int level = 10000; System.out.println(age); System.out.println(level); } //print 10 10000 변수의 이름 영문자, 숫자를 사용할 수 있고, 특수문자는 $, _ 만 사용할 수 있다. 숫자로 시작할 수 없다. 예약어는 사용할 수 없다. (while, break, ...) 용도에 맞고, 가독성 있게 만들어야 한다. 진수 자바에서는 숫..

Java 2022.02.05

[JAVA] 자바란?

JAVA 자바의 역사 1991년 제임스 고슬링과 썬 마이크로 시스템즈 연구원들이 처음 개발하여 가전, 휴대용 장치에 사용되는 소프트웨어 언어로 개발되었다. 자바 실행 코드 생성 소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++ 의 컴파일러와 달리 자바 컴파일러는 바이트코드인 클래스 파일(.class)을 생성하고, 자바 가상 머신이 파일의 바이트 코드를 읽은 뒤 기계어로 바꾸어 실행한다. 자바는 플랫폼이 아닌 가상머신에 종속적이고, 프로그램 실행의 주체가 JVM(자바 가상 머신)이므로 플랫폼 종속성이 낮은 언어이다. 장점 플랫폼에 영향을 받지 않아서 다양한 환경에서 사용할 수 있다. 안정성 객체 지향 언어라 유지보수가 쉽고 확장성이 좋다 픙부한 기능이 제공되는 오픈소스 단점 처리 속도가 느리다. 하..

Java 2022.02.01