글 목록

최신 글과 검색 결과
DEVELOPMENT/JAVA

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

간지뽕빨리턴님

이 글의 목차

    반응형
      자바

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

     

     

     

    실행화면