과목명 : 객체지향 프로그래밍(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. 해당 프로그램에 대한 실행 결과
- 학부에서 수강했던 전공 수업 내용을 정리하는 포스팅입니다.
- 내용 중에서 오타 또는 잘못된 내용이 있을 시 지적해 주시기 바랍니다.
'전공 수업 > 객체 지향 프로그래밍(Java)' 카테고리의 다른 글
[6주 차] - 배열(Array)의 선언과 생성, 초기화, 다차원 배열 (2) | 2022.10.07 |
---|---|
[5주 차] - 조건문(if, if-else, else-if, switch 문), 난수를 생성하는 Math.random() 메서드 (0) | 2022.09.29 |
[4주 차] - 연산자(Operator)와 반복문(for, while, do-while) (2) | 2022.09.26 |
[2주 차] - Eclipse 개발 환경 설정, 간단한 프로그램 작성하기 (0) | 2022.09.15 |
[1주 차] - 수업 개요 (2) | 2022.08.31 |
댓글