최신글
hyeonga_code
Java_42_캡슐화 본문
반응형
- 객제 지향 언어의 속성
- 은닉화/캡슐화
- 멤버를 숨김
- private 선언
- 간접적으로 접근 가능
- setter 메소드
public void setName(String name) {
// 이름이 중복되었는지 확인 후 수정 기능 가능
this.name = name;
}
- getter 메소드
public String getName() {
return name;
}
- 상속성
- 다형성
- 추상화
- getter와 setter를 사용하여 성적 순위 출력
=====
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
|
package com.java.basic;
import java.util.*;
class Member {
String name;
private int kor, eng;
private int tot;
private int rank;
Member(String name, int kor, int eng) {
// 생성자 선언
this.name = name;
this.kor = kor;
this.eng = eng;
this.tot = kor + eng;
}
public String getName() {
return name;
// 이름 변경 불가
}
public void setKor(int kor) {
this.kor = kor;
}
public int getKor() {
return kor;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getEng() {
return eng;
}
public void setTot() {
tot = kor + eng;
}
public int getTot() {
return tot;
}
public int getRank() {
return rank;
}
public void clearRank() {
rank = 1;
}
public void plusRank() {
rank++;
}
void disp() {
// 출력
System.out.println(name + "'s total score : " + tot + " | Rank : " + rank);
}
}
public class same {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 입력 기능
System.out.print("Input people count: ");
int people = in.nextInt();
// 인원수 입력 받기
Member[] mb = new Member[people]; // 객체 선언부
// 입력받은 인원수 크기의 배열 생성
for (int i = 0; i < people; i++) {
// 인원 수 만큼 입력 받기
System.out.print("Input name: ");
String name = in.next();
System.out.printf("Input %s's kor: ", name);
int kor = in.nextInt();
System.out.printf("Input %s's eng: ", name);
int eng = in.nextInt();
mb[i] = new Member(name, kor, eng); // 객체 생성부
}
for (int i = 0; i < people; ++i) {
// i = 내 성적
mb[i].clearRank();
for (int j = 0; j < people; ++j) {
// j = 다른 학생 성적
if (mb[i].getTot() < mb[j].getTot()) {
// 내 성적이 다른 학생 성적의 총 점보다 작으면
mb[i].plusRank();
// 내 순위를 하나 올린다.
}
}
}
for (int i = 0; i < people; ++i) {
mb[i].disp();
}
}
}
|
반응형
'Java' 카테고리의 다른 글
Java_44_클래스_지정 예약어 (0) | 2023.10.07 |
---|---|
Java_43_지정 예약어 (0) | 2023.10.06 |
Java_41_접근 제한자_public < protected < default < private (0) | 2023.10.02 |
Java_40_this (0) | 2023.10.01 |
Java_39_생성자 (0) | 2023.10.01 |