728x90
메소드 오버로딩(Overloading)
- (같은 클래스 내에)이름이 같은 메소드 작성가능
- 매개변수의 개수나 타입이 서로 다르고 이름이 동일한 메소드들
💡 리턴 타입은 오버로딩과 관련이 없음
public int getSum(int i, int j){
return i + j;
}
public int getSum(int i, int j, int k) {
return i + j + k;
}
- 메소드 호출
객체 소멸
: new 키워드 사용 ( 생성 ) → 할당된 객체 메모리를 다시 JVM의 가용 메모리로 돌려주는 것
C/C++과 다르게 할당받은 객체를 프로그래머가 임의로 소멸 불가
└ 객체 소멸은 JVM 고유의 역할
가비지(gabage)
- 가리키는 레퍼런스가 하나도 없는 객체
- 사용 불가한 메모리
가비지 컬렉션
- JVM의 가비지 컬렉터가 자동으로 가비지 수집 후 반환
- 가비지 발생
public class GarbageEx {
public static void main(String[] args ) {
String a = new String("Good");
String b = new String("Bad");
String c = new String("Normal");
String d, e;
a = null;
d = c;
c = null; // null이 되면 연결이 끊어짐
}
}
- 자바에서 가비지를 자동 회수하는 과정
- 가용 메모리로 반환 → 가용 공간의 증가
- 가비지 컬렉션 스레드에 의해 수행
개발자에 의한 강제 가비지 컬렉션
- System 또는 Runtime 객체의 gc() 메소드 호출
System.gc(); //가비지 컬렉션 작동 요청
패키지
: 관련있는 클래스 파일(컴파일 된 .class )을 저장하는 디렉터리
자바 응용 프로그램은 하나 이상의 패키지로 구성
접근 지정자
: private, protected, public, 디폴트(접근 지정자 생략)
- 접근 지정자의 목적
- 클래스나 일부 멤버를 공개하여 다른 클래스에서 접근하도록 허용
- 캡슐화에 묶인 보호를 일부 해체할 목적(캡슐화 특징에 반하는 개념)
클래스 접근 지정
- public 클래스: 다른 모든 클래스에게 접근 허용
- 디폴트 클래스(접근지정자 생략)
- package-private 라고도 함
- 같은 패키지의 클래스에만 접근 허용
멤버 접근 지정
- public 멤버: 패키지에 관계 없이 모든 클래스에게 접근 허용
- private 멤버: 동일 클래스 내에서만 접근 허용
- 상속 받은 서브 클래스 내에서 접근 불가
- protected 멤버: 같은 패키지 내의 다른 모든 클래스에게 접근 허용
- 상속 받은 서브 클래스는 다른 패키지에 있어도 접근 가능
- 디폴트 (default) 멤버: 같은 패키지 내의 다른 클래스에게 접근 허용
Static 멤버 / non-static 멤버
Static 멤버
: 클래스당 하나만 생성(클래스 멤버라고도 함)
- 객체마다 생성 ❌
- 객체를 생성하지 않고 사용가능
- 특성
- 공간적 특성 - static 멤버들은 클래스 당 하나만 생성
- 시간적 특성 - static 멤버들은 클래스가 로딩될 때 공간 할당
- 공유의 특성 - static 멤버들은 동일한 클래스의 모든 객체에 의해 공유
non-static 멤버
: 객체마다 존재 (인스턴스 멤버라고도 함)
- 특성
- 공간적 특성 - 멤버들은 객체마다 독립적으로 별도 존재
- 시간적 특성 - 필드와 메소드는 객체 생성 후 사용 가능
- 비공유 특성 - 멤버들은 다른 객체에 의해 공유되지 않고 배타적
아래 노션 페이지에 자바 공부 내용에 대해 업로드 합니다!
수정사항이나 질문사항의 경우 노션 댓글로 남겨주세요!(*•̀ᴗ•́*)و ̑̑
개발 환경
작성 플랫폼
728x90
'🧑💻 Language > Java' 카테고리의 다른 글
[Java] 8. 메소드 오버라이딩 (0) | 2021.05.16 |
---|---|
[Java] 7. 상속 (0) | 2021.05.08 |
[Java] 5. 자바의 객체 지향적 특성 (0) | 2021.05.02 |
[Java] 4. 배열과 main() 메소드 (0) | 2021.05.02 |
[Java] 3. 자바 기본 문법 (0) | 2021.05.02 |