자바 공부

변수와 자료형(변수 타입, 선언, 데이터 타입, 형변환)/조건문&반복문/연산자

sh1256 2021. 1. 9. 17:45
728x90

이번 공부는 대부분 c언어와 비슷한 부분이 많아서 공부하기 수월했다!!

1. 변수와 자료형

1-1. 변수타입의 종류

변수는 그릇 같은 것으로 정수형 변수는 정수를 실수형 변수는 실수를 담을 수 있는 것 같이 이해하면 된다. 

자바에서 변수는 데이터 타입의 변수와 참조형 타입의 변수로 나누어 진다고 한다. 

1-1-1. 데이터 타입의 변수

출처: https://dangle.tistory.com/7

1-1-2. 참조형 타입의 변수

처음 참조형 타입의 변수는 데이터 타입의 변수 8가지를 제외한 모두라고 할 수 있다. 

예를 들어 string과 scanner이다. 객체의 주소를 저장하는 것이라고 할 수 있다. 문자열은 문자열의 첫 번째 문자의 주소를 가리키는 것과 같은 의미인 것 같다. 

대표적으로 문자열 타입의 변수를 알아보자. 

문자열을 " "로 묶어 변수를 선언할 수 있다. 문자처럼 ' '로 묶으면 에러가 발생한다. (하지만 하나의 문자는 문자열로 나타낼 수 있다.)

문자열을 문자를 묶는 ' '로 묶을 시 나타나는 에러

 

1-2. 변수 선언

변수 선언은 (변수타입 변수이름=int a)으로 하면 되고 변수 선언과 변수의 값을 할당을 함께 할 수 있다. (변수타입 변수이름=변수값=int a=3;)

 그런데 변수를 선언할 때 int iv; 는 인스턴스 변수,  static int cv; 은 클래스 변수,  void method() { int lv; } 은 지역변수로 선언할 수 있다. 

 

1-2-1. 인스턴스 변수

 인스턴스 변수는 인스턴스가 생성될 때 생성됨니다. 그렇기 때문에 인스턴스 변수의 값을 읽어오거나 저장하려면 인스턴스를 먼저 생성해야합니다. 인스턴스 별로 다른 값을 가질 수 있으므로, 각각의 인스턴스마다 고유의 값을 가져야할 때는 인스턴스 변수로 선언합니다.

 

1-2-2. 클래스 변수

  클래스 변수는 인스턴스 변수에 static만 붙여주면 됩니다. 인스턴스 변수는 각각 고유한 값을 가지지만 클래스 변수는 모든 인스턴스가 공통된 값을 공유하게 됩니다. 한 클래스의 모든 인스턴스들이 공통적인 값을 가져야할 때 클래스 변수로 선언합니다. 클래스가 로딩될 때 생성되어(그러므로 메모리에 딱 한번만 올라갑니다.) 종료 될 때 까지 유지되는 클래스 변수는 public 을 붙이면 같은 프로그램 내에서 어디서든 접근할 수 있는 전역 변수가 됩니다. 또한 인스턴스 변수의 접근법과 다르게 인스턴스를 생성하지 않고 클래스이름.클래스변수명 을 통해서 접근할 수 있습니다.

 

1-2-3. 지역 변수

 메서드 내에서 선언되며 메서드 내에서만 사용할 수 있는 변수입니다. 메서드가 실행될 때 메모리를 할당 받으며 메서드가 끝나면 소멸되어 사용할 수 없게 됩니다.

출처: https://itmining.tistory.com/20 [IT 마이닝]

변수 a를 선언하고 출력해 보았다. a+1은 a가 1이므로 1+1이 되어 2가 출력된다.

1-3. 형 변환

int를 float이나 double로 바꾸고 싶을 때 형 변환이 필요하다. 형 변환은 데이터 타임을 전환한다는 것이다. 

 

1-3-1. 자동 형 변환

자동 형 변환에서는 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로 변환만 허용된다. 예를 들어보자. float의 표현범위 보다 double의 표현 범위가 더 넓다. 그러면 float에서 double로의 데이터 타입 변환은 가능하지만 double에서 float로의 형 변환은 불가능한다. 

byte->short, char->int->long->float->double 순으로 표현 범위가 넓다. 

 

1-3-2. 명시적 형 변환

명시적 형 변환은 자동 형 변환과는 반대로 수동으로 형 변환을 시켜주어야 한다. 

예시) float a= (float)100.0; 

2. 조건문&반복문

java 조건문과 반복문을 알아보자. 

2-1. 조건문

이렇게 조건문은 어떤 조건이 만족되면 조건문 안의 명령문이 실행되게 된다. 

c언어와 비슷하게 조건문에서는 if, else와 else if 를 쓸 수 있다. 

또다른 조건문으로는 switch문이 있다. 

2-2. 반복문

반복문을 알아보자. java의 반복문에는 while과 for이 있다. 두가지 모두c언어와 비슷하게 작동한다. 

while문 예제
for 문 예제

3. 연산자

Java 연산자는 단항연산자, 산술 연산자, 숫자 연산자, 비교 연산자, 논리 연산자, 삼항 연산자, 할당 연산자가 있다. 이 내용은 c언어와 매우 비슷해서 공부하기 수월했다. 

연산자 종류에 따라 연산방향과 우선순위가 다르니까 기억해 놓자.

출처: m.blog.naver.com/PostView.nhn?blogId=29java&logNo=70188119123&proxyReferer=https:%2F%2Fwww.google.com%2F

 

연산자(Operator)

이구자바의 스터디룸 연산자(Operator) 실제 프로그래밍에서 가장 많이 쓰이는 연산자에 대해 알아봅시다....

blog.naver.com

각각 우선순위를 생각해서 계산해 보면, a+d는 1+4=5, a+b*c-d는 a+(b*c)-d 로, 1+6-4=3으로 결과가 나온다. 

문자열도 덧셈이 가능하다.