목차
- Q1_클래스/객체 없이 프로그래밍을 한다면?
- Q2_클래스(생성자 정의, this 키워드)
- Q3_인스턴스
- Q1_클래스/객체 없이 프로그래밍을 한다면?
A. 클래스나 객체를 사용하지 않는 프로그래밍은 구조적인 한계를 가질 수 있습니다.
같은 또는 유사한 형태의 반복되는 코드들이 많아지면, 프로그램의 전체적인 가독성과 유지보수성이 크게 떨어질 수 있습니다. 이러한 문제는 특히 프로그램의 전체적인 가독성과 유지보수성이 크게 떨어질 수 있습니다.
객체 지향 프로그래밍에서 클래스와 객체를 사용하면 코드의 반복을 현저히 줄이고, 각 부분의 역할과 책임을 명확하게 분리할 수 있습니다. 이는 프로그램을 체계적이고 안정적으로 관리할 수 있게 도와주며, 확장성과 유연성 면에서도 이점을 제공하고 개발자는 재사용성과 유지보수가 용이한 코드를 작성할 수 있습니다.
- Q2_클래스(생성자 정의, this 키워드)
A. 클래스(Class)는 객체의 템플릿 또는 설계도와 같은 역할을 하며, 객체의 속성(Fields)과 기능(Methods)을 정의합니다.
1) 필드(Field) 정의:
클래스 내에 선언된 변수들로, 인스턴스의 상태를 나타냅니다.
각 필드에는 데이터 타입과 변수명이 지정됩니다.
2) 생성자(Constructor) 정의:
클래스의 인스턴스가 생성될 때 자동으로 호출되는 특별한 메소드입니다.
생성자는 값을 반환하지 않으며, 주 목적은 인스턴스의 초기 상태를 설정하는 것입니다.
new 연산자와 함께 사용되어, 메모리에 인스턴스를 생성하고 참조값을 반환합니다.
생성자를 명시적으로 정의하지 않으면, Java 컴파일러는 기본 생성자를 자동으로 제공합니다.
- this 키워드:
this는 현재 인스턴스를 참조하는 키워드입니다.
클래스 내부에서 필드와 로컬 변수 또는 매개변수 이름이 충돌할 때, 필드를 구분하기 위해 사용됩니다.
메소드 내에서 this를 사용하지 않아도 필드에 접근할 수 있으나 this를 사용함으로써 명확성을 높일 수 있습니다.
3) 메소드(Method) 정의:
인스턴스의 행동 또는 기능을 정의하는 함수입니다.
static 키워드 없이 정의되며, 클래스의 인스턴스에 속한 메소드를 의미합니다.
메소드는 값을 반환하거나 특정 작업을 수행할 수 있습니다.
- Q3_인스턴스
A. 객체(Object) / 인스턴스(Instance)는 클래스에 정의된 속성(Fields)과 기능(Methods)을 실제로 구현한 실체입니다.
1) 클래스로부터 인스턴스 생성:
new 연산자를 사용하여 클래스의 인스턴스를 생성합니다. 이 과정에서 클래스의 생성자(Constructor)가 호출되어 인스턴스의 초기 상태를 설정합니다.
2) 인스턴스 필드에 대한 접근:
생성된 인스턴스의 필드에 접근하여 그 값을 읽거나 변경할 수 있습니다.
필드 접근은 점(.) 연산자를 사용하여 이루어집니다.
3) 인스턴스 메소드 호출:
인스턴스의 메소드를 호출하여 특정 작업을 수행하거나 값을 반환받을 수 있습니다.
메소드 호출 또한 점(.) 연산자를 사용하여 이루어집니다.
- 로컬 변수와 인스턴스의 범위:
클래스 내부에서 선언된 인스턴스는 해당 클래스 또는 메소드 내에서만 접근 가능합니다. main 메소드 내에서 생성된 인스턴스는 메소드 외부에서 접근할 수 없습니다.
'Java' 카테고리의 다른 글
[Java] 일반 변수와 참조 변수 (1) | 2024.04.06 |
---|---|
[Java] Scanner 클래스와 버퍼 (1) | 2024.04.04 |
[Java] 재귀 메소드 (1) | 2024.04.03 |
[Java] 정규 표현식 (1) | 2024.03.23 |
[Java] JVM, JRE, JDK란? (0) | 2024.03.15 |