on
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