220409 자바 리뷰

이전영·2022년 4월 9일
0

정확히 개념을 모르고 지나갔던 continue, break를 다시 보았다. 아니 Do it 자바책을 처음부터 다시 보았다. continue를 먼저 보자면,

for(num = 1;num<=100; num++){
	if(num % 2 ==0)
    	continue;
    total +=num;
}

위 코드에서 흐름은 num = 1 부터 1씩 증가하며 100까지 반복
만약 num이 짝수라면 밑에 total +=num이 실행되지 않고 위로 올라가 num++가 수행된다.

continue문은 반복문을 수행할때 특정조건에서는 수행하지않고 건너뛰어야 할때 사용한다.

while(조건식){
}

조건식이 참이면 수행. 거짓이면 while문을 빠져나온다.

break;

만약 중첩 반복문이 있다고 가정하자.
가장 안쪽의 반복문에서 break;를 선언하면 하나의 반복문에서 탈출하게된다.

조건연산자를 사용하여 부모님의 나이 비교하기

public class OperationEx4 {

    public static void main(String[] args){
        int fatherAge = 45;
        int motherAge = 47;

        char ch;
        ch = (fatherAge > motherAge) ? 'T' : 'F';

        System.out.println(ch);
    }
}
if (fatherAge > motherAge){
	char ch='T'
    }
else{
	char ch='F'
    }

헷갈리던 로컬,인스턴스, 클래스 변수 마무리 하자.

7. 변수 종류

가. 로컬변수

  • 메서드 안에서 선언된 변수이다.
  • 메서드가 호출될 때 생성되고 메서드가 종료될때 제거된다.
    stack 메모리에 저장된다. 임시적으로 사용된다.
  • 접근 지정자를 사용하지 못한다.
  • 기본적으로 메서드 불록({}) scope를 따른다.
  • 반드시 사용 전에 초기화 해야된다.

나. 인스턴스 변수

  • 메서드 밖에서 선언된 변수이다.
  • 객체 생성할때 생성되고, 객체가 제거될 때 삭제된다.
  • heap 메모리에 저장된다. 클래스의 인스턴스 정보(속성)을 저장하는 용도이다.
  • 사용 전에 초기화 하지 않으면 기본값으로 자동 설정된다.
  • 기본적으로 클래스 블록({}) scope를 따른다.

다. 클래스 변수

  • 메서드 밖에서 선언된 변수이다.
    인스턴스 변수와 차이점은 변수 선언시 static 키워드를 사용한다.
  • 프로그램이 실행될 때 자동으로 생성되고, 프로그램이 종료 될 때 삭제된다.
  • 프로그램은 한번만 실행되기 때문에 클래스 변수도 단 한번만 생성된다.
    객체 생성전에 생성이 된다. 따라서 '클래스명.변수'형식으로 접근한다.
    -일반적으로 데이터 누적용으로 사용된다.
    -method Area 영역에 저장된다. (static 키워드 및 상수 저장 영역)
  • 초기화 하지 않으면 자동으로 기본값으로 자동 설정된다.

Call By Value

자바의 매개변수는 값 복사를 통해서만 전달된다.

메서드 호출시 매개변수로 전달되는 값은 기본 데이터인 경우에는 변수에 저장된 실제값이 전달되고 참조 데이터형인 경우에는 변수에 저장된 객체의 주소값이 전달된다.

profile
개발자 3년차

0개의 댓글