-
접근 지정자, 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(); } }