본문 바로가기

JAVA

Hello JAVA;

반응형
SMALL
자바의 구성요소

프로젝트 → 패키지 → 클래스 → 메소드 → 소스코드

   * 클래스는 앞글자가 대문자이다.
   * 메소드는 이름뒤에 소괄호가 온다.

 

출력 메소드

의미로는 괄호 안에 있는 값을 콘솔 창에 출력하며, 사용목적은 개발자가 오류를 해결하기 위해 값을 확인할 때 사용한다.

  print() : 전달된 값을 출력하고 줄바꿈이 안 된다.

  println() : 전달된 값을 출력하고 줄바꿈이 된다.
  printf() : 형식(format) 에 맞는 값을 출력하며, 줄바꿈이 안 된다. → 따옴표(" ") 안에 \n을 입력하면 줄바꿈을 할 수 있다.

public class Hellojava {
	public static void main(String[] args) {
		// Hello JAVA;
		System.out.println("Hello JAVA");
	}
}

 

제어문자(Escape string)

반드시 따옴표 안에서 작성하며, 문자열 안에서 사용되며 미리 예약된 특수한 기능을 하는 문자이다.

역슬래시(\)를 사용한다.

ex)

  \n : 줄바꿈, 개행문자
  \t : 일정 간격을 띄어줌(tab)
  \" : 문자열 안에 큰 따옴표를 표현
  \' : 문자열 안에 작은 따옴표를 표현
  \\ : 문자열 안에 역슬래시를 표현

 

변수 및 자료형

변수(variable) : 값을 저장하는 저장공간이며, 값을 재사용하기 위해 사용한다.

 

변수의 특징
1. 변수는 오직 하나의 자료형(data type)만 저장할 수 있다.(변수에는 자료형이 존재)
2. 변수는 오직 하나의 값만 저장할 수 있다.

주소값 : 메모리(RAM)에 저장공간이 할당되면 고유한 값인 주소값이 부여된다.
  *중복이 없음

 

자료형(1byte = 8bit)

자료형 type  byte 값
    정수형      int(기본형) 4  3, 1, 2,,, -17, -1
long 8 3L, 1L, 2L,,, -17L 
     실수형       float 4  3.0F, 1.25F,,, -12.15F
double(기본형) 8 3.0, 5.5, 1.0,,, -17.0
문자형 char 2 'a', 'b', '가', 'c',,
논리형 boolean 1 true, false(참, 거짓)
문자열 String ?? "abc", "가나다", "길동이",,,


*문자 : 작은 따옴표로 감싸진 1개의 문자
*문자열 : 큰 따옴표로 감싸진 0개 이상의 문자

 

변수의 선언

1. 변수를 단순히 선언
    자료형 변수명;
ex) int age;
2. 변수를 선언과 동시에 초기화
    자료형 변수명 = 초기값;
    ex) int age = 10;

3. 여러개의 변수를 선언하는 방법

  자료형 변수명1, 변수명2, 변수명3,,,;

 

*변수 선언시 주의사항
  같은 영역에서 같은 이름의 변수를 선언할 수 없다.
  되도록 소스코드 위쪽에 한꺼번에 선언하며, 되도록 선언과 동시에 초기화를 한다.

 

*변수명 주의사항
  문자부터 시작한다
  특수문자를 쓸 수 없다(단, _와 $는 가능)
  공백을 사용할 수 없다
  키워드(예약어)를 사용할 수 없다
  되도록이면 소문자로 시작(대소문자 구분됨)
  되도록이면 의미있는 이름으로 사용하며, 한글은 사용하지 않는다.

카멜표기법 : 공백을 가지게 되는 이름의 첫글자를 대문자이다.
  userAge
  userName

스네이크표기법 : 공백대신 언더바를 사용한다.
  user_age
  user_name

public class Variable {
	public static void main(String[] args) {
		// 변수 선언
		int month;
		String season;

		// 변수에 값을 저장
		month = 10;
		season = "가을";

		// 변수를 출력
		System.out.println(month);
		System.out.println(season);


		// 변수를 선언과 동시에 초기화
		int date = 9;
		System.out.println(date);


		// 변수 여러개 선언
		String lastName, firstName;
		String lastName="이", firstName="태경";


		// 주어진 값과 자료형을 가지고 선언과 동시에 초기화 하기
		// int(10) double(172.0), float(17.2), String(본인의성), boolean(true), char('M')

		int age = 10;
		double height = 172.0;
		float declare = 17.2F;
		String lastName = "이";
		boolean istrue = true;
		char gender = 'M';

		System.out.println(age);
		System.out.println(height);
		System.out.println(declare);
		System.out.println(lastName);
		System.out.println(istrue);
		System.out.println(gender);

	}

}

 

변수 및 상수의 사용

data 변수를 저장공간으로 볼지, 값으로 볼지가 중요하다.
int data = 20; // 저장공간
data + 7; // 값
System.out.println(data + 7); // 값

ex) data = data + 17; // 앞 data : 저장공간, 뒤 data : 값

 

상수(항상 그대로인 수)
값을 변경할 수 없도록 한다.
final 자료형 상수명 = 값;
단, 상수명은 전부 대문자로 약속한다.

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

		// 상수
		final int PASSWORD = 1566; // 상수는 대문자로 입력하며, final을 사용한다.
		PASSWORD = 1577; // 상수이기 때문에 재할당을 하게되면 err가 난다.
		System.out.println(PASSWORD); // 1566

		// 변수
		int pw = 1566;
		pw = 1577; // 변수이기 때문에 새로 정의한 값으로 출력된다.
		System.out.println(pw); // 1577
	}
    
}

 

서식문자

출력 형식을 지정하며, %로 시작하며 printf()에서 사용한다.

반드시 따옴표 안에서 작성하며,  쉼표 ',' 뒤에 나오는 값이 형식 지정자 위치로 들어가게 된다.

ex) System.out.printf("오늘의 날씨는 %s입니다", "맑음");


%o  octal(8진수 정수)
%d  decimal(10진수 정수)
%x  hexadecimal(16진수 정수)
%f  float(실수) → 소수점 6자리 까지 출력된다. (컴퓨터가 알고 있는 가장 정확한 자리수)
%c  character(문자)
%s  string(문자열)

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

		String weather = "맑음";
		int month = 10;
		int date = 8;
		double max = 16.2;
		double min = 8.137;

		System.out.println("오늘은 " + month + "월 " + date + "일입니다."); // 위아래 같은 값을 출력한다.
		System.out.printf("오늘은 %d월 %d일입니다.\n", month, date); //오늘은 10월 8일입니다.

		System.out.printf("오늘은 날씨 %s입니다.\n", weather); // 오늘은 날씨 맑음입니다.
		System.out.printf("오늘은 날씨 %s입니다.\n", "맑음"); // 값으로 넣어도 되나 위에처럼 변수의 값을 넣는게 효율적이다.

		System.out.printf("오늘은 최고기온은 %f도 입니다.\n", max); // 오늘은 최고기온은 16.200000도 입니다.
		System.out.printf("오늘은 최처기온은 %f도 입니다.\n", min); // 오늘은 최처기온은 8.137000도 입니다.
		System.out.printf("오늘은 최저기온은 %.2f도 입니다.\n", min); // 오늘은 최저기온은 8.14도 입니다. // 둘째자리까지 출력되며, 반올림 되어서 출력된다.

		// 정수
		System.out.printf("코카콜라의 가격은 %05d원입니다.\n", 5); // 코카콜라의 가격은 00005원입니다. // 5자리이며, 나머지는 0으로 채우고, 오른쪽정렬이다.
		System.out.printf("코카콜라의 가격은 %-5d원입니다.\n", 5); // 코카콜라의 가격은 5    원입니다. // 5자리이며, 왼쪽정렬이다.

		// 문자열
		String menu = "펩시콜라";
		System.out.printf("%.2s의 가격은 1000원 입니다\n", menu); // 펩시의 가격은 1000원 입니다 // 세번째 자리에서 반올림한 후 두번째 자리부터 출력, 몇 글자가 출력될건지 정한다.

		// 원주율을 반올림하여 3.1416으로 출력하려고 합니다.
		// printf()를 사용하여 출력(값 수정x)
		double parameter = 3.14159265358979;

		System.out.printf("원주율 = %.4f\n", parameter); // 원주율 = 3.1416

	}

}

 

형변환(type casting)

자동 형변환
  정수 + 실수 = 실수
  ex) 1 + 1.0 = 2.0
  문자 + 정수 = 정수
  ex) 'A' + 1 = 66

강제 형변환
  (자료형) 변환 가능한 값
  ex) (int)3.14 = 3

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

		// 자동 형변환
		int num1 = 5;
		double num2 = 17.2;

		System.out.println(num1 + num2);

		// 문자 + 정수 = 정수
		int num3 = 1;
		char word = 'A'; // 65
		System.out.println(num3 + word); // 66정수로 출력된다. 아스키 코드 참조

		// 강제 형변환
		System.out.println((int) 10.2345);  // 10
		System.out.println((double) 10); // 10.0
		System.out.println((char) 70); // F // 70을 문자형으로 하면 F이다.

	}

}

ASCII Table

 

문자열의 형변환

1. 다른 자료형 → 문자열
  기본 자료형과 빈 문자열을 연결(+) 시켜서 형변환 한다.
  기본 자료형과 + ""(빈 문자열)
  3 + "" = "3"
  1.25 + "" = "1.25"

2. 문자열 → 다른 자료형
  문자열 자료형은 int, double, char, boolean과 같은
  기본 자료형이 아닌 클래스 타입이기 때문에 해당 클래스의 메소드로 형변환을 시킨다.

  정수형 Integer.parseInt("문자열")
  실수형 Double.parseDouble("문자열")
  논리형 Boolean.parseBoolean("문자열")
  문자형 문자열.charAt()

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

		// ctrl + shift + f = 코드 자동 정렬

		// 문자열은 +가 연산이 아닌 연결
		System.out.println(3 + 5); // 8
		System.out.println("3" + "5"); // 35

		// 다른 자료형 -> 문자열 형변환 // 빈 문자열을 더해야 한다.
		String intStr = 10 + "";
		String douStr = 10.3 + "";
		String charStr = '가' + "";
		String boolStr = false + "";

		System.out.println(intStr + douStr + charStr + boolStr); // 1010.3가false

		// 문자열 -> 다른 자료형
		int num = Integer.parseInt("117");
		// int num2 = Integer.parseInt("117.8"); // int 정수형이 아니고 실수형 double이기 때문에 err가 난다.

		System.out.println(num); // 117
		System.out.println(num2); // err

		double num2 = Double.parseDouble("10");
		System.out.println(num2); // 10.0

	}

}

 

입력 메소드

입력하기 전에 출력을 통해서 이떤 값을 입력해야 할지 사용자에게 알려줘야 한다.
import java.util.Scanner; 를 통해서 먼저 불러온 다음에 사용해야 한다.
ctrl + shift + o 하면 자동으로 import된다.
입력 클래스가 없는 상태에서 ctrl + shift + o 하면 import 한 것이 자동 삭제된다.

입력 클래스 
  Scanner sc = new Scanner(System.in); // sc는 변수 값이다.

  Scanner 에서  ctrl + spacebar를 누를 시 해당 정보를 확인할 수 있다. 

입력 메소드
  next() : 사용자가 입력한 문자열 값
  사용자가 입력한 값 중 공백 또는 줄바꿈 문자를 구분점으로 각 문자열을 분리한다.
  첫번째 문자열은 첫번째 next()에 담고 두번째 문자열은 두번째 next()에 담는다.
  nextLine() : 사용자가 입력한 문자열 값
  공백 또는 줄바꿈 문자도 값으로 취급하기 때문에 그대로 입력받는다.

  nextInt() : 입력받은 값을 정수형으로 저장한다.

import java.util.Scanner; // ctrl + shift + o 하면 자동으로 import된다.

public class InputTest {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in); // ctrl + shift + o

		System.out.println("이름을 입력하세요.");
		
		String name = null; // 입력을 받지 않은 상태에서 아무런 값이 없다는 초기화를 한 상태이다.
		name = sc.next();
		
		System.out.println(name + "님 환영합니다.");
		
        // next()
		String name2 = null;
		name2 = sc.next();
		System.out.println(name + name2 + "님 환영합니다.");

		// nextLine()
        String name3 = null;
		name3 = sc.nextLine();
		System.out.println(name3 + "님 환영합니다.");

		// nextInt()
		Scanner sc = new Scanner(System.in);
		int num1 = 0; // num1을 초기화한 상태이다.
		System.out.println("정수를 입력하세요.");
		num1 = sc.nextInt();
		System.out.println("나이 차이는 " + (30 - num1) + "입니다.");
        // 정수 5를 입력받을 경우 // 나이 차이는 25입니다.

	}

}

 

반응형
LIST

'JAVA' 카테고리의 다른 글

클래스  (0) 2022.11.06
메소드  (0) 2022.10.30
배열  (0) 2022.10.23
제어문  (0) 2022.10.19
연산자(Operator)  (0) 2022.10.17