클래스 개념
클래스는 객체 지향 프로그래밍 (Object Oriented Programming, OOP)의 핵심 개념중 하나이다. 클래스는 객체의 특성과 기능을 정의하는 '블루프린트' 또는 '템플릿' 으로 생각할 수 있다.
- 클래스 (Class) : 클래스는 변수(속성)와 메서드(행동)로 구성된 코드 블록이다. 클래스는 객체를 생성하기 위한 설계도나 틀이라고 생각할 수 있다. 예를 들어, '자동차'라는 클래스를 만든다고 가정해 보면, 이 클래스는 '색상', '모델' 등의 변수와 '가속', '정지' 등의 메서드를 가질 수 있다.
- 객체 (Object) : 객체는 클래스를 기반으로 메모리에 할당된 실체를 의마한다. 클래스를 통해 여러 객체를 생성할 수 있으며, 각 객체는 독립적인 상태를 가질 수 있따. 위의 예에서 '자동차' 클래스를 사용하여 'myCar' 라는 객체를 생성할 수 있다. 'myCar'는 '색상', '브랜드', '모델' 등의 상태를 가지고, '가속','정지' 등의 동작을 수행할 수 있다.
- 인스턴스 (Instance) : 클래스에 의해 생성된 객체를 해당 클래스의 인스턴스라고 한다. 인스턴스는 메모리에 할당되어 실제로 사용할 수 있는 상태를 의미한다.
- 메서드 (Method) : 클래스 내부에 정의된 함수를 메서드라고 한다. 이는 해당 클래스의 객체가 수행할 수 있는 행동을 정의한다.
- 생성자 (Constructor) : 객체가 생성될 때 자동으로 호출되는 특별한 메서드를 생성자라고 한다. 생성자의 이름은 클래스의 이름과 동일하며, 주로 객체의 초기화 작업을 담당한다.
- 상속 (Inheritance) : java에서는 한 클래스가 다른 클래스의 속성과 메서드를 상속 받아 사용할 수 있다. 이를 통해 코드의 재사용성을 높이고 코드의 구조를 개선할 수 있다.
클래스의 정의
java에서 클래스를 정의하는 기본 구조는 다음과 같다.
[access_modifier] class ClassName {
// 멤버 변수
type variableName;
// 생성자
ClassName(parameterType parameterName) {
// constructor body
}
// 메소드
[access_modifier] returnType methodName(parameterType parameterName) {
// method body
}
}
각 부분에 대한 설명은 다음과 같다.
- access_modifier : 클래스, 변수 또는 메서드에 대한 접근권한을 설장한다. `public`, `private`, `protected` 또는 아무것도 없으면 기본값 default 이다.
- class : 클래스를 정의하는 키워드이다.
- ClassName : 클래스의 이름이먀, 대문자로 시작하는 관례를 다른다.
- type : 변수의 데이터 타입을 나타낸다.
- variableName : 변수의 이름
- returnType : 메서드가 반환하는 값의 타입을 나타내며, 반환 값이 없는 경우에는 'void'를 사용한다
- methodName : 메서드 이름
- parameterType and parameterName : 메서드가 받는 입력 인자와 타입과이름이다.
이에 대한 예제는 다음과 같다.
public class Person {
// 멤버 변수
String name;
int age;
// 생성자
Person(String name, int age) {
this.name = name;
this.age = age;
}
// 메소드
public void introduce() {
System.out.println("Hello, my name is " + name + " and I'm " + age + " years old.");
}
}
이 클래스를 이용하여 Person 객체를 생성하고, 그 객체의 introduce 메서드를 호출하면 다음과 같이 출력된다.
Person person = new Person("John", 25);
person.introduce(); // Outputs: Hello, my name is John and I'm 25 years old.
'Java > JAVA 100 문제 풀이' 카테고리의 다른 글
자바 part.3 문제풀이 - 문자열을 숫자로 변환하는방법 (0) | 2023.07.23 |
---|---|
자바 part.3 문제풀이 - 클래스 속성, 동작 (0) | 2023.07.23 |
자바 part.3 문제풀이 - TwoReturn2 (0) | 2023.07.20 |
자바 part.3 문제풀이 - TwoReturn1 (0) | 2023.07.20 |
자바 part.3 문제풀이 - Call by reference2 (0) | 2023.07.10 |