본문 바로가기

이론/Java

OOP) 변수 (Instance, Parameter, Local, Global)

728x90
반응형
  1. 인스턴스 변수
    • 클래스 내부에 선언되지만 메소드 밖에서 선언되며 객체가 생성될 때 메모리에 할당
    • 각 객체마다 별도로 존재하며, 객체의 상태를 나타내는데 사용
    • 자동차 예제에서 "color", "model"임
  2. 멤버 변수
    • 클래스 내부에서 선언되며, 인스턴스 변수와 클래스 변수(정적 변수)를 모두 포함함
    • 인스턴스 변수는 각 객체마다 존재하는 반면, 클래스 변수는 클래스 단위 하나로 모든 객체가 공유함
  3. 지역 변수
    • 메소드 내부에서 선언되며, 메소드가 실행될 때 생성되고 메소드가 종료될 때 소멸함
    • 선언된 메소드 내부에서만 사용 가능
  4. 파라미터
    • 메소드 선언에 사용되는 변수를 말함
    • 자동차 예제에서 "color", "model"임
  5. 전역 변수
    • 프로그램 어디에서나 접근 가능한 변수
public class Student {
    // 멤버 변수 (인스턴스 변수)
    private String name; // 학생의 이름
    private int score; // 학생의 점수

    // 멤버 변수 (클래스 변수, 전역 변수와 비슷한 개념)
    private static int totalScore = 0; // 모든 학생의 점수 합
    private static int studentCount = 0; // 학생 수

    // 생성자
    public Student(String name, int score) { // 파라미터
        this.name = name; // 인스턴스 변수에 파라미터 값을 저장
        this.score = score; // 인스턴스 변수에 파라미터 값을 저장

        totalScore += score; // 클래스 변수에 점수 더하기
        studentCount++; // 클래스 변수 학생 수 증가
    }

    // 평균 점수 계산 메서드
    public static float calculateAverage() {
        return (float)totalScore / studentCount; // 평균 점수 계산하여 리턴
    }

    public static void main(String[] args) {
        // 객체 생성
        Student student1 = new Student("철수", 85);
        Student student2 = new Student("영희", 90);
        Student student3 = new Student("민수", 80);

        // 평균 점수 출력
        System.out.println("학생들의 평균 점수: " + Student.calculateAverage());
    }
}
728x90
반응형

'이론 > Java' 카테고리의 다른 글

Java 배열  (0) 2025.07.06
Java 형변환  (0) 2025.07.06
OOP) 클래스와 객체  (0) 2024.01.02
Java) 변수와 데이터 타입, 연산자  (0) 2023.12.27
Java) 입출력/ 더 빠른 입출력  (0) 2023.08.29