자바 프로그래밍 기초

이유빈
이유빈 |
자바 프로그래밍 기초

클래스

  • 자바와 같은 객체 지향 언어의 기본적인 빌딩 블록
  • 클래스들이 모여서 하나의 자바 프로그램이 됨

      public class Add {
      	...
      	...
      }
    

클래스와 소스

  • 자바에서 소스 파일 이름은 항상 public이 붙은 클래스의 이름과 동일해야됨
  • 위의 소스 파일이름도 반드시 Add.java여야 함
  • 참고사항
    • 하나의 소스 파일 안에는 하나의 클래스만 있는것이 바람직함
      //파일의 이름은 Add.java여야 함
      public class Add {
      	...
      	...
      }
    
    • 그러나 하나의 소스 파일 안에 여러 개의 클래스가 들어 있을 수 있음.

        public class Add {
        	...
        	...
        }
              
        class Add2 {
        	...
        	...
        }
      
    • 소스 안에 public 클래스가 하나 있다면 반드시 소스 파일의 이름은 public 클래스와 일치해야 하며 다른 클래스는 public 클래스가 아니어야 함
      • 하나의 소스 파일 안에 public 클래스가 2개 이상 있으면 컴파일 오류
        //Add.java
        public class Add {
        	...
        	...
        }
              
        /* 오류 발생
        public class Add2 {
        	...
        	...
        }
        */
      
    • 하나의 소스 파일 안에 public 클래스가 없을 경우, 소스 파일 안에 포함된 어떤 클래스의 이름으로 해도 상관 없음

        //Add1.java 또는 Add2.java 가능
        class Add1 {
        	...
        	...
        }
              
        class Add2 {
        	...
        	...
        }
      

메소드

  • 특정한 작업을 수행하는 코드의 묶음
    • C언어로 보자면 “클래스 안에 정의된 함수”

        public static void main(String[] args) {
        	...
        	System.Out.println(sum);
        }
      
  • 메소드 호출

      public class Add2 {
      	public static void main(String[] args) {
      		...
      		z = addition(100, 200) //addtion 메소드 호출
      	}
      	public static int addtion(int x, int y) { //넘겨 받은 값으로 x+y 실행
      		int sum = x + y;
      		return sum; //z로 sum값 리턴
      	}
      }
    

자바 프로그램의 일반적인 구조

  • 하나의 소스 파일에 하나의 클래스
  • 하나의 클래스 안에 여러 개의 메소드
  • 하나의 메소드 안에 여러 개의 문장
  • 클래스 > 메소드 > 문장

문장

  • 사용자가 컴퓨터에게 작업을 지시하는 단위
  • 프로그램을 이루는 가장 기초적인 단위

      sum = x + y;
    

주석

/* 여러 줄을
주석 처리 할 때 */

//한 줄을 주석 처리 할 때

변수와 자료형

  • 변수 - 데이터를 담아두는 상자

      int x;
    
  • 자료형(data type)

    • 변수에 저장되는 데이터의 타입
      • 기초형 - 실제값이 저장

        Untitled

        Untitled

        • 정수형 - byte, short, int, long
        • 실수형 - float, double
        • 논리형 - boolean
        • 문자형 - char
          • 하나의 문자 저장 가능
          • 모든 문자를 2바이트의 유니코드로 나타냄

              char ch1 = '가';       //2바이트
              char ch2 = '\uac00';   //'가'
              char ch3 = 'a'         //2바이트
            
      • 참조형 - 실제 객체를 가리키는 주소 저장

        • 클래스, 인터페이스, 배열

식별자 만들기(변수 이름..?)

  • 영문자, 숫자, 밑줄문자_로 이루어짐. 한글도 가능
  • 첫 번째 문자는 반드시 알파벳 또는 밑줄문자_여야함. 숫자X
  • %, &, # 사용불가. 단, $과 _은 사용가능
  • 대소문자를 구별함
    • index ≠ INDEX ≠ Index
  • 자바 언어 키워드(if, while, true, false, null, …)와 똑같은 이름 X
  • 식별자의 예

      //올바른 예
      int sum;
      long employee_id;        //_사용 가능
      class Sprite10 {   }     //숫자 사용 가능
      void get_$() {   }       //문자 사용가능
        
      //틀린 예
      int 1stPrizeMoney;      //첫 글자가 숫자
      double super;           //자바 키워드
      int #ofComputer;        //허용되지 않는 기호
      class %_of_Money {   }  //허용되지 않는 기호
    
  • 식별자의 관례 (필수는 아님)

    종류 사용 방법 예
    클래스명 각 단어의 첫 글자는 대문자 StaffMember, ItemProducer
    변수명, 메소드명 첫 단어의 첫 글자는 소문자  
    두 번째 단어부터는 단어의 첫 글자는 대문자 width, payRate, acctNumber, getMonthDays(), fillRect()  
    상수 모든 글자를 대문자로 MAX_NUMBER

자바 키워드

Untitled

상수와 리터럴

상수(constant) 와 리터럴(literal)이란?

리터럴(Literal)이란?

  • 상수(constant)
    • 프로그램이 실행하는 동안 값이 변하지 않는 수 또는 변경 불가능한 수

        final double PI = 3.141592;
      
    • 변하지 않는 변수 / 메모리 위치(공간)이며, 메모리 값을 변경할 수 없음.

  • 리터럴(literal)
    • x = 100; 에서 100과 같이 소스 코드에 직접 쓰여 있는 값
    • 변수에 넣는 변하지 않는 데이터 / 메모리 위치(공간) 안에 저장되는 값
    • 정수형, 부동소수점형, 문자형 등의 여러 가지 타입이 존재
      • 10진수: 14, 16, 17
      • 8진수: 012, 013, 014
      • 16진수: 0xe, 0x10, 0x11
      • 2진수: 0b1100 ⇒ JDK 7부터 가능
    • 논리형 리터럴
      • 논리형(boolean type)은 참과 거짓을 나타내는 데 사용됨
      • true 혹은 false

          boolean flag = true;
          **boolean x = 1 < 2;**   //false가 저장됨
        

변수 타입 추론

  • Java 10부터 var 키워드 사용가능
    • 지역 변수의 타입을 자동으로 추론 가능

      Untitled

  • 변수 타입 추론 실패 사례
    • 컴파일러가 지역 변수 유형을 추론하기에 충분한 정보가 없으면 컴파일 실패

        var id = 0;     //충분한 정보가 없어서 정수형으로 가정
        var sum;        //변수 sum의 타입을 추측할 정보가 부족함. 컴파일 오류
      

문자열(string)

  • 문자들의 모임

      String s1 = "Hello";
      String s2 = "world!";
        
      System.out.println(s1 + s2);   //"Hello World!" 출력
        
      int age = 20;
      System.out.println("내년이면 " + age + "살"); //"내년이면 20살" 출력
    

형변환

  • 컴퓨터에서는 산술적인 연산을 하기 전에 피연산자의 타입을 통일하여야 함

    Untitled

  • 강제적인 형변환

      int x = 3;
      double y = (double) x; //x를 double로 형변환하여 y에 저장
    

콘솔에서 입력받기

  • 콘솔에서 읽는 것은 System.in을 사용
  • System.in은 키보드에서 바이트를 읽어서 우리에게 전달

      import java.util.Scanner;
      Scanner sc = new Scanner(System.in);
    

    Untitled

import 문장

  • 자바에서 모든 클래스는 사용하기 전에 import되어야 함

    Untitled

  • 이클립스에서의 import

    • 이클립스에서는 각종 import를 쉽게 할 수 있는 기능을 제공함
    • 오류가 표시된 문장에 커서를 올리고 잠시 있으면, 해결책을 제공하는 Quick Fix 기능을 이용할 수 있다

      Untitled

    • 소스 파일 전체에 등장하는 모든 클래스를 import하려면 Shift+Ctrl+O를 누르면 됨

Scanner 클래스

  • Scanner 클래스는 키보드로부터 바이트 값을 받아서 분리자를 이용 하여 각 바이트들을 토큰(token)으로 분리한다
  • 특별한 지정이 없으면 분리자는 공백문자(‘ ’, ‘\n’, ‘\t’)이다

Untitled

String name = sc.next(); //한 단어(토큰) "Kim"을 읽는다.
int age = sc.nextInt(); //문자열 "20"을 정수 20으로 변환하여 반환한다.
double weight = sc.nextDouble(); //문자열 "84.0"을 실수 84.0으로 변환하여 반환한다.

String line = sc.nextLine(); //문자열 "Kim 20 84.0"이 반환된다.
//한줄 전체를 String으로 반환함
//사용시 주의 필요

/*
Scanner 클래스의 메서드를 사용할 때, nextLine() 메서드를 주의하자!

nextLine() 앞에 공백문자를 사용할 때, 특히 Enter를 사용할 때
웬만하면 nextLine()을 한번 더 써주어서 공백문자를 없애주자.
*/

[Java] Scanner() 메서드 총정리

수식과 연산자

  • 수식 = 피연산자 + 연산자
  • 연산자 = 특정한 연산을 나타내는 기호
  • 피연산자 = 연산의 대상

Untitled

  • 연산자

    Untitled

  • 산술 연산자

    Untitled

  • 복합 대입 연산자

    Untitled

  • 관계 연산자

    Untitled

  • 논리 연산자

    Untitled

  • 비트 연산자

    Untitled

  • 비트 이동 연산자

    Untitled

  • 조건 연산자

    Untitled

      absolute_value = (x > 0) ? x: -x;    //절대값 계산
      max_value = (x > y) ? x: y;          //최대값 계산
      min_value = (x < y) ? x: y;          //최소값 계산
    

요약

  • 클래스는 자바와 같은 객체 지향 언어의 기본적인 빌딩 블록이다. 클래스들이 모여서 하나의 자바 프로그램이 된다.
  • 메소드는 특정한 작업을 수행하는 코드의 묶음이다.
  • 문장은 사용자가 컴퓨터에게 작업을 지시하는 단위이다.
  • 변수는 데이터를 담아두는 상자로 생각할 수 있다.
  • 자바에는 크게 나누어서 기초형과 참조형의 자료형이 있다.
  • 기초형은 다시 정수형, 실수형, 문자형, 논리형으로 분류할 수 있고, 참조형에는 클래스, 배열, 인터페이스가 있다.
  • System.in과 Scanner 객체를 이용하여 콘솔에서 정수나 실수, 문자열을 읽는다.
  • import 문장은 다른 클래스를 포함시키는 문장이다.
  • 자바는 +, -, *, /, % 등의 산술 연산자를 제공한다.
  • 자바는 <, >, <=, >= 등의 관계 연산자를 제공한다.
  • 자바는 &&,   , !와 같은 논리 연산자를 제공한다.
이유빈

이유빈

국민대학교 소프트웨어융합대학 소프트웨어학부 이유빈입니다. 링크 아이콘을 클릭해 Github 페이지로 이동할 수 있습니다.

댓글

comments powered by Disqus