java 데이터형 및 변수선언

java 데이터형 및 변수선언

식별자

- 식별자 = 이름(클래스, 함수, 변수...) / 사용자가 직접선언

선언 규칙 1) 첫 문자는 영문자 ('_', '$' 특수문자는 가능 but 잘안쓰임)

선언 규칙 2) 대소문자 구별

선언 규칙 3) 공백문자 사용불가

선언 규칙 4) 예약어 사용불가(package, class, int ... )

public class Practice { // .java파일명과 클래스명이 같아야 함

public static void main(String[] args) { //main 함수는 java프로그램의 시작지점

// 메인함수를 순차적으로 실햄

int num = 10; // num 이라는 식별자 선언

boolean result = true // result라는 식별자 선언

int int = 20; // 예약어는 식별자 불가

} // main 함수의 종료지점

}

데이터 형

- 자바가 처리할 수 있는 데이터 종류

- 기본 데이터 형

1) 논리형 : 참 거짓을 판단 - boolean

2) 문자형 : 문자 1개 - char

3) 정수형 : 정수, 형마다 길이가 다름 - byte(8), short(16), int(32), long(64)

4) 실수형 : 실수, 형마다 길이가 다름 - float(32), double(64)

boolean result = true;

char c = 'A'; //작은 따옴표로 감싸야 함

String name = "100"; // 큰 따옴표로 감싸야 함

int age = 24;

long num1 = 100L; // 마지막에 L을 붙여야 함

float xyz = 3.12f // 마지막에 f를 붙여야 함

double abc = 43.2

** print종류

System.out.println("Hello"); //출력후 줄바꿈, 거의 이것만 씀 !!

System.out.printf("나이는 : %d",age); //출력후 줄바꿈 X, 1:1 대응으로 데이터 대입

//%s = string, %d = double, %f = float, %c = char, %b = boolean 자료형을 가져올 수 있음

System.out.print("Hello"); //출력후 줄바꿈 X

- 참조 데이터 형

- 기본 데이터 형에 속하지 않는 모든 데이터형들

- 실제 데이터 값이 아니라 값의 주소를 가지고 있는 변수

ex) string, arr, new...

- 리터럴 : 문자데이터, 한 글자를 표현할 때는 ''작은따옴표를 쓴다

//문자는 아스키코드로 변환되어 저장됨.

char a = '\uD64D'; //유니코드 '홍'반환 , 유니코드는 거의 안씀

char c = 'A'; //65 아스키코드값

char c1 = 'a'; // 96 아스키코드값

System.out.println(c+1); // 66리턴

System.out.println(c1+1); // 97리턴

char c2 = (char)65; //65를 char로 바꿔서(A) c2에 저장

char c3 = (char)(c+1);

System.out.println(c2);

System.out.println(c3);

- 이스케이프 코드

System.out.println("aaa\tbbb"); //이스케이프코드 \t 탭

System.out.println("aaa

bbb"); //이스케이프코드

줄바꿈

System.out.println("aaa\'bbb"); //이스케이프코드 \' '작은따옴표 출력

System.out.println("aaa\"bbb"); //이스케이프코드 \" "큰따옴표 출력

System.out.println("aaa\\bbb"); //이스케이프코드 \\ \역슬래시 출력

변수

- 참조 데이터형의 변수는 실제 데이터가 저장된 위치를 저장하고 있음

- 변수 사용시 다음의 순서로 처리해야함

1) 변수선언 : 변수명을 지정하는 것 / 데이터형 변수명;

2) 변수초기화 : 실제로 데이터를 저장하는 것 / 변수명 = 초기값;

3) 변수값 변경 : 프로그램이 실행되는 과정에서 변수의 값은 바뀔 수 있음

//변수를 사용하여 출력목표: 홍길동 20살 남자이고, 결혼false 입니다. 키는185.63이고 체중은 80.1kg입니다.

//1.변수선언

String name; //참조형변수

int age; //기본형변수

char gender; //기본형변수

boolean isMarried; //기본형변수

float height; //기본형변수

double weight; //기본형변수

//2.변수초기화, 초기화 안된 상태에서는 사용불가

name = "홍길동";

age = 20;

gender = '남'; // 리터럴은 작은따옴표를 쓴다

isMarried = false;

height = 185.63f;

weight = 80.1;

System.out.println(name+" "+age+"살"+gender+"자이고, 결혼"+isMarried+"입니다. 키는 "+height+"이고 체중은"+weight+"kg입니다.");

//변수선언과 초기화 동시에

String name = "홍길동";

int age = 20;

char gender = '남';

boolean isMarried = false;

float height = 185.63f;

double weight = 80.1;

//정수자료형 데이터 크기

byte b = 10; //-128 ~ 127

short b2 = 20; //-32768 ~ 32767

int b3 = 30; //-2147483648 ~ 2147483647

long b4 = 40L; //엄청길음..

//주민번호저장

long ssn = 9407181234567L; //정수로 주민번호 저장

String ssn2 = "9407181234567"; //문자열로 저장

System.out.println(ssn);

System.out.println(ssn2);

데이터 형 변환

- 원래 데이터 형에서 새로운 데이터 형으로 변경

- 작은 크기의 데이터형 → 큰 크기의 데이터형

- 묵시적 형변환 : 자동 형 변환

- 명시적 형변환 : 직접 지정해서 저장해줌

//묵시적 형변환, 자동으로 됨

//작 → 큰 경우 묵시적 형변환

byte b = 10;

short b2 = b;

int b3 = b2;

long b4 = b3;

float b5 = b4;

double b6 = b5;

char n = 'A'; //아스키코드 65

int n2 = n + 1;

System.out.println(n2);

char c = (char)n2; // 아스키코드 66

System.out.println(c); //B출력

//큰→작, 명시적 형변환

int inta = 10;

short shortb = (short)inta; //short자료형의 범위를 벗어나면 이상하게 출력됨

System.out.println(shortb);

블럭

public static void main(String[] args) {

// { } 중괄호로 둘러싸인 한 단위를 블럭이라고 함

// 블럭에 따라 변수의 사용범위 결정

// 로컬변수 : main함수블럭안에 선언된 변수

//1)로컬변수는 선언과 초기화가 되어 있어야 사용가능

//2)블럭이 종료되면 소멸됨

//3)속해있는 블럭에서만 사용가능

int test = 100; //main 함수의 블럭안에 있음

System.out.println(test);

//블럭 a

{

int num =10; //a블럭안에서만 영향을 미침

System.out.println(num);

System.out.println(test);

}

//블럭b

{

int num = 20; //a블럭의 효력이 b까지 미치지 않기 때문에 중복된 식별자를 쓸 수 있음

System.out.println(num);

System.out.println(test);

}

} //main끝

로컬변수, 멤버변수

public class Practice { //클래스 블럭, 출력, 연산불가

//클래스 블럭안에서 할 수 있는 것 : 멤버변수(인스턴스 변수), 멤버함수 코드작성

//1) 클래스 블럭안에서 선언

//2) 초기값을 설정안한 경우 자동초기값 설정

//3) 멤버변수는 속한 클래스에서 new 키워드를 이용하여 객체생성후 자동초기화되고 참조변수를 이용하여 접근

//자동초기값 종류 정수 = 0, 실수 = 0.0, char = '\u0000\(공백), boolean = false, 참조형데이터 = null

String name; //null

char c;// 공백

int m; // 0

boolean result; //false

double dnum; //0.0

public static void main(String[] args) {

//로컬변수 : 메서드안에서 선언 (메서드는 함수라고 생각하면 편함)

//생성시점 : 메서드 호출 ~ 메서드 종료

//메모리 : 스택

//변수사용전 초기화해야함

int n = 1; //로컬변수 :선언 및 초기화 후 사용, 메인함수안에서만 효력, 메인함수 블럭 종료시 사라짐

System.out.println(n); //1출력

Practice p = new Practice(); // 클래스에서 선언된 멤버변수의 객체생성

System.out.println(p);

System.out.println(p.name);

System.out.println(p.c);

System.out.println(p.m);

System.out.println(p.result);

System.out.println(p.dnum);

p.name = "홍길동";

System.out.println(p.name);

}

}

단축키

sysout + Ctrl + space : System.out.println(); 완성시켜줌

Ctrl + alt + 방향키 ↓ : 아래쪽 행에 커서가 있는 데이터를 복붙해줌

Ctrl + '+' or Ctrl + '-' : 소스코드 작성란 확대 or 축소

from http://cocoshin.tistory.com/10 by ccl(A) rewrite - 2021-11-10 01:27:44