hyeonga_code
Java_34_별칭 본문
- 반복되는 코드 별칭 지정
- 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
*/
}
}
|
'Java' 카테고리의 다른 글
Java_36_멤버 변수 접근 제한 (0) | 2023.09.29 |
---|---|
Java_35_멤버 필드, 멤버 메소드, 매개 변수, 튜플 (0) | 2023.09.28 |
Java_32_클래스 객체 배열 (0) | 2023.09.27 |
Java_31_객체 지향_OOP, 객체 지향 언어, 속성, 객체, 클래스, 멤버 변수, 멤버 메소드, 매개 변수, (0) | 2023.09.26 |
Java_30_배열_Array 다차원 배열 (0) | 2023.09.26 |