OOP-1 : 클래스와 객체

이의준·2024년 5월 27일

Java

목록 보기
22/87

클래스와 객체

  • 클래스의 정의 : 객체를 정의해 놓은 것

  • 클래스의 용도 : 객체를 생성하는데 사용

  • 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념

  • 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름


객체와 인스턴스

  • 객체 : 모든 인스턴스를 대표하는 일반적 용어
  • 인스턴스 : 특정 클래스로부터 생성된 객체 (예: Tv 인스턴스)

하나의 소스파일에 여러 클래스 작성

  • public class가 있는 경우, 소스파일의 이름은 반드시 public class의 이름과 일치해야 함
  • public class가 하나도 없는 경우, 소스파일의 이름은 해당 파일에 있는 클래스 이름 중 하나로 가능
  • 하나의 소스파일에는 둘 이상의 public class가 존재하면 안됨.
  • 클래스 이름은 대소문자를 구분함
    • 하나의 파일에는 하나의 클래스만 작성하는 것이 바람직 하나 public class가 아닌 class의 경우 여러개 있는 것이 가능함

객체의 생성

  • 클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언
    변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t; // Tv클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장

객체의 사용

t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 함
t.channelDown(); // Tv인스턴스의 메서드 channelDown()을 호출함
System.out.println("현재 채널은 " + t.channel + " 입니다.);

서로 다른 변수의 같은 객체 참조

Tv t1 = new Tv();
Tv t2 = new Tv();
t2 = t1; // t2의 주소값이 t1의 주소값으로 변함. -> t1과 t2 모두 하나의 객체를 참조
t1.channel = 7;
  • 위와 같이 여러 개의 참조 변수가 하나의 객체를 참조하는 것은 가능하나 하나의 참조 변수가 여러개의 객체를 참조하는 것은 불가능함

객체의 활용 예시

public class Main {
    public static void main(String[] args) {
        Tv t;
        t = new Tv();
        t.channel = 7;
        t.channelDown();
        System.out.println("현재 채널은 " + t.channel + " 입니다.");
    }
}

class Tv {
    String color;
    boolean power;
    int channel;

    void power() {power = !power; }
    void channelUp() { ++channel; }
    void channelDown() { --channel; }
}

0개의 댓글