1. static 필드
정적 필드 or 클래스 변수
:클래스의 모든 객체가 공유하는 데이터
-> 객체의 생성이 없어도 항상 사용 가능
-> 어떤 객체도 값을 변경할 수 있음
: 사용방법은 클래스 이름.정적필드
-> 객체변수.정적필드도 가능
2. static 메소드
정적 메소드 or 클래스 메소드
: non-static 메소드와 달리 객체와 무관하게 호출되고 실행됨
-> 메소드 몸체에서 this를 사용할 수 없음
-> static 메소드는 static 필드를 다룸
: 호출방법은 클래스이름.정적메소드()
-> 객체와 무관하므로 클래스 이름으로 호출 가능
-> 객체변수.정적메소드()도 가능
ex) Math.sqrt(2.0);, Integer.parseInt("120");
3. final 필드와 final 메소드
-final 필드
-> 상수 데이터
-> 선언할 때 초기값을 지정해야 함
-> 자주 static과 함께 사용됨
ex)
final static double PI=3.141592;
-final 메소드
: 자식 클래스로 상속은 가능하나 자식 클래스에서 재정의(오버라이딩) 할 수 없는 메소드
4. 필드의 초기화
: 객체를 생성할 때, 데이터 필드에 초기값을 지정하는 것
-> 데이터 필드는 자동으로 초기값(0, false 또는 null)이 주어질 수 있음
-> 클래스 변수(static 필드)는 프로그램이 시작될 때 초기화됨
: 객체 초기화를 위해 초기화 블록을 사용할 수 있음
-> 초기값 지정을 위한 코드로, 클래스 정의에서 메소드 바깥의 임의 위치에 들어갈 수 있음
-> static 필드는 static 초기화 블록을 사용
-필드 초기화 방법의 실행 순서
1. static 필드의 선언문에서 초기화
2. static 초기화 블록 실행
3. non-static 필드의 선언문에서 초기화
4. non-static 초기화 블록 실행
5. 생성자 실행
ex)
5. 메소드 오버로딩
-매개변수의 개수나 매개변수의 자료형이 다르면 같은 이름의 메소드를 한 클래스에서 여러 개 정의 가능
: 매개변수의 개수와 자료형이 일치하면 중복 정의 불가
: 리턴형과 접근 제어자는 구분의 기준이 되지 못함
-메소드를 호출할 때, 가장 가까운 매개변수 목록을 가진 메소드가 호출됨.
// println()이 2개지만, 하나는 매개변수가 있기 때문에 중복 정의 가능함.
6. 클래스와 객체의 사용 예
'방통대 > Java' 카테고리의 다른 글
4강. Java - 클래스와 상속(2) (0) | 2024.03.15 |
---|---|
4-2 상속 (0) | 2024.03.15 |
3강. Java - Java 기본 문법(2), 클래스와 상속(1) 연습 문제 (0) | 2024.03.08 |
3-5 객체의 사용 (0) | 2024.03.08 |
3-4 클래스 정의 (0) | 2024.03.08 |