2022/05 46

싱글톤 패턴

CarClass이라는 객체가 있다. public class CarClass 어떻게 해야 Car 객체의 인스턴스가 하나만 존재하도록 할 수 있을까? private CarClass() { } // 생성자가 private면 아무도 이 객체를 생성할 수 없는데.. 그렇다면 자신을 멤버로 선언해서 메모리에 올려놓자 (static) private static CarClass car new CarClass(); // 이렇게 해도 멤버로 선언된 CarClass 역시 private이다. 외부에서 멤버로 선언된 car을 가져올 수 있는 메서드를 생성하면 된다! public static CarClass getInstance() { return car; } // 이렇게 하면 getInstance 메서드 외에는 CarClass..

Java 2022.05.30

싱글톤 패턴

싱글톤 패턴이란? 프로그램에서 인스턴스가 한 개만 생성되어야 할 때 사용하는 디자인 패턴 static 변수, 메서드 이용해 구현 싱글톤 패턴으로 회사 객체 구현하기 Company@5ca881b5 Company@5ca881b5 public class Company { // 클래스 내부에 유일한 private 인스턴스 생성 private static Company instance = new Company(); // 생성자는 private로 선언 private Company() { } // 외부에서 유일한 인스턴스를 참조할 수 있는 public 메소드 제공 public static Company getInstance() { if(instance == null) { instance = new Company();..

static 변수, static 메소드

static 변수 사원이 입사할 때마다 1씩 증가하는 사번을 주는 식 이가가님의 사번은 1001입니다. 김가가님의 사번은 1002입니다. public class Employee { // 공통 변수 public static int serialNum = 1000; private int employeeId; private String employeeName; private String department; // 값을 "각자" 가지게 한다 public Employee() { serialNum++; employeeId = serialNum; // employeeId 또한 매번 증가한다++ } public int getEmployeeId() { return employeeId; } public void setEmp..

+20 캡슐화, 패키지

p349 캡슐화 1. 변수에 private 붙이기 2. getter/setter 생성하기 캡슐화 안 한 경우 → 개인정보 유출 우려 있음 public static void main(String[] args) { // 메모리 저장 Sawon s1 = new Sawon(); s1.sabun = 1; s1.name = "김가가"; s1.dept = "개발부"; s1.job = "대리"; s1.pay = 3500; Sawon s2 = new Sawon(); s2.sabun = 2; s2.name = "김나나"; s2.dept = "마케팅"; s2.job = "과장"; s2.pay = 4000; System.out.println(s1.sabun + " " + s1.name + " " + s1.job + " " +..

수업 2022.05.30

static, instance 메소드

메소드 앞에 static이 붙어 있으면 클래스 메소드이고, 그렇지 않으면 인스턴스 메소드이다. 어느 경우에 어떤 메소드를 정의해야 할까? 클래스는 데이터(변수)와 관련된 메소드의 집합이므로 같은 클래스 내에 있는 메소드와 멤버변수는 아주 밀접한 관련이 있다. 인스턴스 메소드는 메소드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메소드이다. 인스턴스 메소드도 인스턴스를 생성해야만 호출할 수 있다. 반면에, 인스턴스와 관계 없는 메소드를 클래스 메소드로 정의한다. 클래스 영역에 선언된 변수를 멤버변수라 한다. 멤버 변수는 인스턴스 변수와 클래스 변수를 모두 통칭한다. 1. 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다 생성된 각 인스턴스는 서로 독립적이기 때문에 각 인스턴스 변..

Java/정석 2022.05.29