hyeonga_code

Java_34_별칭 본문

Java

Java_34_별칭

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

 


    - 반복되는 코드 별칭 지정
        - Scope 내의 코드에 대해 별칭을 지정하여 실행할 수 있습니다.
            static void '별칭'('데이터 타입' '매개 변수 이름') {
                별칭으로 지정할 코드
            }

        - 작성 과정
                '별칭' {
                    별칭으로 지정할 코드
                }
                - 외부에서 Scope 내의 변수에 접근할 수 없습니다.
            >>> 별칭은 내부 변수를 초기화 하는 매개 변수_()를 제공합니다.
                        - 매개 변수 이름은 내부 변수 이름과 동일하게 작성합니다.
                '별칭'('매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> Compile 하기 위해 매개 변수의 데이터 타입을 알려주어야 합니다.
                '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> 반환할 데이터 타입을 지정해주어야 합니다.
                void '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> static을 통해 클래스 이름을 통해 객체를 생성하지 않고도 접근이 가능합니다.
                static void '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }

'StudentApp.java'
    '''
// 별칭을 지정합니다.
static void printInfo(Student student) {
/*
- Scope 내의 코드에 대해 별칭을 지정하여 실행할 수 있습니다.
'별칭' {
별칭으로 지정할 코드
}
- 문제
- 외부에서 Scope 내의 변수에 접근할 수 없습니다.
>>> 별칭은 내부 변수를 초기화 하는 매개 변수_()를 제공합니다.
- 매개 변수 이름은 내부 변수 이름과 동일하게 작성합니다.
'별칭'('매개 변수 이름') {
별칭으로 지정할 코드
}
>>> Compile 하기 위해 매개 변수의 데이터 타입을 알려주어야 합니다.
'별칭'('데이터 타입' '매개 변수 이름') {
별칭으로 지정할 코드
}
        >>> 반환할 데이터 타입을 지정해주어야 합니다.
            void '별칭'('데이터 타입' '매개 변수 이름') {
                별칭으로 지정할 코드
            }
            >>> static을 통해 클래스 이름을 통해 객체를 생성하지 않고도 접근이 가능합니다.
                static void '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
 */
System.out.println("printInfo : " + student.studentName);
}

    -----
        // 메소드 별칭
        printInfo(student2);
/*
printInfo : stName1
 */
    '''
=====

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package oop.basic;
//모든 클래스는 패키지 안에 생성합니다.
 
public class StudentApp {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    // 별칭을 지정합니다.
    static void printInfo(Student student) {        
        /*
            - Scope 내의 코드에 대해 별칭을 지정하여 실행할 수 있습니다.
                '별칭' {
                    별칭으로 지정할 코드
                }
            - 문제
                - 외부에서 Scope 내의 변수에 접근할 수 없습니다.
            >>> 별칭은 내부 변수를 초기화 하는 매개 변수_()를 제공합니다.
                        - 매개 변수 이름은 내부 변수 이름과 동일하게 작성합니다.
                '별칭'('매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> Compile 하기 위해 매개 변수의 데이터 타입을 알려주어야 합니다.
                '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> 반환할 데이터 타입을 지정해주어야 합니다.
                void '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> static을 통해 클래스 이름을 통해 객체를 생성하지 않고도 접근이 가능합니다.
                static void '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
         */
        System.out.println("printInfo : " + student.studentName);
    }
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
        /*
            - 'Student.java'에서 작성한 Student 클래스를 사용하기
                1) 클래스 spec을 만족하는 객체를 생성합니다.
                2) 데이터 저장
         */
        
        Student student1 = new Student();    
            /* 
                - 복합형 데이터를 다루는 클래스이기 때문에 new 로 객체를 생성합니다.
                - 대입 연산자의 왼쪽 부터 실행됩니다.
                    - Heap 공간에 Student() 메소드의 객체를 생성합니다.
                        - 클래스의 spec의 조건을 충족시키는지 확인합니다.
                   - Stack 공간에 Heap 공간의 Student() 메소드의 메모리의 주소를 student 변수에 저장
             */
        
        // 데이터 저장
        student1.studentName = "stName1";
        student1.address = "Address 123-123";
            /*
                - 클래스의 spec에 맞는 객체의 정보를 저장합니다.
                    '클래스 이름'.'멤버 변수 이름' = '저장할 값';
             */
        
        // 데이터 출력
        student1.showStudentInfo();
            /*
                Name : stName1
                Address : Address 123-123
                    - showStudentInfo() 함수를 호출하여 실행합니다.
                        - 함수를 작성한 페이지에 가지 않는 한 함수의 자세한 내용을 알 수는 없습니다.
             */
        
        System.out.println(student.studentName);
        
        Student student2 = new Student();    // 새로운 메소드 객체를 생성합니다.
        student2.studentName = "stName2";
        student2.showStudentInfo();
            /*
                Name : stName2
                Address : null
                    - student2 객체와 student 객체는 다른 객체이므로 다른 정보가 출력됩니다.
                    - student2 객체에 address 정보를 저장하지 않았으므로 null 값이 출력됩니다.
             */
        System.out.println();
        
        // 메소드 별칭
        printInfo(student2);
            /*
                printInfo : stName1
             */
    }
}


    >>> 기본적으로 데이터를 처리할 때 클래스에 접근하여 정보를 수정하지 않고 데이터를 수정/가져올 수 있어합니다.
'Student.java'
    '''
        // 3. 멤버 변수 접근
        public String getStudentName() {
            return studentName; // Student 클래스에 선언된 멤버 변수의 값을 반환합니다.
        }

        public void setStudentName(String studentName) {
            // studentName 을 매개 변수로 받아 함수를 호출하고 반환값은 없습니다.
            this.studentName = studentName;
            /*
                this.studentName : Student 클래스에 선언된 멤버 변수입니다.
                    = 
                studentName : 받아온 매개 변수입니다.
            */
        }
    '''
=====

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
33
34
35
36
37
38
39
40
41
42
43
package oop.basic;
//모든 클래스는 패키지 안에 생성합니다.
 
// 기본형, 메소드의 조합입니다.
public class Student {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    // 실행하기 위함이 아닌 spec을 작성하기 위함이므로 main()함수를 작성하지 않습니다.
        /* 
            - 추상화
                - 학생 spec 작성하기
                    - 학번
                    - 이름
                    - 학년
                    - 주소
        */
 
    // 1. 멤버 변수를 선언합니다.
    int studentID;
    String studentName;
    int grade;
    String address;
    
    // 2. 학생의 이름, 주소 출력 메소드 선언
    public void showStudentInfo() {
        System.out.println("Name : " + studentName);
        System.out.println("Address : " + address);
    }
    
    // 3. 멤버 변수 접근
    public String getStudentName() {
        return studentName;    // Student 클래스에 선언된 멤버 변수의 값을 반환합니다.
    }
 
    public void setStudentName(String studentName) {
        // studentName 을 매개 변수로 받아 함수를 호출하고 반환값은 없습니다.
        this.studentName = studentName;
        /*
            this.studentName : Student 클래스에 선언된 멤버 변수입니다.
                = 
            studentName : 받아온 매개 변수입니다.
         */
    }
}



'StudentApp.java'
    '''
// 멤버 변수 접근
Student student3 = new Student();
student3.setStudentName("stName3"); // 값을 저장합니다.
System.out.println("student3.getStudentName() : " + student3.getStudentName()); // 값을 불러옵니다.
System.out.println("student3.studentName : " + student3.studentName); // 값을 출력합니다.
/*
student3.getStudentName() : stName3
student3.studentName : stName3
 */
    '''
=====

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package oop.basic;
//모든 클래스는 패키지 안에 생성합니다.
 
public class StudentApp {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    // 별칭을 지정합니다.
    static void printInfo(Student student) {        
        /*
            - Scope 내의 코드에 대해 별칭을 지정하여 실행할 수 있습니다.
                '별칭' {
                    별칭으로 지정할 코드
                }
            - 문제
                - 외부에서 Scope 내의 변수에 접근할 수 없습니다.
            >>> 별칭은 내부 변수를 초기화 하는 매개 변수_()를 제공합니다.
                        - 매개 변수 이름은 내부 변수 이름과 동일하게 작성합니다.
                '별칭'('매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> Compile 하기 위해 매개 변수의 데이터 타입을 알려주어야 합니다.
                '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> 반환할 데이터 타입을 지정해주어야 합니다.
                void '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
            >>> static을 통해 클래스 이름을 통해 객체를 생성하지 않고도 접근이 가능합니다.
                static void '별칭'('데이터 타입' '매개 변수 이름') {
                    별칭으로 지정할 코드
                }
         */
        System.out.println("printInfo : " + student.studentName);
    }
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
        /*
            - 'Student.java'에서 작성한 Student 클래스를 사용하기
                1) 클래스 spec을 만족하는 객체를 생성합니다.
                2) 데이터 저장
         */
        
        Student student1 = new Student();    
            /* 
                - 복합형 데이터를 다루는 클래스이기 때문에 new 로 객체를 생성합니다.
                - 대입 연산자의 왼쪽 부터 실행됩니다.
                    - Heap 공간에 Student() 메소드의 객체를 생성합니다.
                        - 클래스의 spec의 조건을 충족시키는지 확인합니다.
                   - Stack 공간에 Heap 공간의 Student() 메소드의 메모리의 주소를 student 변수에 저장
             */
        
        // 데이터 저장
        student1.studentName = "stName1";
        student1.address = "Address 123-123";
            /*
                - 클래스의 spec에 맞는 객체의 정보를 저장합니다.
                    '클래스 이름'.'멤버 변수 이름' = '저장할 값';
             */
        
        // 데이터 출력
        student1.showStudentInfo();
            /*
                Name : stName1
                Address : Address 123-123
                    - showStudentInfo() 함수를 호출하여 실행합니다.
                        - 함수를 작성한 페이지에 가지 않는 한 함수의 자세한 내용을 알 수는 없습니다.
             */
        
        System.out.println(student1.studentName);
        
        Student student2 = new Student();    // 새로운 메소드 객체를 생성합니다.
        student2.studentName = "stName2";
        student2.showStudentInfo();
            /*
                Name : stName2
                Address : null
                    - student2 객체와 student1 객체는 다른 객체이므로 다른 정보가 출력됩니다.
                    - student2 객체에 address 정보를 저장하지 않았으므로 null 값이 출력됩니다.
             */
        System.out.println();
        printInfo(student2);
            /*
                printInfo : stName1
             */
        
        // 멤버 변수 접근
        Student student3 = new Student();
        student3.setStudentName("stName3");                // 값을 저장합니다.
        System.out.println("student3.getStudentName() : " + student3.getStudentName());    
            // 값을 불러옵니다.
        System.out.println("student3.studentName : " + student3.studentName);
            // 값을 출력합니다.
            /*
                student3.getStudentName() : stName3
                student3.studentName : stName3
             */
    }
}
반응형