[Java] Java 기초 문법 수업

sm·2023년 2월 28일
0

Web

목록 보기
19/24

JAVA 문법 수업

자바 소스 코드(.java) → 컴파일러 → 자바 바이트 코드(.class)
자바 가상 머신(JVM - Java Virtual Machine)
자바: 운영체제에 독립적, 자바 가상머신만 있으면 실행이 가능

자바 가상 머신 설치

  • JDK 설치(java development kit)
    https://www.oracle.com/java/technologies/downloads/#java17
    mac m1 → arm1 다운/ 윈도우 x64 installer
    설치 확인 명령어 java -version
  • eclipse 설치 https://www.eclipse.org/downloads/
    워크스페이스가 위치할 곳 설정 - 다만 한글이 포함된 경로는 안됨.
    클래스 이름은 대문자가 암묵적인 규칙
    public static void main 체크를 하면 코드 샘플이 생긴다.
  • JAVA 문법 참고)
    세미콜론은 무조건 적어주어야 오류가 나지 않는다.
    큰 따옴표를 사용해주어야한다.
public class Main { //클래스

//메소드 -> 메인 메소드 안에서 코드가 실행된다. 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print("Hello World!");
	}

}

식별자 원칙

식별자? 클래스 , 변수, 상수, 메소드 등에 붙는 이름
특수문자 사용 불가, 공백 불가, 미리 정의된 키워드는 식별자로 사용 불가
한글은 사용 가능하지만 사용하지 않는 것이 좋다.
숫자 사용 가능, 단 첫 글자로는 사용 불가
자바같은 경우에는 자바스크립트와 달리 잘못된 식별자를 사용할 경우 오류를 알려준다.
데이터 타입
: 자바는 강한 타입 언어, 데이터 타입이 중요하다.
데이터 타입

1. 기본 타입(primitive)

boolean: 논리 타입
char : 문자 타입 - 한글자 저장
byte, short, int, long : 정수 타입
float, double : 실수 타입
(보통은 정수는 int, 실수는 double을 많이 사용)

레퍼런스 타입(참조형, Reference)

기본형 타입을 뺀 모든형태를 참조형 타입
배열
클래스(ex. String)
인터페이스
입력과 출력

System.out.print()

System.ouot.println(): 마지막에 엔터를 자동으로 넣어줌(자동 줄바꿈 \n

입력 ⇒ Scanner 클래스 이용 : 사용자가 콘솔에 입력한 값을 저장

주요 메소드
next() : 공백 이전까지의 문자열 읽음
nextLine(): 엔터 이전까지의 문자열 읽음
next 자료형
nextInt: 공백 이전까지의 정수를 읽음
nextDouble: 공백 이전까지의 실수를 읽음
nextBoolean, nextFloat(), …
cloase() : scanner 닫음

import java.util.Scanner;
...
		Scanner scanner = new Scanner(System.in);
		System.out.println("이름, 나이, 키, 결혼 여부를 입력해주세요.");
	
   	     String name = scanner.next();
		int age = scanner.nextInt();
		double height = scanner.nextDouble();
		boolean single = scanner.nextBoolean();
		
		scanner.close();
		
		System.out.println("이름은 " + name);
		System.out.println("나이는 " + age);
		System.out.println("키는 " + height);
		System.out.println("결혼여부는 " + single);

연산자

실수의 값을 얻고 싶다면 5.0 % 2.0을 해야한다
5 / 2 = 2를 하면 몫인 2만 나오게 된다.
5 % 2 = 1를 하면 나눗셈의 나머지인 1이 나오게 된다.

조건문

if문
// string의 경우 2가지 방법 모두 가능
String str = new String("홍길동");
String str2 = "홍길동"; => == 으로 비교 가능 그러나 일반적으로는 변수.equals('비교할 문자열')를 사용한다.

		String str1 = new String("홍길동");
		String str2 = "홍길동";
		if(str2 =="홍길동") System.out.println(true);
		else System.out.println(false);
        
		// str1 => false, str2 => true

switch 문

case별로 break를 써줘야 다음 문장이 자동으로 실행되지 않는다.

		int num = 0;
		
		switch (num) {
		case 0:
			System.out.println("0");
			break;
		case 1:
			System.out.println("1");
			break;
		default: 
			System.out.println("0도 1도 아님");
		}

반복문

for문

//0부터 9까지 출력
for (int i=0; i<10; i++) {
			System.out.print(i + "");
		}
while문
int i = 0; // i 초기화
		while(i<10) {
			System.out.print(i + " ");
			i ++ ;
		}

do- while문

int j = 0;
	    do {
	    	System.out.print(j + " ");
	    	j++;
	    } while (j<10);
	}

do-while문은 처음에 무조건 한번 실행됨. 조건이 맞지 않아도 한번은 무조건 실행된다.

메소드

: public static으로 메소드를 선언한다.
반환값이 없는 경우: void
반환값이 있는 경우

public static void hello() {
		System.out.println("hello");
	}
	public static int sum(int num1, int num2) {
		return num1 + num2;
	}
	public static void main(String[] args) {
		hello(); //hello
		System.out.println(sum(1,2)); //3
	}

ArrayList (배열)

배열: 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
자바의 경우 배열의 데이터 길이를 정해주어야 한다.
Arrays.toString ⇒ 배열을 문자로.

import java.util.Scanner;
import java.util.Arrays;

public class Main {
	
	public static void printArray(int[] arr) {
		for (int i=0; i<arr.length; i++) {
			if (i == 0) System.out.print('[');
			if (i == arr.length - 1) System.out.print(arr[i] + "]");
			else System.out.print(arr[i] + ", ");
		}
	}

	public static void main(String[] args) {
		
		int[] arr1 = {0, 0, 0};
		int[] arr2 = new int[3];
		
		// arr1 = [0, 1, 2]
		for (int i=0; i<arr1.length; i++) {
			arr1[i] = i;
		}
		
		// for문을 이용한 출력
		for (int i=0; i<arr1.length; i++) {
			System.out.print(i + " ");
		}
		
		// for-each문
		for (int value : arr1) {
			System.out.print(value + " ");
		}
		
		// Arrays 클래스 이용
		System.out.println(Arrays.toString(arr1));
		// 직접 만든 메소드
		printArray(arr1);
		
		
	}

}
profile
📝 It's been waiting for you

0개의 댓글