본문 바로가기

Java29

변수의 초기화 1. 변수의 초기화? 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다. 변수의 초기화는 경우에 따라 선택적이거나 필수적이기도 하지만, 가능하면 선언과 동시에 초기화하는 것이 좋다. 그 이유는 멤버변수는 초기화하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지지만, 지역변수는 사용하기 전에 반드시 초기화를 해야 하기 때문이다. 멤버변수(클래스변수, 인스턴스변수)와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다. 2. 멤버변수의 초기화 방법 1) 명시적 초기화 2) 생성자 3) 초기화 블럭 -인스턴스 초기화 블럭 : 인스턴스변수를 초기화하는 데 사용. -클래스 초기화 블럭: 인스턴스변수를 초기화 하는데 사용. 2.1 명시적 초기화(explicit i.. 2021. 3. 23.
생성자(Constructor) 1. 생성자란? 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드다. 따라서 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다. 인스턴스 초기화: 인스턴스변수들을 초기화하는 것을 의미. 생성자 또한 클래스 내에 선언되며, 구조도 메소드와 유사하지만 리턴 값이 없다는 것이 메소드와 다른 점이다. 그렇다고 해서 생성자 앞에 리턴 값이 없을 뜻하는 키워드 void를 사용하지는 않는다. 다만, 아무것도 적지 않는다. 2. 생성자의 조건 1) 생성자명은 클래스의 이름과 동일해야 한다. 2) 생성자는 리턴 값이 없다. 생성자도 메소드이기 때문에 리턴 값이 없다는 의미의 void를 붙여야 하지만, 모든 생성자가 리턴 값이 없으므로 void를 생략할 수 있게 된 것이.. 2021. 3. 23.
클래스 메소드와 인스턴스 메소드 1. 클래스 메소드: static이 붙어 있는 메소드 클래스 메소드도 클래스변수처럼 객체를 생성하지 않고도 호출이 가능하다. 1) 형태: 클래스명.메소드명(매개변수) 2) 사용시기와 정의 :: 메소드 중에서 인스턴스와 관계없는(인스턴스 변수나 인스턴스 메소드를 사용하지 않는) 메소드를 클래스 메소드(static메소드)로 정의한다. 그렇다고 인스턴스 변수를 사용하지 않는다고 해서 반드시 클래스 메소드로 정의하는 것은 아니지만 특별한 이유가 없는 한 그렇게 하는 것이 일반적이다. **클래스 영역에 선언된 변수를 멤버변수라고 하는데 이중 static이 붙은 것은 클래스변수(static변수), static이 붙지 않은 것은 인스턴스변수라고 한다. 멤버변수는 인스턴스 변수와 static 변수를 모두 통칭하는 말이.. 2021. 3. 19.
기본형 매개변수, 참조형 매개변수 자바에서는 메소드를 호출할 때 매개변수로 지정한 값을 메소드의 매개변수에 복사해 넘겨준다. 매개변수의 타입이 기본형일 땐 값이 복사되지만, 참조형을 땐 인스턴스의 주소가 복사된다. 기본형 매개변수: 변수의 값을 읽기만 가능 참조형 매개변수: 변수의 값을 읽고 변경 가능 기본형 매개변수 예제) class Data { int x; } class PrimitiveParamEx { public static void main(String[] args) { Data d = new Data(); d.x = 10; System.out.println("main() : x = " + d.x); change(d.x); System.out.println("After change(d.x)"); System.out.println.. 2021. 3. 19.
JVM의 메모리 구조 응용프로그램이 실행되면 JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리하게 된다. 특히 3가지 주요 영역이 있다. 1. 메소드 영역(method area) :: 프로그램 실행중 어떠한 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(.class)을 읽어서 분석하고 클래스에 대한 정보를 이곳에 저장한다. 이때, 해당 클래스의 클래스 변수도 이 영역에 함께 생성된다. 2. 힙(heap) :: 인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성된다. 즉, 인스턴스 변수(iv)들이 생성되는 공간. 3. 호출스택(call stack 또는 execution stack) :: 호출스택은 메소드의 작.. 2021. 3. 19.
객체지향 1. 객체지향언어 1.1 객체지향언어의 특성 ① 코드의 재사용성이 높다. -새로운 코드를 작성할 때 기존 코드를 이용해 쉽게 작성할 수 있다. ② 코드의 관리가 용이하다. -코드간의 관계를 이용해서 작은 노력으로 쉽게 코드를 변경할 수 있다. ③ 신뢰성이 높은 프로그래밍을 가능하게 한다. -제어자와 메소드를 이용하여 데이터를 보호하고 올바른 값을 유지할 수 있도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 2. 클래스와 객체 2.1 클래스와 객체의 정의와 용도 클래스의 정의: 객체를 정의해 놓은 것 클래스의 용도: 객체를 생성하는 것 객체의 정의: 실제로 존재하는 것으로 사물 또는 개념 객체의 용도: 객체의 속성과 기능에 따른 용도 2.2 객체와 인스턴스 클래스가 설계.. 2021. 3. 3.