최신글
hyeonga_code
Java_13_기본 형식 본문
반응형
-- 기본적인 형식
'HelloWorld.java'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package basic;
// 모든 클래스는 패키지 안에 생성합니다.
public class HelloWorld {
// 모든 함수_메소드는 클래스 안에 작성합니다.
public static void main(String[] args) {
// Java의 모든 코드는 함수 안에 작성합니다.
// 기본형 데이터 타입으로 Stack에 값이 저장됩니다.
int a = 10;
int b = 20;
System.out.println(a+b); // > 30
// 참조형 데이터 타입으로 Heap에 실제 값, Stack에 Heap의 주소값이 저장됩니다.
Integer c = 10;
Integer d = 20;
System.out.println(c+d); // > 30
// ???Heap에 있는 데이터를 연산하면 오류가 발생할 수 있습니다???
}
}
|
cs |
'BaseType.java'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package basic;
//모든 클래스는 패키지 안에 생성합니다.
public class BaseType {
// 모든 함수_메소드는 클래스 안에 작성합니다.
public static void main(String[] args) {
// Java의 모든 코드는 함수 안에 작성합니다.
int year = 0; // Stack에 'year=0'이 저장됩니다.
int age = 14; // Stack에 'age=14'가 저장됩니다.
System.out.println("year : " + year); // Stack 공간에 저장된 year 값을 가져옵니다.
System.out.println("age : " + age); // Stack 공간에 저장된 age 값을 가져옵니다.
}
// 함수가 종료된 상태이므로 Stack에 저장되었던 year, age 값을 사용할 수 없습니다.
}
|
cs |
'''
year : 0
age : 14
'''
-- 오류
1
2
3
4
5
6
7
|
{ // 변수를 선언한 범위와 사용할 범위를 분리한 경우
int year = 0; // Stack에 'year=0'이 저장됩니다.
int age = 14; // Stack에 'age=14'가 저장됩니다.
}
System.out.println("year : " + year); // year에 빨간줄이 발생합니다.
System.out.println("age : " + age); // age에 빨간줄이 발생합니다.
|
cs |
'''
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
// 알 수 없는 오류가 main 함수에서 발생했습니다.
year cannot be resolved to a variable
age cannot be resolved to a variable
// '변수 이름' 이 선언되지 않았습니다.
'''
- 스코프가 되어 선언한 변수와 사용하려는 코드의 범위가 다릅니다.
- 모든 변수의 선언은 스코프를 가지므로 동일한 스코프 내에 존재하는 코드에만 적용됩니다.
'BaseType.java'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package basic;
//모든 클래스는 패키지 안에 생성합니다.
public class BaseType {
// 모든 함수_메소드는 클래스 안에 작성합니다.
public static void main(String[] args) {
// Java의 모든 코드는 함수 안에 작성합니다.
int year = 0; // Stack에 'year=0'이 저장됩니다.
int age = 14; // Stack에 'age=14'가 저장됩니다.
System.out.println("year : " + year); // Stack 공간에 저장된 year 값을 가져옵니다.
System.out.println("age : " + age); // Stack 공간에 저장된 age 값을 가져옵니다.
year = age + 1000; // 등호의 오른쪽 연산을 우선 처리한 뒤 왼쪽 변수에 대입합니다.
age = age + 1;
System.out.println();
System.out.println("year + 1000 : " + year);
System.out.println("age + 1 : " + age);
}
// 함수가 종료된 상태이므로 Stack에 저장되었던 year, age 값이 삭제되어 사용할 수 없습니다.
}
|
cs |
'''
year : 0
age : 14
year + 1000 : 1014
age + 1 : 15
'''
- 값을 계속 변경해야할 경우 프로그램을 계속 수정해야 하는 불편함이 생깁니다.
- 변수 값을 데이터베이스에서 읽어오는 방식을 사용하여 모든 상황에서 사용할 수 있게 합니다.
- 두 변수에 저장된 값을 서로 바꾸어 출력하기
'BaseType.java'
=====
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package tistory;
//모든 클래스는 패키지 안에 생성합니다.
public class BaseType {
// 모든 함수_메소드는 클래스 안에 작성합니다.
public static void main(String[] args) {
// Java의 모든 코드는 함수 안에 작성합니다.
// 선언부
int year = 0; // Stack에 'year=0'이 저장됩니다.
int age = 14; // Stack에 'age=14'가 저장됩니다.
int tmp; // 임시로 값을 저장할 변수를 선언합니다.
System.out.println("year : " + year); // Stack 공간에 저장된 year 값을 가져옵니다.
System.out.println("age : " + age); // Stack 공간에 저장된 age 값을 가져옵니다.
// 조작부
tmp = year;
year = age;
age = tmp;
/*
- tmp에 임시로 값을 저장하는 이유
- 값을 유지할 수 없는 Stack의 구조로 인해 상태를 유지하는 것입니다.
- 상태를 변경한다고 합니다.
*/
System.out.println("--Change--");
System.out.println("year : " + year);
System.out.println("age : " + age);
}
}
|
cs |
'''
year : 0
age : 14
--Change--
year : 14
age : 0
'''
반응형
'Java' 카테고리의 다른 글
Java_15_형 변환 Type Casting (0) | 2023.09.15 |
---|---|
Java_14_자료형, 변수, 상수, 오버플로우, 언더플로우 (0) | 2023.09.15 |
Java_12_Java, Javac 이클립스에서 자바 버전 확인하기 (0) | 2023.09.13 |
Java_11_Java 주석 (0) | 2023.09.13 |
Java_10_String[] agrs 사용해보기 (0) | 2023.09.13 |