과제 일시 : 2019 - 10 - 01
과제 내용
<과제> [8번째 과제] 교재 292 직원 class 작성하고, 아래 물음에 답할 것.
1) 객체변수와 static 변수의 차이점은 무엇인가?
2) 어떤 경우에 static 변수를 사용해야 하는가? 예를 한가지 만 들어서 설명할 것.
3) 직원들의 봉급의 합을 알기 위해서 static 변수 totalSalary 를 만들고, 생성자에서 모든 직원들의 봉급의 합이 계산되도록 코딩하세요.
객체 변수 : 같이 합치지 못하고 따로 설정해야하는 변수에 사용
static변수 : 굳이 나누지 않고, 공통으로 합을 낼 수 있는 변수
Static
보통 변수나 메소드 앞에 static 키워드를 붙여서 사용하고 메모리를 공유하기 위한 용도로 자주 사용됨
보통 사용에 적절한 예는 "오늘 날짜" " 숫자 콤마 추가"등
| [Source Code] |
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
|
// File Name : Employee.java
public class Employee {
private String name;
private double salary;
private static double TotalSalary;
private static int count = 0; // 정직 변수
// 생성자
public Employee (String n, double s) {
name = n;
TotalSalary = TotalSalary + s;
salary = s;
count++; // 정직 변수인 count를 증가
}
//객체가 소멸될 때 호출된다.
protected void finalize() {
count--;
}
// 정적 메소드
public static int getCount() {
return count;
}
public static int TotalSalary() {
return (int) TotalSalary;
}
}
// File Name : EmployeeTest.java
public class EmployeeTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee e1, e2, e3;
e1 = new Employee("김철수", 35000);
e2 = new Employee("신짣구", 135000);
e3 = new Employee("신형만", 135000);
int n = Employee.getCount();
System.out.println("직원 수 [" + n + "] 직원 총 월급 [" + Employee.TotalSalary() + "원]");
}
}
|
cs |
|
실행화면