[정보처리기사] Java_기본, 변수, 배열 , 표준

EunJi·2024년 4월 3일
0

정보처리기사

목록 보기
1/2

1. 자바 기본 구조

  • 클래스 구조
    • Class:
      • 객체 지향 관점에서 객체를 정의하는 틀.
      • 변수와 메서드로 구성.
  • public static void main 부터 시작.
public class Eunji { // 클래스 생성, 소스코드에 대한 파일 이름: Eunji 
	public static void main(String[] args) {
		System.out.println("Hello");
	}		
}

// 출력: Hello

2. 자료형

(1) 자료형이란?

  • 여러 종류의 데이터를 식별하는 형태.
  • 메모리 공간을 효율적으로 사용하고 2진수 데이터를 다양한 형태로 사용하기 위해 존재.

(2) 유형

유형설명선언 형식

| 문자형
(Character) | - 문자 하나를 저장할 때 사용

  • 메모리에는 숫자로 저장됨. | char |
    | 문자열형
    (String) | - 문자 여러개를 저장할 때 사용 | String |
    | 정수형
    (Integer) | - 정숫값을 저장하고자 할 떄 사용 | byte(1), short(2),
    int(4), long(8) |
    | 부동 소수점형
    (Floating Point) | - 소수점을 포함하는 실숫값을 저장할 때 사용 | float, double |
    | 논리형
    (Logical; Boolean) | - 변수의 참, 거짓을 나타낼 때 사용.
  • true / false | boolean |

3. 변수

(1) 변수란?

  • 저장하고자 하는 어떠한 값이 있을 때, 그 값을 주기억장치에 기억하기 위한 공간.
  • 자바는 변수를 초기화하지 않으면,
    정수형은 0,실수형은 0.0, 문자형은 NULL로 초기화.

(2) 변수 유효범위

  • 클래스 변수
    • 클래스 블록 안에 선언된 변수

    • 클래스가 시작되면 생성되고, 클래스가 종료되면 소멸됨.

    • 클래스 내에서만 사용 가능.

      public class Eunji {
      	int a = 5; // a -> 클래스 변수.
      	
      	void fn() {
      		a = a + 3;
      	}
      	
      	public static void main(String[] args) {
      		Eunji e = new Eunji(); // e.a == 5
      		e.a = e.a + 5; // e.a == 10
      		e.fn(); // e.a == 13
      		System.out.println(e.a);
      	} 
      }
      
      // 출력: 13
  • 지역 변수
    • 블록 내에 선언하는 변수.

    • 블록이 시작되는 부분에 선언하고, 중괄호가 닫히는 시점에 소멸.

    • 해당 블록 안에서만 사용 가능.

      public class Eunji {
      	public static void main(String[] args) {
      		int a = 3; // a -> 지역변수
      		System.out.println(a)
      	}
      }
      
      // 출력: 3
  • Static 변수
    • 선언시 static 키워드를 붙여줘야함.

    • 프로그램이 시작되면 변수 생성, 프로그램 종료시 변수 소멸.

    • 프로그램 전체에서 사용 가능.

      class Eunji {
      	static int count = 0;
      }
      
      public class EunjiMain {
      	public static void main(String[] args) {
      		Eunji e = new Eunji();
      		e.count ++;
      		System.out.println(e.count);
      		
      		e.count ++;
      		System.out.println(e.count);
      	}
      }
      
      // 출력: 
      // 1
      // 2

4. 배열

(1) 배열이란?

  • 같은 타입의 변수들로 이루어진 집합.

(2) 배열 선언

  • 1차원 배열 선언
    구분선언
    초깃값 X자료형 []배열명 = new 자료형[배열요소개수];
    ex) int []Eunji = new int[4]; ⇒ index: 0~3
    자료형 배열명[] = new 자료형[배열요소개수];
    초깃값 0자료형 []배열명 = {초깃값};
    • 배열 요소 개수에 정의된 숫자만큼 같은 타입의 데이터 공간이 선언됨.

    • 배열 요소 개수를 명시하지 않고 초깃값이 정의되면, 초깃값 개수만큼 공간 선언.

    • 초깃값 선언 X → 정수: 0, 실수: 0.0, 문자열: NULL 로 저장.

    • 자바에서 배열의 크기를 구할 때 length 속성 사용.

      public class Eunji {
      	public static void main(String[] args) {
      		int []a = new int[3]; // int형 변수 3개 선언.
      		System.out.println(a.length);
      	}
      }
      
      // 출력: 3
  • 2차원 배열 선언
    구분선언
    초깃값 X자료형 [][]배열명 = new 자료형[행의_개수][열의_개수];
    자료형 배열명[][] = new 자료형[행의_개수][열의_개수];
    초깃값 0자료형 [][]배열명 = {{초깃값}, {초깃값}, ..};
    public class Eunji {
    	public static void main(String[] args) {
    		int [][]a = new int[3][2]; // int형 변수 3x2개 선언
    		System.out.println(a.length); // a의 행 개수 출력
    		System.out.println(a[0].length); // a의 열 개수 출력
    	}
    }
    
    // 출력:
    // 3
    // 2
    public class Eunji {
    	public static void main(String[] args) {
    		int [][]a = {{1, 2}, {3}, {4, 5, 6}};
    		System.out.println(a.length);
    		System.out.println(a[0].length);
    		System.out.println(a[1].length);
    		System.out.println(a[2].length);
    	}
    }
    // 출력:
    // 3
    // 2
    // 1
    // 3

5. 표준 입출력 함수

(1) 표준 출력 함수

  • print, println, printf 함수.
    함수설명
    System.out.print()개행 출력 X
    System.out.println()개행 출력0
    System.out.printf()C언어처럼 변수를 출력할 수 있음.
    public class Eunji {
    	public static void main(String[] args) {
    		int a = 100;
    		System.out.print("Hello\n"); // Hello 출력 이후, 이스케이프 문자 \n를 만나 개행 실행.
    		System.out.println("Hello");
    		System.out.printf("%d", a); // a의 값을 %d(10진수)로 출력.
    	}
    }
    
    // 출력
    // Hello
    // Hello
    // 100
  • printf 출력 형식: %[-/0][n][.m]지시자
    • 지시자를 제외하고 생략 가능.

    • n: 출력할 전체 자리수 지정 (오른쪽 정렬)

    • 0: 전체 자리수가 지정된 경우, 왼쪽의 남는 자리에 0 출력

    • -: 전체 자리수가 지정된 경우 왼쪽 정렬하고 남은공간에 공백 출력.

    • .m: 소수점 아래 자리수 지정. 잘리는 소수점 자리는 반올림.

      지시자설명
      %bboolean 형식
      %d정수 형식
      %o8진수 정수의 형식
      %x 또는 %X16진수 정수의 형식
      %f소수점 형식
      %c문자 형식
      %s문자열 형식
      %n줄바꿈 기능
      %e 또는 %E지수 표현식의 형식
      public class Eunji {
      	public static void main(String[] args) {
      		int age = 26;
      		String name = "Eunji";
      		
      		System.out.print("나이: %d, 이름: %s.%n", age, name);
      		
      		System.out.printf("자리수 미지정: %d%n", 100);
      		System.out.printf("자리수 지정: %4d%n", 100);
      		System.out.printf("자리수 지정(- 사용): %-4d%n", 100);
      		System.out.rpintf("자리수 지정(0 사용): %04d%n", 100);
      	}
      }
      
      // 출력: (_는 공백을 의미)
      // 나이: 26, 이름: Eunji
      // 자리수 미지정: 100
      // 자리수 지정: _100
      // 자리수 지정(- 사용): 100_
      // 자리수 지정(0 사용): 0100

(2) 표준 입력 함수

  • readLine: 입력장치로부터 라인 전체를 읽는 표준 입력 함수.
    • System.in.readLine()

      import java.io.BufferedReader; // BufferedReader 사용을 위해
      import java.io.InputStreamReader; // InputStreamReader 사용을 위해
      import java.io.IOException; 
      // 입력할 때, 예외 처리를 위해 main 메서드 선언 후, main 메서드 시작 전에throws를 이용한 예외 처리 해줘야함.
      
      public class Eunji {
      	public static void main(String[] args) {
      		String a = null;
      		BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
      		// System.in을 통해 한글자씩 입력 받음.
      		// InputStreamReader로 문자열로 변형.
      		// BufferedReader 객체인 r로 결과 받음.
      		a = r.readLine(); // 엔터를 입력하기 전까지의 입력값들을 a에 저장.
      		
      		System.out.println(a);
      	}
      }
      
      // 입력:
      // Hello
      // 출력:
      // Hello
profile
말하는 감자

0개의 댓글