[JAVA] 객체지향 - 싱글톤(Singleton) 패턴
·
JAVA
싱글톤 패턴 : 싱글톤 패턴의 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 즉, 클래스가 만들 수 있는 인스턴스 개수가 최대 하나인 패턴인 것이다. 사용법 : 생성된 인스턴스는 getinstance( ) 를 통해 접근한다. 인스턴스를 생성할 클래스의 생성자와 변수는 private 으로 선언한다. 인스턴스에 접근할 메서드는 public 으로 선언한다. 외부 클래스에서는 new를 통한 인스턴스 생성은 불가하다. class cat { //private static cat cat = new cat(); private static cat kitty = null; private cat() { System.out..
[JAVA] 객체지향 - getter 와 setter
·
JAVA
getter 와 setter : private으로 생성 된 변수를 다른 클래스 내에서도 사용하기 위해 get / set 을 이용하여 데이터에 접근한다. 왜? 굳이 private 으로 만들고 그렇게 하는 이유는 데이터의 무결성을 지키기 위해서. 무결성이란, 데이터의 정확성과 일관성을 유지하고 보증하는 것 음식의 가격이나 갯수에 음수가 온다면 데이터 형식에 맞지 않는다. 혹은 시험 점수가 -50 점일 수가 없으니까 이러한 데이터의 정확성과 일관성을 유지해 주는 것을 무결성이라고 하고 그걸 아무나 수정하지 못하도록 private 을 통해 실현 하는 것이다. set : setter 는 값 할당만 함으로 반환 값은 void public void set + 멤버변수명 (멤버변수와 동일한 타입 변수) { this.a..
[JAVA] 객체지향 - 접근 제어자
·
JAVA
접근 제어자 : 객체 지향에서 정보 은닉 위해 접근 제어자라는 기능 사용. 접근 제어자를 사용하면 클래스 외부에서의 직접적인 접근을 허용하지 않는 멤버를 설정 해 정보 은닉 구체화 시킴 ① private 접근 제어자 private 접근 제어자를 사용하여 선언된 클래스 멤버는 외부에 공개되지 않으며, 외부에서는 직접 접근할 수 없다. 즉, 자바 프로그램은 private 멤버에 직접 접근할 수 없으며, 해당 객체의 public 메소드를 통해서만 접근할 수 있다. 따라서 private 멤버는 public 인터페이스를 직접 구성하지 않고, 클래스 내부의 세부적인 동작을 구현하는 데 사용된다. package week_two; class Private1 { private int a; // private = 생성 된..
[JAVA] 객체지향 - fianl 키워드
·
JAVA
final final 키워드가 붙은 개체는 한 번 할당 된 후 (초기화 후) 변경할 수 없다. ① final 변수 해당 변수가 생성자나 대입연산자를 통해 한 번만 초기화 가능함 final String a = "안녕"; // final 을 통해 값을 초기화 시켜 주었다면 a = "잘가" // 값 변경은 할 수 없다. 이 문장은 컴파일 에러가 생긴다!!!! ② final arguments (인자) : 인자를 선언할 때 final 키워드를 사용할 수 있다. → final로 선언된 인자는 메소드 내에서 변경이 불가능 class finalTest { public void test(final int number) { // final int number를 인자가 값으로 받겠다. System.out.println(nu..
[JAVA] 객체지향 - 초기화 블록
·
JAVA
초기화 블록(initialization block) : 클래스 필드의 초기화만을 담당하는 중괄호 { }로 둘러싸인 블록을 의미한다. 초기화 블록은 생성자보다 먼저 호출되고, static 키워드의 유무에 따라 두개로 나뉜다. ▶인스턴스 초기화 블록 : 중괄호{ }만을 사용하여 정의 ▶클래스 초기화 블록 : 인스턴스 초기화 블록에 static 키워드를 추가하여 정의 class test { int a; static int b; //일반 초기화 블록 { a = 10; } // static 초기화 블록 static { b = 20; } } 1. 멤버변수 기본 값 자동 할당 → 기본값 : 숫자타입 ( 0 ) / 객체타입 ( null) / boolean (false) 2. 멤버..
[JAVA] 객체지향 - static
·
JAVA
static : static은 '고정된 ' 이라는 의미를 가지고 있으며 static 이라는 키워드를 사용한다. static변수(정적필드)와 static메서드(정적메서드)를 만들 수 있는데 이 둘을 합쳐 클래스 멤버 (정적멤버) 라고 한다. 정적 필드와 정적 메서드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버이다. 따라, 다른 변수와 메서드는 선언을 해야 사용 가능한 것과 반대로 static 은 바로 사용할 수 있다. Static 키워드를 통해 생성된 정적멤버들은 Heap영역이 아닌 Static영역에 할당된다. Static 영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤버를 어디서든지 참조할 수 있는 장점이 있다. 하지만, Garbage Collector의 관리 영역 밖에 존재하기..
해니01_15
코딩구르르르