본문 바로가기
전공 수업/객체 지향 프로그래밍(Java)

[3주 차] - 변수(Variable)와 상수(Constant), 문자와 문자열(String)

by TwoJun 2022. 9. 21.

    과목명 : 객체지향 프로그래밍(Object oriented programming)

수업일자 : 2022년 09월 14일 (수)

 

 

 

1. 변수(Variable)

1-1. 정의

- 프로그래밍에서 변수(Variable)란, 특정한 데이터를 저장하기 위해 프로그램으로부터 할당받은 메모리 공간을 의미합니다.

 

 

 

1-2. 변수의 타입(Data type of variable)

문자형  char
숫자형 정수  byte, short, int, long
실수 float, double
논리형 Boolean true, false

(1) 기본형 타입(Primitive type)

- 8개가 존재하며 Boolean, char, byte, short, int, long, float, double 타입의 기본형 타입이 존재합니다.

- 변수에는 실제 데이터를 저장하게 됩니다.

 

(2) 참조형 타입(Reference type)

- 기본형을 제외한 나머지(String, System 등) 참조형 타입이 존재합니다

- 생성된 객체(클래스의 인스턴스)의 주소값을 저장합니다.

 

 

 

 

1-3. 기본형 타입(Primitive type)

(1) 논리형 - 논리형 데이터 값으로 true, false중 하나를 값으로 가지며 조건식과 여러 가지 논리적 연산에 사용됩니다.

(2) 문자형 - 문자를 저장하는데 사용되며 변수 당, 하나의 문자만을 저장할 수 있습니다.

(3) 정수형 - 정수 데이터를 저장하는데 주로 사용되고 int와 long 타입을 많이 사용합니다.

(4) 실수형 - 실수 데이터를 저장하는데 주로 사용되고 float와 double 타입이 존재합니다.

 

 

 

 

1-4. 기본형 타입 변수의 크기

논리형 boolean 1 byte
문자형, 정수형 char, short 2 byte
정수형, 실수형

int, float 4 byte
long, double 8 byte

 

 

 

 

1-5. 변수의 선언 방법

(1) 선언 

- 문법 : 데이터 타입 변수명;

- 특징 : 특정 타입의 데이터를 저장하기 위해 메모리 공간을 할당하는 것을 의미합니다.

// 변수의 선언
int age;
age = 25;

 

(2) 초기화(Initiallization)

- 문법 : 데이터 타입 변수명 = 할당할 데이터;

- 특징 : 특정 타입의 데이터 저장을 위해 변수를 선언하고, 해당 변수에 초기값을 할당하는 것을 의미합니다.

// 변수의 초기화 
int age = 25;

 

 

 

 

 

2. 상수(Constant)

2-1. 정의

- 프로그래밍에서 상수(Constant)란, 변수와 동일하게 데이터를 담는 저장 공간이긴 하나 변수와 달리 한 번 저장할 값이 정해지면 이후에는 해당 값을 변경할 수 없다는 것이 특징입니다.

 

- Java에선 상수를 정의할 때 데이터 타입 앞에 final 키워드를 사용하여 상수를 선언할 수 있습니다.

 

- 문법 : final 데이터 타입 변수명 = 할당할 데이터;

final float PI = 3.141592f;

 

 

 

 

3. Java 명명 규칙(Naming convention)

- Java에선 변수, 상수, 클래스, 메서드 등의 이름을 지을 때, 가독성을 높이기 위한 목적으로 개발자들이 관습적으로 사용하는 명명 규칙(Naming convention)에 대해 알아보도록 하겠습니다.

 

(1) 대소문자가 구분되며 길이에 제한은 없다.

- 논리형 데이터 타입인 true, false에 대해서 True와 False는 서로 다른 것으로 간주

 

(2) 예약어(Reserved word)를 사용할 수 없다.

 

(3) 변수명, 상수명, 클래스명, 메서드명 등을 지을 때 숫자로 시작하지 않는다.

 

(4) 특수 문자의 경우 '_', '$'만을 허용한다.

 

 

 

- 아래부터는 개발자들이 관례적으로 사용하는 명명 규칙에 대한 내용입니다.

 

(1) 클래스명의 첫 글자는 항상 대문자로 하며, 여러 단어로 조합된 단어의 경우 첫 글자는 대문자, 이후 뜻이 있는 글자들의 시작 문자는 대문자로 작성하는 파스칼 표기법(Pascal case)을 사용한다.

// 파스칼 표기법
public class HelloWorld

 

 

(2) 변수명, 메서드명의 경우 첫 글자는 항상 소문자로 하며, 여러 단어로 조합된 단어의 경우 첫 글자는 소문자, 이후 뜻이 있는 글자들의 시작 문자는 대문자로 작성하는 카멜 표기법(Camel case)을 사용한다.

// 카멜 표기법
int getMathScore = 100;
public int getMathScore(int getMathScore) { return getMathScore; }

 

 

(3) 상수명의 경우 모두 대문자로 작성하며, 여러 단어로 조합될 경우 뜻이 구분될 때마다 '_'로 구분한다.

// 상수 표기법
final float PI = 3.141592f;
final int MAX_SCORE = 100;

 

 

 

 

4. 문자(Character)와 문자열(String)

4-1. 문자(Character)

- 문자 한 글자를 나타내는 변수의 데이터 타입으로 char를 사용합니다.

 

- 문자형 자료형의 경우 데이터를 ''(작은 따옴표) 안에 넣어서 표현합니다.

 

- 문법 : char 변수명 = '문자';

// 문자형 자료형
char ch1 = 'a';
char ch2 = 'B';

 

 

 

4-2. 문자열(String)

- 문자열 자료형의 경우 위에서 설명한 8가지 기본형 타입의 자료형에 해당되지 않습니다.

 

- 문자열 자료형의 경우 값을 ""(큰 따옴표)에 넣어서 표현합니다.

 

- String이라는 클래스를 이용하여 객체를 생성하는 방법으로 문자열을 표현할 수 있으나, 문자열 자료형의 경우 많이 사용되는 클래스로써 일반 변수와 동일하게 선언 및 초기화가 가능하도록 설계되어 있습니다. 다만, 엄밀히 따지면 String이라는 클래스로부터 객체를 생성하여 사용하는 것이며 객체를 생성함에 따라 사용된 참조변수는 생성된 객체의 주소를 가지고 있다는 점을 알아주셔야 합니다.

 

- 문법 : String 변수명 = "문자열";

- 문법 : String 변수명 = new String("문자열");

// String 클래스로부터 객체를 생성하여 문자열을 표현하는 방법
String keyWord = new Stirng("Java");

// 클래스의 객체 생성을 이용하지 않는 방법
String keyWord2 = "java";

 

 

 

 

5. 실습 내용

5-1. 소스 코드

// DecimalFormat 객체를 생성하기 위한 import문
import java.text.DecimalFormat;

public class VariableConstant {

    public static void main(String[] args) {

        // Hello java 출력하기
        // System.out.println("Hello java world!");



        // 원주율 PI, 지구의 반지름 변수 earthHalfRadius
        final float PI = 3.14f;
        int earthHalfRadius = 6000;

        // 지구의 자전 속도 = 원둘레 / 시간(시속)
        float earthVelocity = (2 * PI * earthHalfRadius) / 24;

        // 지구의 자전 속도 = 원둘레 / 시간(초속)
        float earthVelocity2 = (2 * PI * earthHalfRadius) / (24 * 60 * 60);

        // 형식화된 출력 printf()
        System.out.printf("지구의 자전 속도(시속)는 %.2f km/h입니다.%n", earthVelocity);
        System.out.printf("지구의 자전 속도(초속)는 %.0f m/s입니다.%n", (earthVelocity2) * 1000);




        // tower of hanoi

        // import문을 통해 생성된 클래스로부터 object 생성
        DecimalFormat year = new DecimalFormat("###,###");

        // 걸리는 count 계산
        double count = Math.pow(2, 64);

        System.out.println(count);   // 1.8446744073709552E19

        // 계산된 카운트로부터 걸리는 년도(Years) 계산
        double yearNew = count / (365 * 24 * 3600);

        // 생성된 객체 접근하기 year.format()
        System.out.println("총 걸리는 시간은 " + year.format(yearNew) + "년입니다.");


    }

}

 

 

5-2. 해당 프로그램에 대한 실행 결과

프로그램 실행 화면

 

 

 

 

- 학부에서 수강했던 전공 수업 내용을 정리하는 포스팅입니다.

- 내용 중에서 오타 또는 잘못된 내용이 있을 시 지적해 주시기 바랍니다.

댓글