혁신을 이룹니다, 오딘박스(OdinBOX)

언제나 어디서나 오딘박스와 함께!

[8번째 과제] static 변수와 객체변수의 차이

간지뽕빨리턴님 2019. 11. 24. 20:05
반응형
  자바

과제 일시 : 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

 

 

 

실행화면