Java/객체지향(12)
-
변수의 초기화
1. 변수의 초기화 - 변수 초기화: 변수를 처음 만들고 값을 저장하는 것 - 멤버변수와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다. - 멤버변수의 초기화 방법 : 명시적 초기화, 생성자, 초기화 블럭 2. 명시적 초기화 - 변수 선언과 동시에 초기화하는 것 3. 초기화 블럭 초기화 작업이 복잡하여 명시적 초기화만으로는 부족한 경우에 초기화 블럭을 사용한다 1) 클래스 초기화 블럭 - 클래스변수의 복잡한 초기화에 사용된다. - static { } - 클래스가 메모리에 처음 로딩될 때 단 한번만 수행됨 2) 인스턴스 초기화 블럭 - 인스턴스변수의 복잡한 초기화에 사용된다. - { } - 인스턴스를 생성할 때 마다 수행됨. - 생성자보다 인스턴스 초기화 블럭이 먼저 수행된다. 4..
2023.06.15 -
생성자
1. 생성자란? - 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. - 생성자의 조건 1) 생성자의 이름은 클래스의 이름과 같아야한다. 2) 생성자는 리턴 값이 없다. - Card c = new Card(); 1) 연산자 new에 의해 메모리에 Card클래스의 인스턴스가 생성된다 2) 생성자 Card()가 호출되어 수행된다 3) 연산자 new의 결과로 생성된 Card 인스턴스의 주소가 반환되어 참조변수 c에 저장된다 2. 기본생성자 - 컴파일러가 제공하는 기본 생성자 - 클래스이름() { } - 기본 생성자가 컴파일러에 의해서 추가되는 경우는 클래스에 정의된 생성자가 하나도 없을 때뿐이다. 3. 매개변수가 있는 생성자 - 생성자도 메서드처럼 매개변수를 선언하여 호출 시 값을..
2023.06.15 -
오버로딩
1. 오버로딩이란? - 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. - 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩' 간단히 '오버로딩'이라고 한다. 2. 오버로딩의 조건 - 메서드 이름이 같아야한다. - 매개변수의 개수 또는 타입이 같아야한다. (반환타입은 오버로딩을 구현하는 데 아무런 영향을 주지 못한다) 3. 오버로딩의 예 - 가장 대표적인 예시는 println()이다. - println의 매개변수로 어떤 타입을 넣느냐에 따라 호출되는 println메서드가 달라진다. 4. 오버로딩의 장점 - 같은 기능을 하는 메서드에 매..
2023.06.15 -
변수와 메서드
1. 선언위치에 따른 변수의 종류 1) 인스턴스변수 - 클래스 영역에서 선언되며 클래스의 인스턴스를 생성할 때 만들어진다. - 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우 인스턴스 변수로 선언한다. - 인스턴스, 객체, 참조 변수 2) 클래스변수 - 클래스 영역에서 선언되며 클래스를 생성할 때 만들어진다. - 모든 인스턴스가 공통된 저장공간(변수)을 공유하게 된다. - 인스턴스변수 앞에 static을 붙인다. - '클래스이름.클래스변수'와 같은 형식으로 사용 - 클래스, static, 공유 변수 3) 지역변수 - 메서드 내에서 선언되어 메서드 내에서만 사용 가능하다. - 클래스의 멤버변수는 기본값으로 자동 초기화되는 반면 지역변수는 자동초기화가 이루어지지 않음 2. 클래스변수와 인스턴스..
2023.06.15 -
클래스와 객체
1. 클래스와 객체 1) 클래스 - 클래스란 객체를 정의해 놓은 것, 객체의 설계도 또는 틀 - 클래스는 객체를 만들어 내기 위한 Type이다2) 객체 - 실제로 존재하는 것, 클래스에 정의된 대로 메모리에 올라가 구체적인 값이 들어가 있는 상태- 클래스를 한번 잘 만들어 놓으면 객체를 생성할 때마다 고민할 필요없이 클래스로부터 객체를 생성하기만 하면 된다.2. 객체와 인스턴스- 클래스로부터 객체를 만드는 과정을 '클래스의 인스턴스화'라고 하며, 어떤 클래스로부터 만들어진 객체를 '그 클래스의 인스턴스'라고 한다.- 클래스 ---(인스턴스화)---> 인스턴스(객체) - 객체와 인스턴스는 같은 의미이지만 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고있고,인스턴스는 어떤 클래스로부터 만들어진 것..
2023.03.13 -
객체지향언어
1. 객체지향언어의 역사 - 객체지향이론의 기본개념 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다 - 프로그램의 규모가 점점 커지고 사용자들의 요구가 빠르게 변화해가는 상황을 절차적 언어로 극복하기 어렵다는 한계로 객체지향 언어가 주류로 자리잡음 2. 객체지향언어 - 객체지향언어의 주요특징 1) 코드의 재사용성이 높다 (재사용성) 2) 코드의 관리가 용이하다 (유지보수) 3) 신뢰성이 높은 프로그래밍이 가능하게 한다 (중복코드제거) - 너무 객체지향개념에 얽매여 고민하기 보다 일단 프로그램을 기능적으로 완성하고 보다 객체지향적 코드로 개선하며 완성해나가는 것이 좋음
2023.03.13