전체 글(141)
-
[Java] 객체 지향 프로그래밍 이해하기
프로그램을 만들 때 객체들을 만들고 각 객체들을 조립하여 프로그램을 만드는 기법을 말한다. 객체 속성(필드)과 동작(메소드)을 가지고 있고 다른 것과 식별이 가능한 것을 의미한다. 객체 모델링 현실 세계의 객체들을 소프트웨어 객체로 설계하는 것을 말한다. 즉, 현재 객체의 속성과 동작을 소프트웨어 객체의 필드와 메소드로 정의하는 과정을 의미한다. 객체 상호 작용 현실 세계 객체처럼 소프트웨어 객체 간의 상호 작용하면서 동작하는데 메소드를 통해 상호 작용을 할 수 있다. 객체 간의 관계 객체는 다른 객체와 관계를 맺을 수 있는데 집합 관계, 사용 관계, 상속 관계가 있다. 집합 관계 한 객체가 다른 객체의 구성 요소가 되는 것을 의미한다. 예를 들어 자동차 객체 = 엔진 객체 + 타이어 객체 + 핸들 객체..
2024.03.09 -
[Java] 참조 타입에 대해서
참조 타입은 객체의 주소를 참조하며 배열, 열거, 클래스, 인터페이스 타입이 있다. 메모리 영역 JVM이 실행되면 운영체제에서 메모리 영역(Runtime Data Area)을 할당 받는다. 메소드 영역 JVM이 프로그램을 실행하는데 필요한 클래스(.class)에 대한 메타데이터를 저장하는 영역이다. 이 영역에서 모든 스레드가 공유하고 클래스 파일에 있는 각각의 메소드, 변수, 상수 등에 대한 정보가 저장된다. 인스턴스 메소드는 객체마다 존재하지 않고 메소드 영역에서 저장되어 공유된다. 힙 영역 객체와 배열이 동적으로 할당되고 관리되는 영역이다. 힙 영역에서 생성된 객체와 배열은 JVM 스택 영역의 변수나 다른 객체의 필드에서 참조한다. 참조하는 변수나 필드가 없다면 의미 없는 객체가 되어 JVM은 Gar..
2024.03.08 -
[Java] 조건문과 반복문
소스코드가 기본적으로 위에서 아래로 실행되는데 실행 흐름을 제어할 수도 있다. 조건문과 반복문을 통해 흐름 제어가 가능하다. 조건문 if문 조건식 true, false에 따라 실행 흐름을 통제할 수 있다. 조건식 true이면 조건식 블록이 실행된다. else문이 있는 경우 조건식이 false일 때 else 블록이 실행된다. else문에 조건식을 추가하고 싶다면 else if문을 사용하면 된다. public class Example { public static void main (String[] args) { int score = 90; if (score >= 100) { System.out.println("만점"); } else if (score >= 90) { System.out.println("우수"..
2024.03.08 -
[Java] 연산에 대해
데이터를 처리하고 결과값을 산출하는 것을 연산이라 한다. 연산에서 사용되는 기호를 연산자라 하고 연산에 사용되는 데이터는 피연산자라고 한다. 이 모든 것을 통틀어서 연산식이라 한다. 연산 우선순위 증감 연산 ( ++, -- ) 단항 연산으로 변수의 값을 1 증가시키거나 1 감소시키는 연산을 의미한다. boolean 타입을 제외한 모든 기본 타입에 사용할 수 있다. 증감 연산자는 앞 또는 뒤에 피연산자가 올 수 있는데 연산 순서가 다르다. 피연산자가 앞에 있는 경우 연산 우선순위에 따라 연산을 수행하지만 피연산자가 뒤에 있는 경우 다른 연산자를 먼저 처리한 이후에 연산을 수행한다. 부호 연산 ( + , - ) 단항 연산으로 양수, 음수를 표시하는 부호 연산을 의미한다. boolean 타입과 char 타입을..
2024.03.07 -
[Java] 타입 변환
데이터 타입이 다른 데이터 타입으로 변환하는 것을 의미한다. 묵시적 타입 변환, 명시적 타입 변환 두 종류가 있다. 묵시적 타입 변환 런타임 때 자동으로 타입이 변환되는 것을 의미한다. 크기가 작은 데이터 타입이 크기가 큰 데이터 타입에 저장될 때 발생한다. byte < short < int < long < float < double 순이다. public class Example { public static void main (String[] args) { byte small = 1; int big = small; // 자동 형 변환 } } 묵시적 타입 변환 예외 char 타입이 2바이트인데 음수를 저장할 수 없으므로 char 타입에 byte 타입을 대입하는 경우 컴파일러 에러가 발생한다. public ..
2024.03.07 -
[Java] 데이터 타입
모든 변수에는 타입을 지정할 수 있는데 변수 타입에 따라 저장할 수 있는 리터럴 종류가 달라진다. 변수를 선언 시 결정된 타입은 사용 도중 변경할 수 없다. 원시타입 (primitive) 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입을 의미한다. 원시 타입은 바이트 단위로 메모리를 사용할 수 있는 크기를 갖는다. 정수 타입 정수 타입에는 메모리 사용 크기 오름차순으로 byte, char, short, int, long 총 5개의 타입이 있다. byte : 1 바이트 ( -128 ~ 127 ) char : 1 바이트 ( 0 ~ 65535 ) → 유니코드 short : 2 바이트 ( -32768 ~ 32767 ) int : 4 바이트 (-2147483648 ~ 2147483647 ) long : 8..
2024.03.07