hyeonga_code

Java_13_기본 형식 본문

Java

Java_13_기본 형식

hyeonga 2023. 9. 14. 05:59
반응형

    -- 기본적인 형식
'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
'''

반응형