본문 바로가기
JAVA/객체지향

클래스와 객체

by chogigang 2023. 2. 21.

클래스

 

클래스란 객체를 정해놓은 것입니다. 

 

쉽게 생각해서 설계도 또는 틀 이라고 정의할수 있습니다.

 

 

클래스의 정의  클래스란 객체를 정의해 놓은것입니다.

클래스의 용도  객체를 생성하는대 사용됩니다.

 

 

객체와 인스턴스

클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화 라고 하며, 어떤클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 합니다.

 

인스턴스와 객체는 같은 의미이므로 두용어를 엄격히 구분할 필요는 없습니다.

 

 

객체의 구셩요소 -속성과 기능

 

속성(property)  맴버변수,특성,필드,상태

기능(function) 메서드,함수,행위

 

클래스명 변수명;               //클래스의 객체를 참조하기 위한 참조변수를 선언

변수명 = new 클래스명();  //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장

 

Tv t;                                  //Tv클래스 타입의 참조변수 t를 선언

t = new Tv();                    //Tv인스턴스를 생성한 후. 생성된 Tv인스턴스의 주소를 t에 저장

 

class Ex6_1 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        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--;
            }
 
        
 
        }
 
 
cs

출력 

현재 채널은 6 입니다. 

 

예제 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
class Ex6_2 {
    public static void main(String args[]) {
        Tv t1 = new Tv();
        Tv t2 = new Tv();
        System.out.println("t1의 channel값은 " + t1.channel + "입니다.");
        System.out.println("t2의 channel값은 " + t2.channel + "입니다.");
 
        t1.channel = 7;
        System.out.println("t1의 channel값을 7로 변경하였습니다.");
        
        System.out.println("t1의 channel값은 " + t1.channel+ "입니다.");
        System.out.println("t2의 channel값은 " + t2.channel+ "입니다.");
    
        t2 = t1; // 참조변수 t1의 값을 t2에 저장 
        System.out.println("t2의 channel값은 " + t2.channel +"입니다");
    
    }
}

 

 

 

 

 

 

 

인스턴스는 참조변수를 통해서만 다룰수 있으며, 참조변수의 타입은 인스턴스 타입과 일치해야합니다.

 

 

 

'JAVA > 객체지향' 카테고리의 다른 글

클래스 메서드(static)와 인스턴스 메서드  (0) 2023.02.22
기본형 매개변수와 참조형 매개변수  (0) 2023.02.22
JVM의 메모리 구조  (0) 2023.02.22
변수와 메서드  (0) 2023.02.21
자바 객체지향  (0) 2023.02.21