본문 바로가기
방통대/Java

4-1 클래스 정의와 사용

by 꿈꾸는 몽나 2024. 3. 15.
728x90

 

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. 클래스와 객체의 사용 예

728x90

'방통대 > 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