본문 바로가기
반응형

분류 전체보기135

디자인 패턴 1. 싱글톤 패턴(singleton pattern) 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현할 수 있음 어떠한 클래스(객체)가 유일하게 1개만 존재할 때 사용 주로 서로 자원을 공유할 때 사용, 실물 세계에서는 프린터가 해당 (여러 대의 pc가 하나의 복사기를 사용하는 경우) 실제 프로그래밍에서는 tcp socket 통신에서 서버와 연결된 connect 객체에 주로 사용 (socket 하나로 多연결) 기본 생성자를 private로 막고 getInstance()를 제공 싱글톤 패턴으로 회사 객체 구현하기 생성자는 private으로 선언 외부에서 Company를 만들지 못하도록 함 private Company() {} 클래스 내.. 2023. 3. 14.
여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static변수 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생마다 새로운 학번 생성 카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여 회사에 사원이 입사할때마다 새로운 사번이 필요한 경우 static 변수 선언과 사용하기 static int serialNum; 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 클래스변수, 정적 변수라고도 함 인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조 ex) Student.serialNum = 100; static 변수 테스트하기 public class Employee { private static int serialNum = 1000; private int .. 2023. 3. 14.
객체 자신을 가리키는 this this가 하는 일 인스턴스 자신의 메모리를 가리킴 생성자에서 또 다른 생성자를 호출할 때 사용 자신의 주소(참조값)을 반환 함 생성된 인스턴스 메모리의 주소를 가짐 클래스 내에서 참조변수가 가지는 주소값과 동일한 주소값을 가지는 키워드 생성자에서 다른 생성자를 호출하는 this 클래스에 생성자가 여러개인 경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수 있음 public class Person { String name; int age; public Person() { this("이름없음",1); } Public Person(String name, int age) { this.name = name; this.age = age; } } 자신의 주소를 반환하는 this public class P.. 2023. 3. 14.
StringBuffer StringBuffer은 문자열을 추가하거나 변경할 때 주로 사용하는 자료형이다. 1. append append라는 메소드를 이용해서 계속해서 문자열을 추가해나갈 수 있다. toString() 메소드를 이용하면 String 자료형으로 변경할 수 있다. public class Test { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("hello"); sb.append(" "); sb.append("jump to java"); System.out.println(sb.toString()); } } 결과 : hello jump to java StringBuffer 자료형은 String 자료형보다 무.. 2023. 3. 14.
캡슐화(encapsulation) 정보 은닉을 활용한 캡슐화 외부에서 필요한 메소드 한두개만 오픈해서 나머지는 자동으로 생성될 수 있도록 사용할 수 있음. 외부에 꼭 필요한 정보만 오픈. 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만 제공하여 일관된 기능을 구현하게 함. 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화할 수 있다. public class MakeReport { StringBuffer buffer = new StringBuffer(); private String line = "======"; private String title = "이름 \\t 주소 \\t\\t 전화번호 \\n"; private void makeHeader() { buffer.append(line); buffer.appe.. 2023. 3. 14.
반응형