클래스 선언 - 소스 파일명과 동일하게 선언
가변길이 매개변수 (데이터타입 ... 변수명)
필드 : 필드 = 값
생성자 클래스 변수 = new 클래스();
메소드 : 메소드 = (매개값1,매개값2 .....){}; -> return 값이 있으면
오버로딩 - 메소드 이름은 같지만 타입,개수, 순서가 다른 메소드
인스턴스 맴버 - 객체에 소속된 맴버, 객체가 있어야만 사용할 수 있다.
this - 내부에서 인스턴스 필드임을 강조할때 사용할때 사용 (필드명이 같을때 this를 사용하는 것과 안하는 것은 값이 달라질 수있음)
정적(static) 맴버 - 객체 생성 할 필요 없이 클래스를 통해 바로 사용가능 (생성자가 필요 없이 클래스명.필드or메소드명(매개값))
정적 블록 - 복잡한 초기화 작업이 필요할때 static필드를 초기화하는데 사용 ex) static {...}
정적 메소드, 블록은 인스턴스 필드,메소드 사용불가하고 this또한 사용 불가하다.(객체 생성시 사용 가능)
final - 필드 선언 시에 초기값 대입, 생성자에서 초기값 대입을 제외하고는 값 변경불가 ex) final 타입 필드 [=초기값];
상수 - 이름은 모두 대문자 절대 변하면 안되는 수
패키지(Package) - 자바에서 패키지는 단순히 디렉토리(Diretory)만을 의미하지는 않고 패키지 이름은 주로 도메인 이름의 역순 ex)com.naver.Webtoon.projectname
import 문 - 같은 패키지에 있는 클래스는 조건 없이 사용할 수 있지만, 다른 패키지는 import를 맨윗줄에 사용
ex) import com.hankook.클래스명; 다수 클래스 ex) import com.hankook.*;
만약 위에서 hankook.project 패키지 안에 있는 클래스도 사용해야한다면 import com.hankook.project 와 같이 따로 import해야함
import 없이 사용할경우 com.hankook.클래스명 변수명 = new com.hankook.클래스명();
- 여러개를 import하고 사용할 시에 다른 패키지에 같은 클래스명이 있다면 위 같이 사용(안그러면 Error)
접근 제한자
접근 제한자 | 제한 대상 | 제한 범위 |
public | 클래스,필드,생성자,메소드 | 없음 |
protected | 필드,생성자,메소드 | 같은 패키지, 자식 객체만 사용 가능 |
(default) 생략 | 클래스,필드,생성자,메소드 | 같은 패키지 |
private | 필드,생성자,메소드 | 객체 내부 |
Getter와 Seeter
객체 외부에서 마음대로 읽고 변경할 경우 무결성이 깨지는 것을 방지하기 위해 메소드를 통해 필드에 접근 하게 하는 방식.
Setter - 저장할때 사용
Getter (boolean일땐 is) - 읽어올때 사용
싱글톤 패턴
애플리케이션 전체에서 단 한개의 객채만 생성해서 사용하고 싶을때
생성자를 private로 접근 제한
싱글톤 클래스 //private 접근 권한을 갖는 정적 필드 선언과 초기화 private static Singleton(클래스명) singleton(변수명) = new 클래스() //private 접근 권한을 갖는 생성자 선언 private 클래스() {} //public 접근 권한을 갖는 정적 메소드 선언 public static 클래스 getInstance(){ return singleton; } 메인 클래스에서 가져올 때 Singleton obj1 = new Singleton(); <- 생성자 사용 불가 Singleton obj1 = Singleton.getInstance(); |
'Java' 카테고리의 다른 글
[Java 기초 공부] 예외 처리 - finally, try-with-resources (0) | 2024.01.08 |
---|---|
[Java 기초 공부] 예외 처리 - 메서드 내 예외 선언 (0) | 2024.01.08 |
[Java 기초 공부] 예외 처리(exception handling) (0) | 2024.01.04 |
[Java 기초 공부] 중첩 클래스(내부 클래스:Inner class) 와 익명 클래스 (0) | 2024.01.04 |
[Java 기초 공부] 상속(Inherit) (0) | 2023.12.22 |