본문 바로가기
728x90

개발공부/Java26

[Java] 10. static 응용 - 싱글톤 패턴(Singleton Pattern) 1. 싱글톤 패턴이란? - 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 - static 변수, 메서드를 활용하여 구현할 수 있음 ex) 날짜 시간(시/분/초), 회사(삼성전자) 아래 클래스 다이어그램을 보면 위에서 부터 클래스 이름(Singleton) 변수(instance) 생성자와 메서드(Singleton, getInstance) (-는 private, +는 public을 의미) 2. 싱글톤 패턴 예제 package ch18; public class Company { private static Company instance = new Company(); // 유일한 객체(인스턴스) 생성 private Company() {} // 여러 개의 객체를 생성하지 못하도록 pr.. 2021. 11. 27.
[Java] 09. Static 변수와 Static 메서드에 대하여...(2) 1. static 메서드 만들기 : serialNum 변수를 private으로 선언하고 getter/setter 구현 - Employee.java package ch16; public class Employee { private static int serialNum = 1000; public static int getSerialNum() { return serialNum; } > System.out.println(Employee.serialNum); ---> Error(직접 호출 불가) > System.out.println(Employee.getSerialNum()); ---> 메서드를 통한 호출은 가능 2. static 메서드(클래스 메서드)에서는 인스턴스 변수를 사용할 수 없다. - static 메서.. 2021. 11. 26.
[Java] 09. Static 변수와 Static 메서드에 대하여...(1) 1. Static 변수란? : 여러 인스턴스에서 공통으로 사용하는 변수 (공유하여 사용) * 그렇다면 공통으로 사용하는 변수가 필요한 경우는 언제일까? - 여러 인스턴스가 공유하는 기준 값이 필요한 경우 - 학생마다 새로운 학번 생성 - 카드 회사에서 카드를 새로 발급할 때마다 새로운 카드 번호를 부여 - 회사에 사원이 입사할 때마다 새로운 사번이 필요 함 2. static 변수 선언과 사용하기 : static int serialNum; - 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 구동되어 메모리에 로딩될 때(process 상태) 메모리를 할당된다. (상수/Literal/static 변수) - 클래스 변수, 정적 변수라고도 함(vs. 인스턴스 변수) - 인스턴스 생성과 상관없이 사용.. 2021. 11. 24.
[Java] 08. 객체협력 프로그래밍 예제 다음과 같은 상황을 구현해보자. ====================================== 아이유는 지각을 해서 택시를 타야 했다. 20,000원을 가지고 있었고 10,000원을 택시비로 사용했다. 택시는 '모범 회사' 회사 택시를 탔다. ====================================== 출력 결과는 아래와 같다. ====================================== 아이유님의 남은 돈은 10000원 입니다. 모범 회사 택시 수입은 10000원 입니다. ====================================== 우선 프로그래밍을 하기 전에 객체를 추리고 각 객체의 멤버변수와 메서드를 리스트업 해야 한다. - 학생 객체 (잔액을 보여주는 메서드, 돈.. 2021. 11. 24.
[Java] 07. 객체 자신을 가리키는 this / 객체 간의 Collaboration 1. this가 하는 일 - 인스턴스 자신의 메모리를 가리킴 - 생성자에서 또 다른 생성자를 호출할 때 사용 - 자신의 주소(참조값)을 반환 함 2. 생성된 인스턴스 메모리 주소를 가짐 - 클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드 > this는 참조변수 day와 동일하게 인스턴스의 주소 값을 가리키고 있다. public void setYear(int year){ this.year = year; } 3. 생성자에서 다른 생성자를 호출하는 this - 클래스에 생성자가 여러 개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있다. - 생성자에서 다른 생성자를 호출하는 경우, 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement 이전에 다.. 2021. 11. 22.
[Java] 06. 접근 제어 지시자, 정보 은닉과 캡슐화 1. 접근 제어 지시자 (access modifier) - 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 - private : 같은 클래스 내부에서만 접근 가능 (외부 클래스, 상속 관계의 클래스에서도 접근 불가) - 아무것도 없음 (default) : 같은 패키지 내부에서만 접근 가능 (상속 관계라도 패키지가 다르면 접근 불가) - protected : 같은 패키지나 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근할 수 없음 - public : 클래스의 외부 어디서나 접근 할 수 있음 2. get()/ set() 메서드 - private 으로 선언된 멤버 변수(필드) 에 대한 접근, 수정할 수 있는 메서드를 public으로 제공 - get().. 2021. 11. 20.
728x90