안녕하세요! 이번 강좌에서는 자바 언어를 활용한 안드로이드 앱 개발의 핵심 개념 중 하나인 ‘클래스’와 ‘생성자’에 대해 깊이 있게 알아보겠습니다. 자바는 객체 지향 프로그래밍 언어로, 클래스와 객체는 자바에서 매우 중요한 역할을 합니다. 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다.
1. 클래스란 무엇인가?
클래스는 객체 지향 프로그래밍의 기본 단위로, 객체를 생성하기 위한 청print입니다. 클래스는 데이터(속성)와 메소드(기능)를 하나로 묶어 객체를 정의합니다. 예를 들어, ‘자동차’라는 클래스를 만든다고 가정해봅시다. 이 클래스는 자동차의 속성(예: 브랜드, 색상, 모델)과 기능(예: 가속, 감속, 주차)을 포함할 수 있습니다.
1.1. 클래스의 기본 구조
자바에서 클래스는 다음과 같은 구조를 가지고 있습니다:
public class Car {
// 속성
String brand;
String color;
int model;
// 생성자
public Car(String brand, String color, int model) {
this.brand = brand;
this.color = color;
this.model = model;
}
// 메소드
public void accelerate() {
System.out.println("차가 가속합니다.");
}
}
2. 생성자란 무엇인가?
생성자는 객체가 생성될 때 호출되는 특별한 메소드입니다. 생성자의 주된 역할은 객체의 초기화를 담당하는 것입니다. 생성자는 클래스의 이름과 동일하며, 리턴 타입이 없습니다.
2.1. 생성자의 종류
자바에서 생성자는 크게 두 가지로 구분됩니다:
- 기본 생성자 (Default Constructor): 인자가 없는 생성자입니다. 클래스의 속성을 기본값으로 초기화합니다.
- 매개변수 생성자 (Parameterized Constructor): 매개변수를 받아서 객체의 속성을 초기화합니다.
2.2. 생성자의 예시
기본 생성자와 매개변수 생성자를 예시로 보겠습니다:
public class Car {
String brand;
String color;
int model;
// 기본 생성자
public Car() {
this.brand = "미정";
this.color = "미정";
this.model = 0;
}
// 매개변수 생성자
public Car(String brand, String color, int model) {
this.brand = brand;
this.color = color;
this.model = model;
}
}
3. 클래스와 생성자를 활용한 안드로이드 앱 개발
이제 클래스와 생성자의 개념을 바탕으로 간단한 안드로이드 애플리케이션을 만들어보겠습니다. 이 애플리케이션은 자동차의 정보를 입력하고 출력하는 기능을 가집니다.
3.1. 안드로이드 스튜디오 프로젝트 생성
안드로이드 스튜디오를 실행하고 새로운 프로젝트를 생성합니다. ‘Empty Activity’를 선택하고 ‘MainActivity’라는 이름으로 설정합니다.
3.2. MainActivity.java 코드 예제
MainActivity.java 파일에 다음 코드를 추가하여 자동차 정보를 입력받고 출력하는 앱을 만듭니다:
package com.example.carapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private EditText inputBrand, inputColor, inputModel;
private TextView outputText;
private Button submitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputBrand = findViewById(R.id.inputBrand);
inputColor = findViewById(R.id.inputColor);
inputModel = findViewById(R.id.inputModel);
outputText = findViewById(R.id.outputText);
submitButton = findViewById(R.id.submitButton);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String brand = inputBrand.getText().toString();
String color = inputColor.getText().toString();
int model = Integer.parseInt(inputModel.getText().toString());
Car car = new Car(brand, color, model);
outputText.setText("자동차 정보:\n브랜드: " + car.brand + "\n색상: " + car.color + "\n모델: " + car.model);
}
});
}
}
3.3. activity_main.xml 레이아웃 설정
activity_main.xml 파일에 다음 UI 요소를 추가합니다:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/inputBrand"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="브랜드 입력"/>
<EditText
android:id="@+id/inputColor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="색상 입력"/>
<EditText
android:id="@+id/inputModel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="모델 입력"/>
<Button
android:id="@+id/submitButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="제출"/>
<TextView
android:id="@+id/outputText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="20dp"/>
</LinearLayout>
4. 클래스와 생성자의 활용
위의 예제를 통해 클래스와 매개변수 생성자의 작동 방식을 이해할 수 있습니다. 사용자가 자동차의 브랜드, 색상, 모델을 입력하면, 새로운 Car 객체가 생성되고, 해당 정보가 텍스트 뷰에 출력됩니다. 객체 지향 프로그래밍의 장점은 이러한 방식으로 코드를 재사용하고, 객체를 통해 데이터와 기능을 효율적으로 관리할 수 있다는 점입니다.
5. 결론
이번 강좌에서는 자바에서 클래스와 생성자의 개념을 깊이 있게 살펴보았습니다. 클래스와 생성자는 객체 지향 프로그래밍의 중추적인 역할을 하며, 안드로이드 앱 개발에 필수적인 요소입니다. 향후 강좌에서는 더욱 다양한 기능과 예제들을 다룰 예정이니, 기대해 주시기 바랍니다. Happy Coding!