오라클자바커뮤니티/자바
클래스의 이해
sus
2014. 10. 12. 05:02
클래스 : TV의 설계도
객체 : TV
클래스를 인스턴스화 하여 인스턴스(객체)를 생성
TV의 클래스화
속성 : 멤버변수
기능 : 메서드
변수 : 크기, 길이, 높이, 색상, 볼륨, 채널 등
기능 : 커기, 끄기, 볼륨 높이기 / 낮추기, 채널변경하기
package score; public class TvTest { public static void main(String[] args) { Tv t1; // Tv클래스타입의 참조변수 t를 선언 / 메모리에 t를 위한 공간이 마련됨 t1 = new Tv(); // 연산자 new에 의해 Tv클래스의 인스턴스가 메모리의 빈 공간에 생성 / 각 항목들은 기본값으로 초기화 / 대입연산자로 인해서 해당 주소값이 객체t에 지정 t1.channel = 7; // 참조변수 t에 저장된 주소에 있는 인스턴스의 멤버변수 channel에 7을 저장 t1.channelDown(); // t가 참조하고 있는 Tv인스턴스의 channelDown메서드를 호출 channel에 저장되어있는값을 1감소 System.out.println("현재 t1의 채널은 " + t1.channel + "입니다."); Tv t2 = new Tv(); // 새 객체 생성 다른 메모리 주소를 참조하는 빈 항목들을 t2에 지정 System.out.println("현재 t2의 채널은 " + t2.channel + "입니다."); t2 = t1; // 바라보는 참조 주소를 복사 t1.channelUp(); // t1인스턴스가 바라보는 멤버변수 channel의 값을 1증가 System.out.println("현재 t2의 채널은 " + t2.channel + "입니다."); } } class Tv { String color; boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } }