ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 접근 지정자, static
    컴퓨터 공부/JAVA 2020. 3. 26. 11:10

    class의 집합 --> package

    접근 지정자 : private, protected, public, default(생략)

    ¤ public 멤버 -> 모든 클래스

     

    ¤protected 멤버 -> 동일 패키지 (상속받으면 패키지 달라도 접근 가능)

     

    ¤디폴트(default) 멤버 -> 동일 패키지

     

    ¤private 멤버 -> 동일 클래스 (상속 받아도 불가)

     


    static 멤버 --> 클래스 내부에서 공유 (동일 클래스의 모든 객체들에 의해 공유)

    ¤ 객체마다 생기는 것이 아님

    ¤ 클래스당 하나만 생성됨

    ¤ 객체를 생성하지 않고 사용가능 (non-static 접근 불가, this 사용 불가)

     

    --> 전역 변수 / 함수 만들 때, 공유 멤버 작성할 때

     

    static 멤버를 클래스 이름으로 접근하는 사례

    ////////////////////static 멤버를 이용하여 달러와 원화를 변환 해주는 환율 계산기를 만들어보자.
    
    class CurrencyConverter {
    	private static double rate; //  한국 원화에 대한 환율
        
    	public static double toDollar(double won) {
    		return won/rate; // 한국 원화를 달러로 변환
    	}
    	public static double toKWR(double dollar) {
    		return dollar * rate; // 달러를 한국 원화로 변환
    	}
    	public static void setRate(double r) {
    		rate = r; // 환율 설정. KWR/$1
    	}
    }
    public class StaticMember {
    	public static void main(String[] args) {
    		Scanner scanner = new Scanner(System.in);
    		System.out.print("환율(1달러)>> ");
    		double rate = scanner.nextDouble();
            //객체 생성할 필요 없음
    		CurrencyConverter.setRate(rate); // 미국 달러 환율 설정
    		System.out.println("백만원은 $" + CurrencyConverter.toDollar(1000000) +"입니다.");
    		System.out.println("$100는 " + CurrencyConverter.toKWR(100) + "원입니다.");
            
    		scanner.close();
    	}
    }
    

    '컴퓨터 공부 > JAVA' 카테고리의 다른 글

    추상 메소드와 추상 클래스  (0) 2020.03.26
    상속  (0) 2020.03.26
    객체 생성, 접근  (0) 2020.03.26
    객체 지향 언어  (0) 2020.03.26
    java enum  (0) 2020.03.22
Designed by Tistory.