IT : 기초라는 뿌리

자바 기초 본문

JAVA

자바 기초

Parkej 2021. 7. 22. 00:47
앞으로 시작할 포스팅은
https://www.inflearn.com/course/java-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0
가 출처입니다

인프런 사이트에서 무료로 제공되고 있는 강의이고 해당 강의에서 정리한 내용을 바탕으로 복습겸 적습니다.

 

자바에선 함수를 메소드라고 한다. Method

C언어에서 없는 단위는 Class다
Java는 Class 안에 함수들이 있다
Class의 이름 첫글자는 대문자다 (정의된 약속)

 

코드를 위주로 설명하겠습니다.

 

class Main {
  
  public static void main(String[] args) { // main method 자바에선 메소드라고 함
    // 프로그램이 실행되는 곳
    System.out.println("Hello world!"); // ""로 문자열을 둘러쌈
    // c > prinf
  }
}
main 함수는 프로그램이 실행되는 곳입니다.

 

자바의 변수 타입

byte 정수
short 정수
int 정수 *
long 정수
float 소수
double 소수 *
char 문자하나
boolean 참 또는 거짓 *
String 문자열 *

 

변수는 데이터를 보관하는 장소(memory에)
변수는 사용하기 전에 선언되어야 합니다. 
 - 변수의 선언이란 이름과 타입을 정해주는 것 ! ( int num ) 
변수는 적용범위(Scope)를 가집니다.
 - 메소드 내부에 선언된 변수는 그 메소드 내부에서만 사용가능함! (지역변수)
 - 메소드 외부(클래스 내부)에 선언된 변수는 클래스 내에서만 사용가능함! (전역변수)

 

자료형의 선언과 사용 예제

class Main {

  static int num; // 자료형 선언은 초기화가 필요없다...?

  public static void main(String[] args) { 
    
    int anotherNum =5; // 함수 내부와 외부에 선언할 수 있음.
    // 메서드 내부에 선언된 변수는 그 메서드 내에서만 사용 가능하고 메서드 외부에 선언된 변수는 그 클래스 전체에서 사용될 수 있다.
    num = 2;
    System.out.println(num + anotherNum);
    System.out.println("Num : " + num);
    System.out.println("AnotherNum : " + anotherNum);
    System.out.println("sum : " + (anotherNum + num)); // 왼쪽부터 연산 
    // 자바에서 +의 양쪽 중 하나가 문자열이면 다른쪽도 문자열로 해석하여 두 문자열을 합친다.
  }
}

 

- static 은 나중에 설명
- 클래스 내부(Main)에 int형 타입을 가진 num이라는 변수가 선언되었습니다.
- public static void main(String[] args){} 이 부분은 함수 즉, 메소드라고 합니다.
- 메소드 안에(main, 클래스 이름과 비교 대소문자) int형 타입을 가진 anotherNum 이라는 변수가 선언되었고 값이 5로 초기화 되었습니다.
- 클래스 내부에 선언된(전역변수) num은 main함수 내부에서 2라는 값으로 초기화 되었습니다.
- 총 4번을 출력합니다. 
System.out.println(num + anotherNum); : num(2)와 anotherNum(5)를 더한 값 (7) 이 출력
System.out.println("Num : " + num); : num의 값인 2가 출력
System.out.println("AnotherNum : " + anotherNum); : anotherNum의 값인 5가 출력
System.out.println("sum : " + (anotherNum + num)); // 왼쪽부터 연산 // 자바에서 +의 양쪽 중 하나가 문자열이면 다른쪽도 문자열로 해석하여 두 문자열을 합친다.

 

 

정수형 입력받기
import java.util.Scanner;

class Main {
  public static void main(String[] args) { 
    int number = 123; // int형 number 라는 변수에 123을 초기화한다. 또는 선언 및 생성한다.
    Scanner sc = new Scanner(System.in); 
    // 자바에선 입력하는 함수 Scanner를 이용함
    // 스캐너란 객체를 생성한다. 및 사용할거다.

    System.out.print("input integer : ");
    int input = sc.nextInt(); 
    // 정수형을 받는 스캐너안의 함수

	// if문을 사용해 number안에 저장된 값이랑 입력한 숫자 값이 같은지 비교한다.
    if(input == number){
    // 두개의 값이 일치하면
      System.out.print("good");
    }else{
    // 두개의 값이 일치하지 않으면
      System.out.print("bad");
    }

    sc.close();

  }
}

 

 

 

문자열 입력받기
import java.util.Scanner;

class Main {
  public static void main(String[] args) { 
    String str = "Hello"; // String 타입의 str 변수를 선언하고 Hello라는 문자열로 초기화한다.
    String input = null; // String 타입은 null 을 넣어주지 않아도 자동으로 null이 들어가짐 
    Scanner sc = new Scanner(System.in); // 자바 입력 방법
    // 스캐너란 객체를 생성한다. 및 사용할거다.

    System.out.print("input string : ");
    input = sc.next(); // 공백 문자를 기준으로 자른다. 만약 str = "hello world"시 공백 전까지만 판단
    // 문자열을 사용할땐 Scanner 안의 next()함수를 사용한다

    // str == input 은 문자열 비교가 안됨, 정수는 가능..?
    // "==" String은 프리미티브 타입이 아니기 때문에 저 연산자가 판단이 안됨.
    
    // 두 개의 문자열이 동일한지 판단할떄 equals함수를 사용한다
    // 나중에 call by value 와  call by reference를 알아보도록 하자
    if(str.equals(input)){
      System.out.print("good");
    }else{
      System.out.print("bad");
    }

    sc.close();

  }
}

 

 

 

여러개 입력받기
import java.util.Scanner;

class Main {
  public static void main(String[] args) { 
    // 변수 선언 및 생성 작업
    String name = null;
    int age;
    String gender;

	// 입력받은 스캐너 객체 생성
    Scanner sc = new Scanner(System.in);

	// 공백을 기준으로 한줄 입력
    System.out.print("이름 나이 성별 : ");
    name = sc.next(); // pej
    age = sc.nextInt(); // 20
    gender = sc.next(); // male

	// gender 부분에 들어간 문자열에 따른 조건문 
    if(gender.equals("male")){ // string literal : ""로 쌓여진 문자열
    // male 이면
      System.out.println(name + "your name " + age + "years old man");
    }
    else if(gender.equals("female")){
    // female 이면
      System.out.println(name + "your name " + age + "years old woman");
    }
    else{
    // male이나 female이 아닌 다른 문자가 들어가면
      System.out.println("Who are you,,,?");
    }

    sc.close();

  }
}

 

 

 

배열 선언
class Main {
  public static void main(String[] args) { 

    // C => int grades[5];
    int[] grades; // 배열 선언(정수형 배열)
    grades = new int[5]; // 배열 생성 : 실제 배열이 만들어지는 시점
    // int[] grades = new int[5];

    int n = 100
    int[] g = new int[n]; /// variable length array

    // double [] array;
    // drray = new double[100];

    // char[] word;
    // word = new char[20];

    grades[0] = 0;
    grades[1] = 1;
    grades[2] = 2;
    grades[3] = 3;
    grades[4] = 4;

    // 배열의 각 칸에 데이터를 저장
    // 저장된 데이터를 읽기위해 [](인덱스 연산자) 사용, 배열의 인덱스는 0부터 시작한다.
    // System.out.println(grades[0]);
    // System.out.println(grades[1]);
    // System.out.println(grades[2]);
    // System.out.println(grades[3]);
    // System.out.println(grades[4]);
    
    // for문안에 선언된 변수 i의 적용 범위는 for문 안에서만 한정된다.
    for(int i =0;i<grades.length;i++){
      // 배열의 크기를 리턴해주는 length 함수를 제공함.
      // 배열의 크기이지 저장된 데이터의 개수는 아니라는 것을 인지
      System.out.println("Grade"+(i+1)+": "+grades[i]);
    }

    // while문
    int i = 0;
    while(i<grades.length){
    // i가 배열길이(5)가 될때까지 돌려라 
      System.out.println("Grade"+(i+1)+": "+grades[i]); 
      i++;
    }


  }
}

 

 

스캐너를 이용한 배열 선언과 생성
import java.util.Scanner;

class Main {
  public static void main(String[] args) { 

    // 정수 변수를 입력해서 배열 크기를 입력받을 수 있음.
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt(); // 100
    int[] arr = new int[n];  // arr[100]의 길이를 가진 배열 객체가 생성

    System.out.println(arr.length); // 100 

  }
}

 

'JAVA' 카테고리의 다른 글

자바 기초(버블정렬)  (0) 2021.08.06
자바 기초(0개 이상 연속 합과 최대값)  (0) 2021.08.06
자바 기초(중복 된 정수 쌍 찾기)  (0) 2021.07.26
자바 기초 (소수찾기)  (0) 2021.07.23
자바 기초 (배열 1)  (0) 2021.07.22