자바 안드로이드 앱개발 강좌, 변수와 함수

안드로이드 앱 개발에서 자바는 가장 널리 사용되는 프로그래밍 언어 중 하나입니다.
본 강좌에서는 자바의 기본 개념 중 변수와 함수에 대해 자세히 알아보겠습니다.
처음 프로그래밍을 배우는 사람들은 변수와 함수의 기초를 이해하는 것이 필수적이며,
나중에 복잡한 로직을 구현하는 데 큰 도움이 됩니다.

1. 변수(Variables)

변수가 무엇인지 이해하기 위해서는 먼저 컴퓨터 프로그래밍의 기초를 이해해야 합니다.
변수가 간단히 말해 데이터를 저장하는 이름이 붙은 공간입니다. 이를 통해 우리는
데이터를 쉽게 접근하고 조작할 수 있습니다. 자바에서는 다양한 타입의 변수를 사용할 수 있습니다.

1.1 변수의 종류

자바에서 변수를 선언할 때는 변수의 타입(자료형)을 지정해야 합니다.
여기에는 기본 데이터 타입(Primitive data types)과 참조 데이터 타입(Reference data types)이 있습니다.

1.1.1 기본 데이터 타입

  • boolean: true 또는 false를 저장. 예: boolean isActive = true;
  • char: 단일 문자. 예: char grade = 'A';
  • int: 정수. 예: int age = 25;
  • double: 배정밀도 실수. 예: double price = 19.99;

1.1.2 참조 데이터 타입

참조 데이터 타입은 객체를 참조하는 변수입니다. 예를 들어, 클래스의 인스턴스나 배열이
있습니다. 다음은 String 데이터 타입의 예시입니다.

String name = "홍길동";

1.2 변수 선언 및 초기화

변수를 사용하기 위해서는 먼저 선언하고 초기화해야 합니다. 변수를 선언할 때는
타입과 변수 이름을 포함하여 다음과 같이 작성합니다.

int number; // 변수 선언
number = 10; // 변수 초기화

1.3 변수의 범위(Scope)

변수의 범위란 변수가 접근할 수 있는 영역을 말합니다. 자바에서는 변수의 범위가
선언된 위치에 따라 달라지며, 주로 다음과 같은 범위 종류가 있습니다.

  • 전역 변수: 클래스 내부에서 선언된 변수는 클래스의 모든 메서드에서 접근 가능합니다.
  • 지역 변수: 메서드 내에서 선언된 변수는 해당 메서드 내부에서만 사용 가능합니다.

2. 함수(Methods)

함수는 특정 작업을 수행하는 코드의 집합입니다. 자바에서는 함수는 보통 메서드(Method)라고 불리며,
클래스의 구성 요소로 포함됩니다. 메서드는 호출될 때 특정 작업을 수행하고,
필요에 따라 값을 반환(return)할 수 있습니다.

2.1 메서드 선언

메서드는 다음과 같은 형식으로 선언됩니다.

반환타입 메서드이름(매개변수들) {
    // 메서드 내용
}

2.2 메서드의 매개변수와 반환값

메서드는 매개변수를 통해 외부에서 데이터를 전달받을 수 있으며,
반환값을 통해 결과를 반환할 수 있습니다. 예를 들어, 두 개의 정수를 더하는 메서드는 다음과 같습니다.

public int add(int a, int b) {
    return a + b;
}

2.3 메서드 오버로딩(Method Overloading)

자바에서는 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의할 수 있습니다.
이를 메서드 오버로딩이라고 합니다. 예를 들어, 아래와 같이 사용할 수 있습니다.

public int multiply(int a, int b) {
    return a * b;
}

public double multiply(double a, double b) {
    return a * b;
}

3. 예제: 안드로이드 앱에서 변수와 함수 사용하기

이제 안드로이드 앱에서 변수를 선언하고 메서드를 활용하는 방법에 대한
간단한 예제를 작성해보겠습니다. 아래는 사용자로부터 두 숫자를 입력받아
더한 값을 표시하는 앱의 간단한 코드입니다.

3.1 MainActivity.java

package com.example.myapp;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private EditText number1;
    private EditText number2;
    private TextView result;
    private Button addButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        number1 = findViewById(R.id.editTextNumber1);
        number2 = findViewById(R.id.editTextNumber2);
        result = findViewById(R.id.textViewResult);
        addButton = findViewById(R.id.buttonAdd);

        addButton.setOnClickListener(v -> {
            int num1 = Integer.parseInt(number1.getText().toString());
            int num2 = Integer.parseInt(number2.getText().toString());
            int sum = add(num1, num2);
            result.setText("결과: " + sum);
        });
    }

    private int add(int a, int b) {
        return a + b;
    }
}

3.2 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editTextNumber1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="첫 번째 숫자"
        android:inputType="number" />

    <EditText
        android:id="@+id/editTextNumber2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="두 번째 숫자"
        android:inputType="number" />

    <Button
        android:id="@+id/buttonAdd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="더하기" />

    <TextView
        android:id="@+id/textViewResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="결과: " />

</LinearLayout>

4. 정리

본 강좌에서는 자바의 변수와 함수에 대해 자세히 알아보았습니다.
변수를 통해 데이터를 저장하고, 함수를 이용해 특정 작업을 수행하며,
코드를 모듈화하는 방법을 배웠습니다. 이러한 기초 지식은 훗날 복잡한 앱을 개발하는 데
큰 도움이 될 것입니다. 여러분의 안드로이드 앱 개발 여정에 이 강좌가 도움이 되기를 바랍니다.