[JAVA] 설치 및 설정 & 기본 문법

728x90

[ 2023. 5. 30 작성]

1. 자바 설치 및 설정

1) 자바 다운로드

오라클 웹사이트 (https://www.oracle.com) 접속 후 상단의 [Product] 메뉴에서 [Java]클릭

우측상단에서 [Download Java]클릭

[windows]-[JDK 설치(8버전)] ※우리나라에선 아직 8버전을 많이 사용함

2) 이클립스 다운로드

이클립스 홈페이지(https://www.eclipse.org ) 접속 후 다운로드

3) c드라이브에 java 폴더 생성 --> eclipse 저장경로 java 폴더로 설정


이클립스 실행

file-new-java project 생성(폴더)

src 우측 클릭

--> new - package(폴더 안에 "폴더" 생성)

--> new - class( 확장자 만들기) : 대문자로 시작

※ main 메소드 체크 못했다면 : main + ctrl + 스페이스바 --> 맨위

파일명 이름 앞에 * 적혀있으면 저장안되어있음을 의미

파일명 변경 : 우클릭 - refacter - rename

console 창 실행 방법: 저장하고 run 누르기 or ctrl+ F11

실행구문은 main 메소드 안에 넣기

 

System.out.print(" " ) ; --> 실행구문 자동입력 : syso 입력 + ctrl + 스페이스바

메소드 , 변수명은 무조건 소문자 시작

class 파일명은 대문자로 시작

<출력문>

1. print : 엔터 없이 그냥 출력

2. println : 엔터 포함해서 출력

<예시코드>

package ex01;

public class Hello {

	public static void main(String[] args) {
		System.out.print("hello 안녕!");
		System.out.println("hello 안녕!");
		System.out.print("hello 안녕!");
		int x = 1;
		int y = 2;
		int z = x + y;
		System.out.println(z);
	}
}

3. printf : ( "문자열", 값1, 값2.. ) ; 구조로 사용

⇒첫번째 속성 "문자열"에 들어가는 값 : 문자열이면 %s / int라면 %d / 실수라면 %f

⇒ 문자열 6자리 _ _ _*** 형식을 원한다면 : printf ( %6s, "*" )

<예시코드1>

package ex02;

public class Page90 {

	public static void main(String[] args) {
		String name = "홍길동";
		int age = 22;			
	    System.out.printf("이름 :"+name+" 나이 :"+age);
	    System.out.println();
	    System.out.printf("이름 :%s 나이 :%d",name,age);
	    System.out.println();
	    System.out.printf("이름 :%1$s 나이 :%2$d",name,age);
	}
}

<예시코드2>

package ex02;

public class Q001 {

	public static void main(String[] args) {
		String name = "감자바";
		int age = 25;
		String tel1 ="010", tel2 = "123", tel3 = "4567";
		System.out.println("이름: "+name);
		System.out.print("나이: " + age+ "\n");
		System.out.printf("전화: %1$s-%2$s-%3$s",tel1,tel2,tel3);
	}
}

※ 메소드와 메소드는 형제개념으로 만들어야함(메소드 안에 메소드 X)

( 전역변수 ./ 지역변수 / 전역변수 경우 --> 지역변수는 해당 X )

 

한줄 주석 //

영역 주석 /* */ ( ctrl + shift + / )

<선언>

무조건 먼저 변수로 타입을 선언해야함

1)타입 종류

크기 ( byte < short < int < long < float < double 순)

<작성법 예시코드>

package ex02;

public class Ex04 {
     // 범위를 벗어나면 에러가 난다.
	public static void main(String[] args) {
		String s = "1"
        byte a = 127; //-128 ~ 127
		short b = 32767; //-32,768 ~ 32,767
		char c = '1'; // 0 ~ 65535
		int d = 1;
		long e = 10000L; // long은 마지막에 L 안붙이면 에러남
		float f = 0.123456789f; // 정밀도가 낮다. // f입력해야 함
		double g = 0.123456789;  //정밀도가 높다
     }
}

 

※ 타입 선언

⇒정수 형태 : int (숫자형태로만 받음)

⇒ 실수 형태 : double (0.00타입)

⇒ 문자열 : String " "

⇒ 문자 : char ' '

※변수명

⇒ 숫자로 시작 X

⇒ 예약어 금지(abstract, boolean. if, break 등)

⇒ 대소문자 구분함

변수에 변수 대입 [Ex03.java]

' ' (홀 따옴표): 문자 → char 에 적을 때

" " (쌍 따옴표): 문자열

<문장안 강조표현, 띄어쓰기, 엔터 등>

<예시코드>

package ex02;

public class Page64 {

	public static void main(String[] args) {
		char v1 = 'A'; // 문자
		String v2 = "A"; // 문자열
		String str = "나는 \"자바\"를 좋아한다."; // 따옴표를 추가하고 싶다면 역슬래쉬 사용
		String str2 = "a\tb\tc\nd";  // \t:탭 만큼 띄워라
		
		System.out.print(str+"\n"); // \n : 엔터
		System.out.println(str2);
	}
}

타입 변환

1. 자동타입변환

⇒ 큰 타입 = 작은 타입 : 우 → 좌 대입 일때 발생

⇒실수 타입 = 정수 타입 : 정수가 실수 될 때 발생

⇒ int(큰) = char(작은) : 유니코드값이 저장

⇒ byte(작은) = char(큰) : 변환 불가능

 

2. 강제타입변환 : 큰걸 작은걸로 나눠서 저장

⇒ 작은 = (작은으로 강제형 변환) 큰

<타입변환 예시코드>

package ex02;

public class Page73 {

	public static void main(String[] args) {
		byte a = 10;
		int b = a; // 자동 형 변환
		////////////

		int c = 10;
		byte d = (byte)c; //강제 형 변환
		////////////

		int i = 33;
		char j = (char)i;
		System.err.println(j); // 첫번째 출력문
		/////////////////////////

		int x = 5;
		int y = 6;
		short z = 7;
		int result = x + y;
		//short result1 = x + z; // 수식 사용시 기본으로 받아얄 할 최소단위 타입은 int
		float aa = 1.0f + 2.0f;
		//page 80
		int xx = 10;
		int yy = 4;
		int zz  = xx / yy;
		double zzz = xx / (double)yy; // 분모나 분자 둘 중 최소 하나라도 double로 받아야 소수점까지 출력된다.
		System.out.println(zz); // 두번째 출력문
		System.out.println(zzz); // 3번째 출력문
		//page 81
		char cv1 = 'A';
		char cv2 = 1;
		char cv3 =  (char)((int)cv1 + cv2);
		System.out.println(cv3); //4번째 출력문
		
		int iv = 10;
		double iv2 = iv / 4.0;
	}

}

※ 문자를 숫자로 변환

<예시코드>

package ex02;

public class Page83 {

	public static void main(String[] args) {
		String str = "10";
		int a = Integer.parseInt(str);
		int b = Short.parseShort(str);
		int c = Byte.parseByte(str);
		float d = Float.parseFloat(str);
		double e = Double.parseDouble(str);
		int result = a + 10;
	}
}

※ 정수(int) →실수 타입으로 변환

double = (double) 정수;

<예시코드>

package ex02;

public class Q07 {

	public static void main(String[] args) {
		int x = 5;
		int y = 2;
		double result = (double)x / y;
		System.out.println(result);
	}
}

 

※ 기본타입 --> 문자열 변환

String = string.valueOf( );

 

※ 수식 대입하고자 한다면 무조건 타입은 int 이상으로 한다

※ scanner 변수

Sca 입력 후 ctrl + 스페이스바 --> import 생성됨

Scanner 변수명 = new Scanner(System.in); 기본 구문

⇒ System.in : 매개변수 (키보드 입력값)

⇒ new Scaaner : 생성자

<예시코드>

package ex02;

import java.util.Scanner;  // scanner 변수를 만들면 자동으로 생성됨

public class Page95 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); // scanner 변수 설정
		System.out.print("키보드입력");
		String str = sc.nextLine();
		System.out.println(str);
	}
}

※ 아스키코드, 유니코드(자세한 내용은 인터넷 검색)

char = 'A' → 65

char = 'a' → 97

숫자 비교 할 때 ==

문자 비교 할 때 가.equals( " " )

<예시코드1>

package ex02;

import java.util.Scanner;

public class Page96 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str;
		
		while(true) {
			System.out.print("입력:");
			str = sc.nextLine();
			if(str.equals("q")) {
				System.out.println("종료");
				break;
			}
		}
	}
}

<예시코드2>

package Ex03;

public class Ex01 {

	public static void main(String[] args) {
		int a = 10;
		//a = a*-1;
		a = -a;
		System.out.println(a);
		char c1 = 'A'+1;
		char c2 = 'A';
		char c3 = (char)(c2+1);
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		
		int n1 = 10;
		int n2 = 10;
		
		if(n1<n2 || n1 ==n2) {
			
		}
		////////////
		char ch01 = 'a';
		char ch02 = 'b';
		System.out.println(ch01<ch02); // 아스키 코드로 비교 가능하다.
		
		String str01 = "a";
		String str02 = "a";
		String str03 = new String("a");
		System.out.println(str01==str02);// 문자열은 크기는 비교 불가능하지만, 값이 같은지 다른지는 비교가능하다.
		System.out.println(str01.equals(str02));
		System.out.println(str01==str03);// 값은 같지만 주소값이 다르다.
		System.out.println(str01.equals(str03));
		
		char charCode='A';
		if(!(charCode < 48) & !(charCode >57)) {
			
		}
		if (charCode >= 48 & charCode <= 57) {
			
		}
	}
}

자바에서는 반복문 할때 무조건 선언 포함시킬 것 (ex) for( int i = 1; i <=10; i++)

 

<예시코드>

package ex02;

import java.util.Scanner;

public class Q005 {

	public static void main(String[] args) {
		//키보드 입력받아 피라미드를 구현하시오.
		Scanner a = new Scanner(System.in);
		System.out.print("수입력: ");
		int num = Integer.parseInt(a.nextLine());
		
	  for(int i=0;i<=num;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

※ 문자와 숫자가 섞여있을때 변환 문제

package ex02;

public class Q09 {

	public static void main(String[] args) {
		long var1 = 2L;
		float var2 = 1.8f;
		double var3 = 2.5;
		String var4 = "3.9";
		
		int result = (int)var1 + (int)((double)var2 + var3)+(int)Double.parseDouble(var4); 
			System.out.println(result);
	}
}

var1은 int 타입으로 받았으므로 2가 된다.

var2+var3는 double과 int로 받았으므로 4.3 → 4가 된다.

var4는 3.9라는 문자를 숫자로 변환했으며 int는 소수점을 버리기때문에 3이 된다.

따라서 총합은 9가 된다.

'JAVA Programming > Java' 카테고리의 다른 글

[JAVA] 문자열 메서드  (0) 2024.07.02
[JAVA] final필드와 상수  (0) 2024.07.02
[JAVA] 삼항연산자  (0) 2024.06.28
[JAVA] 자료형과 연산자  (0) 2024.06.26
자바 설치 및 기본 세팅  (0) 2024.06.25