본문 바로가기

Java37

Ch 02. 객체 지향 입문 - 18. static 응용 - 싱글톤 패턴 (singleton pattern) 싱글톤 패턴이란? 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현 할 수 있음 싱글톤 패턴으로 회사 객체 구현하기 생성자는 private으로 선언 회사는 유일하기 때문임. public class로 두게 되면 외부에서 Company를 여러개 생성할 수 있게 됨 private Company() {} 클래스 내부에 유일한 private 인스턴스 생성 private static Company instance = new Company(); 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공 public static Company getInstance() { if( instance == null) { instance = new.. 2022. 12. 30.
Ch 02. 객체 지향 입문 - 17. static 메서드의 구현과 활용, 변수의 유효 범위 static 메서드 만들기 serialNum 변수를 private으로 선언하고 getter/setter 구현 Employee.java public class Employee { private static int serialNum = 1000; //원래는 static변수를 외부에서 바로 쓰기 위해 public으로 해놨었지만 //serialNum은 기준이 되는 중요한 변수이기 때문에 private으로 변경 private int employeeId; private String employeeName; private String department; public Employee() { serialNum++; employeeId = serialNum; } //Employee에 대해 getter/setter추가 p.. 2022. 12. 30.
Ch 02. 객체 지향 입문 - 16. 여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static 변수 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 '기준 값'이 필요한 경우 학생마다 새로운 학번 생성 카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여 회사에 사원이 입사할때 마다 새로운 사번이 필요한 인스턴스가 여러 개 있을 때 static 변수는 동일한 클래스에서 생성 된 여러개의 인스턴스가 공유할 수 있는 변수이다 static 변수 선언과 사용하기 static int serialNum; : static + 데이터타입 + 변수이름 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 -> 프로그램을 구동시기면 메모리에 올라가게 됨 (이 상태를 Process thread 라고 함) 메모리에는 code 영역과 data 영역이 있는데, .. 2022. 12. 30.
Ch 02. 객체 지향 입문 - 15. 복습해봅시다 (객체 협력) -문제만 주어졌을 뿐 해답은 수업 내용에 없었기 때문에 글쓴이의 개인적 답변임- 다음과 같은 상황을 구현해 봅시다. Taxi.java package ch15; public class Taxi { String studentName; String taxiName; int money; public Taxi(String studentName, int money) { this.studentName = studentName; this.money = money; } public void takeTaxi(Taxi taxi) { taxi.take(10000); this.money -= 10000; } public void showInfo() { System.out.println(studentName +"님의 남은 돈은 .. 2022. 12. 30.