ggoggo

2. 출력과 변수(3) 본문

3-2/JAVA

2. 출력과 변수(3)

chchae01 2022. 9. 16. 13:22

JAVA 출력 메소드

  • 화면에 내용 출력

- System.out.println() : 괄호 안의 내용을 출력한 후 한 행을 띄움

- System.out.print() : 괄호 안의 니용을 출력한 후 한 행을 띄우지 않고 유지

- System.out.printf() : 서식을 지정해서 출력

System.out.printf()의 서식

 

JAVA 변수

  • 변수

- 변수는 다양한 정보를 저장할 수 있는 메모리를 참조하는 이름

- 자바 컴파일러가 명시적으로 자료형을 선언한 변수만 처리할 수 있음.

==> '명시적' : 선언하는 변수가 정수인지 실수인지 자료형을 정확히 지정해야 한다는 의미

 

  • 변수 선언과 사용

- 변수에 값을 대입하는 방법

int score; // 변수 선언
score = 90; //값 저장

int score = 90; //변수를 선언함과 동시에 초기값 저장

 

// 실수형 변수인 float에 값을 대입할 때는 숫자의 맨 뒤에 float를 의미하는 'f'를 붙여야함.
int a = 100;
float b = 123.45f;

// a,b가 모두 정수형일때
int a = 100, b = 200;

- 다양한 형태의 변수 선언 방법

int a;
int a = 1;
int a,b,c;
int a,b,c = 1;
int a=1, b=2, c=3;

- 클래스를 변수로 선언

Product product; // Product 클래스 타입의 참조 변수인 product
Product product = null;

 

  • 대입 연산자와 변수의 위치

대입 연산자(=)를 사용하면 오른쪽의 것이 왼쪽에 대입됨

 

  •  변수 이름 규칙

(1) 변수 이름의 길이에는 제한이 없다.

(2) 반드시 문자나 언더바(_), 달러 기호($)로 시작해야 한다.

(3) 자바의 연산자(+,-,*,/)는 변수의 이름에 넣을 수 없다.

(4) 대소문자를 구분한다.

(5) 첫 글자에 숫자가 올 수 없고, 이름 사이에 빈칸을 넣어서도 안된다.

(6) 자바의 키워드는 변수 이름으로 사용할 수 없다.

 

  •  변수 사용 범위

 변수는 중괄호 블럭{}내에서 선언되고 사용됨

 

  •  변수의 유형

(1) 인스턴스 변수 : 자바 객체의 개별적인 값을 저장하는데 사용하는 변수

(2) 클래스 변수 : static 한정자(Modifier)를 가진 멤버 변수로 '클래스 이름.변수 이름'의 형태로 접근

(3) 지역 변수 : 메서드 안에 선언하는 변수로, 해당 메서드 안에서만 접근할 수 있는 변수

(4) 파라미터 : 메서드의 인자로 전달하는 변수를 말하며, 기본적으로는 지역 변수에 준해서 사용

 

  • 대입 연산자(=)의 처리 순서

- 대입연산자(=)는 맨 뒤부터 처리딤

a = b = c = d = 100;

// 같은 상황임
d = 100;
c = d;
b = c;
a = b;

- 자신의 값에 계산 결과를 대입하는 방식

내부적으로 먼저 계산 후 계산 결과를 변수에 대입

JAVA 데이터형(자료형)

  • 기본형(Primitive Type)

- 논리형(Boolean Type) : boolean

- 숫자형(Numeric Type) : byte, char, short, int, long, float, double

 

  • 참조형(Reference Type)

- 참조형은 값이 저장된 곳의 주소를 저장하는 공간으로 객체의 주소를 저장함

- Java에서 기본형 8가지를 제외하고는 모두 참조형

- java.lang.Object를 상속받음

- 클래스형(Class Type), 인터페이스형(Interface Type), 배열형(Array Type)등이 있음

 

기본형

- 정수, 실수, 문자, 논리 리터럴(소스 코드 내에서 직접 입력된 변수의 초기값)을 직접 저장하는 타입

- 메모리의 최소 기억단위인 bit가 모여 byte 형성

 

  • 비트(bit)

- 0(OFF, false)과 1(ON,true)만 존재

- n개의 전기 스위치로 표현할 수 있는 가지 수 = 2^n

   ex. 3비트로 표현할 수 있는 가짓수는 2^3=8개

- 실제로 참을1, 거짓을 0으로 취급하면 1바이트(=8비트)가 아닌 1비트만으로도 표현이 가능하지만, Java는 최소 접근단위가 1바이트이므로 1바이트를 사용함

 

  • 진수

- 2진수 변환

- 16진수를 2진수로 변환

 

  • 바이트(byte)

- JAVA에서 가장 많이 사용되는 단위로 1바이트는 8개의 비트가 합쳐진 것

 

  • 문자형

- 한 글자를 표현하는 문자형 - 문자 또는 기호 하나를 저장하는 형식

- char형에는 문자 뿐만 아니라 값의 범위에 해당하는 정수를 대입할 수 있음

- char형을 2바이트 크기의 정수형으로 취급할 수 있음

- 아스키코드와 유니코드

 * 아스키코드(ASCII) : 컴퓨터에서 표현하는 문자(특히 키보드에 있는 영문, 기호, 숫자 등)를 0~127에 대응시킨 코드

 

  • 문자열

- 여러 글자를 표현하는 문자열 = 문자형의 집합

- char는 한 글자만 저장되지만! 문자열은 데이터 형식으로 지원되지 않고 String 클래스로 사용할 수 있음

 

  • 형변환

- 데이터 타입을 다른 타입으로 변환하는 것

- 방법

(1) 형변한 하고자 하는 변수나 리터럴 앞에 변환하고자 하는 타입을 괄호와 함께 적음

==> 작은크기타입 = (작은크기타입) 큰크기타입

(2) 형변환은 기본형의 boolean만 제외하고 기본형은 기본형끼리, 참조형은 참조형끼리만 변환이 가능

(3) 형변환 시 작은 범위에서 큰 범위로의 변환은 자료 손실이 없으므로 캐스트 연산자를 생략 가능하지만, 그 반대의 경우는 반드시 명시해주어야 함

(4) 참조형 변수는 오직 서브 클래스 객체로 형변환 될 수 있음

(5) 기본형 변수는 참조형 변수로 형변환 될 수 없음

 

- 자동 타입 변환

: 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 발생

==> 큰 크기 타입 = 작은 크기 타입

 

byte(1byte) -> short(2byte) -> int(4byte) -> long(8byte) -> float(4byte) -> double(8byte)

char(2byte) -> int(4byte)

 ** float가 long보다 표현할 수 있는 값의 범위가 더 크기 때문

 

byte byteValue = 10;
int intValue = byteValue; //자동 타입 변환이 일어난다.

 

- 강제 타입 변환

=> 작은크기타입 = (작은크기타입) 큰크기타입

int intValue = 103029770;
byte byteValue = (byte) intValue; // 강제타입변환
//=> intValue는 4byte이므로 1byte 크기를 가지는 byte 타입에 저장할 수 없음.

int intValue = 10;
byte byteValue = (byte) intValue;
//=> 4byte 중 1byte만으로 10을 충분히 표현할 수 있으므로 byteValue에 10 저장됨.

 

 

 

'3-2 > JAVA' 카테고리의 다른 글

"" 와 ''의 차이..  (0) 2022.10.07
length, length(), size()의 차이  (0) 2022.10.07
2. Java 프로그래밍 기초 (2)  (0) 2022.09.15
2. 통합 개발환경 eclipse 설치 (1)  (0) 2022.09.14
1. JAVA 개발환경 구축 (2)  (0) 2022.09.14