>> 변수를 사용하는 이유
1. 변수는 값에 의미를 부여하기 위해 사용
2. 단 한번의 값을 기록함으로써 재사용이 가능 => 재사용성을 높여줌
가독성과 재사용이 높아짐으로써 유지보수가 용이해짐
>> 변수 선언 방법
int pay;
변수 타입(자료형) 변수이름;
같은 타입의 변수를 선언할 때는 한꺼번에 선언할 수 있음 ex) int pay, day, time;
변수를 선언하고 난 뒤에 처음 값을 저장하는 것을 초기화(initialization)라고 함.
초기화를 진행하여 넣어준 값을 초기값이라고 함.
>> 식별자(Identifier)
식별자는 클래스명, 메소드명, 변수명 등 사용자가 만들어서 이용하는 고유한 이름
- 식별자를 생성할 때 꼭 지켜야 하는 규칙(안 지키면 안 만들어짐)
1. 대, 소문자를 구분해야 함. 길이 제한은 없음
2. 문자, 숫자, _ , $ 를 식별자에 포함할 수 있음
3. 문자, _ , $ 로 시작할 수 있음 (숫자로는 시작 X)
4. 공백은 포함할 수 없음
5. 키워드(예약어)는 식별자로 사용할 수 없음
- 식별자 이름 규칙(개발자들의 약속)
1. 클래스 / 인터페이스 이름 규칙
: 명사, 형용사를 서술적으로 연결해서 사용
: 첫글자는 대문자로 표기
: 연결된 단어들도 대문자로 표기
ex) HelloWorld, MethodTest
2. 변수 이름 규칙
: 명사적 의미를 갖게 만듦.
: 첫글자를 소문자로 표기, 연결된 단어들은 대문자로 표기
ex) phoneNumber, redApple
3. 메소드 이름 규칙
: 동사적 의미를 갖게 만듦.
: 첫글자는 소문자로 표기, 연결된 단어들은 대문자로 표기
: 메소드명을 짓고 나서 제일 뒤엔 한 쌍의 괄호 "()"가 붙음
ex) calPay(), join()
4. 상수 이름 규칙
: 모든 문자를 대문자로 표기
: 단어와 단어 사이는 _로 구분을 한다.
ex) LOGIN_OK
>> 4가지의 자료형
1. 논리형 자료형 (논리값: true, false)
논리형 자료형에는 true, false가 존재함
2. 숫자형 자료형
1) 정수형
- 정수형에는 4가지 유형이 있다.
- 정수형 예약어: byte, short, int, long 형이 있고, 주로 int형을 사용.
- 정수형은 10진수뿐만 아니라 2진수,8진수, 16진수를 표현할 수 있다.
- 정수형의 기본형은 int이고, long형을 사용할 때는 할당할 숫자 뒤에 "L"을 붙여야 한다.
2) 실수형
- 실수형에는 2가지 유형이 있다.
- 실수형 예약어: float, double 형이 있고, 주로 double을 사용.
- float 형을 사용하려면 할당할 숫자 뒤에 "F"를 붙여야 한다.
3. 문자형
- 단일 문자에는 반드시 홑따옴표를 넣는다.
4. 문자열형
- 참조자료형 -> 주소를 담는다
>> 출력문의 종류
1. System.out.println(); => ln은 줄바꿈 line의 약자
2. System.out.print();
3. System.out.printf("출력하고자하는 데이터형식"); => f는 format의 약자, 줄바꿈x
public class A_Variable {
// 변수의 필요성
// 시급과 근무시간과 근무일수를 곱해서 월급을 계산하는 메소드
public void calPay() {
System.out.println("----------변수 사용하기 전----------");
System.out.println("시급 : 9380원");
System.out.println("근무 시간 : 8시간");
System.out.println("근무 일자 : 5일");
// 주급 = 시급 x 근무시간 x 근무일자
// 출력형식 "홍길동 : oooooo원 형식으로 출력!"
// 문자열은 쌍따옴표("")로 묶어서 처리한다.
// 자바에서 +기호는 값과 값을 붙일 때 사용
// 자바에서 *기호는 곱하기를 할 때 사용
System.out.println("홍길동 : " + (9380 * 8 * 5) + "원");
System.out.println("손길동 : " + (9380 * 8 * 5) + "원");
System.out.println("이길동 : " + (9380 * 8 * 5) + "원");
System.out.println("유길동 : " + (9380 * 8 * 5) + "원");
System.out.println("채길동 : " + (9380 * 8 * 5) + "원");
System.out.println("----------변수 사용 후----------");
// 각각의 시급, 근무시간, 근무일수라는 값을 담을 공간 즉 변수를 만들고 값을 담는다.
int pay = 9400; //시급
int time = 8; // 근무시간
int day = 5; // 근무 일수
System.out.println("시급 : " + pay + "원");
System.out.println("근무 시간 : " + time + "시간");
System.out.println("근무 일자 : " + day + "일");
System.out.println("주길동 : " + pay * time * day + "원" );
System.out.println("임길동 : " + pay * time * day + "원");
System.out.println("변길동 : " + pay * time * day + "원");
} // calPay() 영역 끝
// 변수의 선언
public void declareVariable() {
//System.out.println(pay); 변수는 {} 중괄호 안에서 선언되고 사용됨
//1. 논리형 자료형 (논리값 : true, false)
boolean isTrue; // 1byte
isTrue = true;
boolean isFalse = false;
// 2. 숫자형 자료형
// 1) 정수형
byte bNum = 1; //1byte
short sNum = 2; // 2byte
int iNum = 3; // 4byte -> 보통 제일 많이 사용
long lNum = 4L; // 8byte // 대문자 L, 소문자 l 둘다 가능하지만 L 권장
// 2) 실수형
float fNum = 2.22f; // 4byte
double dNum = 3.333; // 8byte -> 보통 제일 많이 사용
// 3. 문자형
char ch;
ch = 'a'; // 단일 문자에는 반드시 홑따옴표를 넣는다.
// 4. 문자열형 : 참조자료형 -> 주소를 담는다
String str;
str = "abc";
// 1. 9개의 자료형을 선언함
// 2. 9개의 값의 초기화를 진행함
// 3. 9개의 값이 제대로 들어갔는지 확인해보기
// 변수이름 : XX <== 형식은 이렇게 출력
/*
System.out.println("isTrue : " + isTrue );
System.out.println("isFalse : " + isFalse );
System.out.println("bNum : " + bNum );
System.out.println("sNum : " + sNum );
System.out.println("iNum : " + iNum );
System.out.println("lNum : " + lNum );
System.out.println("fNum : " + fNum );
System.out.println("dNum : " + dNum );
System.out.println("ch : " + ch );
System.out.println("str : " + str );
*/
//System.out.println("어쩌고" + 저쩌고);
//System.out.println(isFalse);
//System.out.print(isTrue);
//System.out.print(isFalse);
// 출력문의 종류
// 1. System.out.println() ; => 줄바꿈 line의 약자
// 2. System.out.print();
// 3. System.out.printf("출력하고자하는 데이터 형식"); => f는 format의 약자 , 줄바꿈은 해주지 않음
// => 구멍의 개수와 매꿀 변수의 개수와 순서, 종류가 명확해야 한다.
System.out.printf("isTrue의 값은 %b입니다. \n", isTrue);
System.out.printf("isFalse의 값은%b입니다.\n", isFalse);
// %b : true, false 논리형 변수를 담을 수 있게 뚫어주는 구멍
System.out.println();
System.out.printf("bNum : %d\n", bNum);
System.out.printf("sNum : %d\n", sNum);
System.out.printf("iNum : %d\n", iNum);
System.out.printf("lNum : %d\n\n", lNum);
//%d : byte, short, int, long 정수형 변수를 담을 수 있게 뚫어주는 구멍
System.out.printf("fNum : %.2f\ndNum : %f\n\n", fNum, dNum);
// %f : 실수형 변수를 담을 수 있게 뚫어주는 구멍
// 소수점 아래 7번째 자리에서 반올림 돼서 6번째까지만 출력이 되는 형식
// %.Nf : 소수점 아래에서 N+1번째에서 반올림 되어 N번째까지만 출력이 되는 형식
System.out.printf("소문자 ch : %c\n대문자 ch : %C\n", ch, ch);
System.out.printf("소문자 str : %s\n대문자 str : %S\n\n", str, str);
// %c : 문자형 변수를 담을 수 있게 뚫어놓은 구멍
// %C : 해당 문자형 변수를 담을 수 있지만, 대문자로 변경해서 출력할 수 있게 햊는 포맷
// %s : 문자열형 변수를 담을 수 있게 뚫어놓은 구멍
// %S : 해당 문자열형 변수를 모두 대문자로 변경해서 출력할 수 있게 해주는 포맷
//System.out.printf("계행은 \"\\n\"을 사용합니다");
} // 매소드 영역 끝
// 상수 : 변하지 않는 수
public void constant() {
int khNum;
khNum = 1;
System.out.println(khNum);
khNum = 2;
System.out.println(khNum);
// 상수 : ex) 1760년도부터 올해의 년도까지를 계산하는 메소드
// [표현법] final 자료형 상수이름;
final int START_YEAR = 1760;
double PI = 3.14;
System.out.println(START_YEAR);
}
} // A_Variable 클래스 영역 끝
nextInt(), nextDouble, nextFloat(), nextLong() : 다음 입력받은 특정 자료형을 반환
nextLine() : 사용자가 입력한 값 중 공백이 있을 경우, 공백에 무관하게 한 문장을 모두 출력 ex) 주소
'\n'이 나올때까지 한 라인을 입력받고 '\n\을 버린 나머지를 반환
next() : 사용자가 입력한 값 중 공백이 있을 경우, 공백 이전까지만 입력 받음 ex) 이름
다음 입력받은 것을 반환
public class B_Keyboardinput {
public void inputTest() {
Scanner sc = new Scanner(System.in);
// System.in : 입력받은 값들을 받아들이겠다. (바이트 단위로)
//사용자의 인적사항을 입력받아 출력해보자
//이름, 나이, 성별, 키, 주소,
// 입력받고자 하는 내용을 먼저 질문해서 입력을 유도
System.out.print("당신의 이름은 무엇입니까? : ");
// 사용자가 입력한 값을 문자열로 받아오는 메소드
// nextLine(), next()
String name;
name = sc.nextLine();
System.out.println(name + "님 안녕하세요!");
System.out.print("당신의 나이는 몇 살입니까? :");
int age = sc.nextInt();
System.out.println("당신의 나이는" + age + "입니다.");
System.out.print("당신의 키는 어떻게 되세요? : ");
double height = sc.nextDouble();
System.out.println("당신의 키는" + height + "입니다.");
sc.nextLine(); // 앞에 남은 개행 문자 없애주기
System.out.print("주소가 어떻게 되세요? : ");
String address;
address = sc.nextLine();
//address = sc.next();
System.out.println(address + "입니다.");
// nextLine() : 개행문자를 없애주기 때문에 필요한 경우 한 번 더 사용이 가능하다.
// 버퍼라는 공간에 남아있는 \n을 없애준다.
}
// 메소드 만들기
// 메소드 명 : inputTest2
// 이름, 나이, 성별(M/F), 주소
// ---------- 회원가입 ----------
// 변수(식별자) 생성해서 대입하고
// 각각의 정보 입력받고
// 밑의 형식으로 출력
// ooo님의 이름 : ooo
// ooo님의 나이 : oo
// ooo 님의 성별 : M/F
// ooo 님의 주소 : ooo oo oo
public void inputTest2( ) {
System.out.println("--------- 회원가입 ----------");
Scanner sc = new Scanner(System.in);
System.out.print("당신의 이름은 무엇입니까? ");
String name = sc.nextLine();
System.out.print("당신의 나이는 몇 살입니까? ");
int age = sc.nextInt();
sc.nextLine(); // 앞에 남은 개행 문자 없애주기
System.out.print("성별을 입력하세요. 단, M/F로 입력 : ");
char gender = sc.nextLine().charAt(0); // 먼저 문자열을 입력 받은 후 그 문자열의 0번째 문자를 추출
// 만약에 해당 문자열의 길이보다 더 큰 숫자를 적게 되면
// StringIndexOutOfBounds 오류가 발생한다.
System.out.print("주소가 어떻게 되세요? ");
String address = sc.nextLine();
System.out.println();
System.out.println();
System.out.println(name + " 님의 개인정보");
System.out.println(name + " 님의 이름 : " + name);
System.out.println(name + " 님의 나이 : " + age);
System.out.println(name + " 님의 성별 : " + gender);
System.out.println(name + " 님의 주소 : " + address);
}
}
public class Run {
public static void main(String[] args) {
// A_Variable 클래스의 calPay 메소드 사용하기
A_Variable a = new A_Variable(); //2단계 (생성) 클래스를 대표하는 이름
//a.calPay();
//a.declareVariable();
//a.constant();
B_Keyboardinput b = new B_Keyboardinput();
//b.inputTest();
//b.inputTest2();
//TypeCasting
Example e = new Example();
// e.autoCasting();
e.forceCasting();
}
}
'Programming > JAVA' 카테고리의 다른 글
[JAVA] 반복문 - for문 / do-while문 / Math.random() / 구구단 출력 (1) | 2023.12.22 |
---|---|
[JAVA] 조건문 - if문 / if else문 / switch문 / 관련 예제 (0) | 2023.12.22 |
[JAVA] 논리 연산자 / 삼항 연산자 (1) | 2023.12.20 |
[JAVA] 산술 연산자/ 증감 연산자/ 논리부정 연산자/ 비교 연산자 (0) | 2023.12.20 |
[JAVA] 프로그래밍 기초 / 주석 / 패키지 / 메소드 (0) | 2023.12.20 |