728x90
DAY5. 키워드
- Singleton
- final
- Access Modifier
[equals와 ==연산자]
- equals > 값 비교
- == 연산자 > 주소 비교
[단축키]
- ctrl + shift + O > 자동 import
1-1. 싱글톤
- 하나의 애플리케이션 내에서 단 하나만 생성되는 객체
1-2. 싱글톤 생성
- 외부에서 new 연산자로 생성자를 호출 할 수 없도록 private 접근 제한자를 생성자 앞에 붙임
- 클래스 자신의 타입으로 정적 필드 선언
- 자신의 객체를 생성해 초기화
- pirvate접근 제한자를 붙여 외부에서 필드 값 변경 불가 하도록 함
- 외부에서 호출 할 수 있는 정적 메소드인 getInstance()선언
package com.kosta.day05;
class Singleton{
/*2*/static Singleton aa;
int score;
static int score2;
/*1*/private Singleton(){
System.out.println("기본 생성자");
}
/*3*/static Singleton getInstance() {
if(aa==null) aa = new Singleton();
return aa;
}
}
public class SingletonTest {
/* 컴파일 에러
Singleton s1 = new Singleton();
Singleton s2 = new Singleton();
*/
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
//s1과 s2의 주소는 같다.
System.out.println(s1);
System.out.println(s2);
}
}
2. final
- 최종적인 값을 갖고 있는 필드로 값을 변경 할 수 없다.
- final 필드의 딱 한번의 초기값 지정 방법
- 필드 선언 시
- 생성자
public class Person {
final String nation = "한국";
final String ssn;
String name;
public Person(String ssn, String name) {
this.ssn = ssn;
this.name = name;
}
}
3. Access Modifier
- 클래스 및 클래스의 구성 멤버에 대한 접근을 제한하는 역할
접근 제한 | 적용 대상 | 접근할 수 없는 클래스 |
public | 클래스, 필드, 생성자, 메소드 | 없음 |
protected | 필드, 생성자, 메소드 | 자식 클래스가 아닌 다른 패키지에 소속된 클래스 |
default | 클래스, 필드, 생성자, 메소드 | 다른 패키지에 소속된 클래스 |
private | 필드, 생성자, 메소드 | 모든 외부 클래스 |
728x90
반응형
'공부 > JAVA' 카테고리의 다른 글
[JAVA STUDY] DAY4. 객체 / 클래스 / 생성자 / 메소드 / 인스턴스 멤버 / this / 접근제한자 / static (0) | 2021.02.18 |
---|---|
[JAVA STUDY] DAY3. Memory Reference / 배열 / 확장 for / Call / enum (0) | 2021.02.17 |
[JAVA STUDY] DAY2. 조건문 / Random함수 / 반복문 / Scanner (0) | 2021.02.16 |
[JAVA STUDY] DAY 1. 주석 / 변수 / 데이터타입 / 형변환 / 연산자 (0) | 2021.02.15 |