수업(국비지원)/Java

[Java] chap6 : 클래스와 객체 - 클래스와 객체

byeolsub 2023. 4. 15. 23:08
  • 클래스와 객체
클래스 : 사용자 정의 자료형. 객체화 도구, 객체지향언어에서 가장 중요함.
           자료형 : int, char,double...
           int num => num 변수를 정수형으로 사용
    추상화 과정을 통해서 정의됨.
추상화 : 클래스 생성과정. 주관적 판단으로 필요한 정보만 추출하는 과정 
     속성 : 멤버변수
     기능 : 멤버메서드(함수)
    
객체화 : 클래스를 이용하여 메모리를 할당.
         객체에는 멤버(변수,메서드)값 가진다.   
    참조 변수 = 객체
    참조 변수는 하나의 객체만 참조가능.

 

📌

package chap6;

class Phone {
	String color;  //멤버변수
	boolean power; //멤버변수
	String no;     //멤버변수
	
	void power() { //멤버메서드
		power = !power;  //멤버변수
	}
	void send(String no) {  //멤버메서드
		System.out.println(no + "로 전화 거는 중"); //매개변수 no.
	}
	void receive(String no) { //멤버메서드
		System.out.println(no + "에서 전화 받는 중"); //매개변수 no
	}
}
//구동클래스 : main 메서드가 존재하는 클래스. 프로그램 실행
public class PhoneEx1 {
	public static void main(String[] args) {
		//p1 : 참조변수. Phone 객체를 참조하는 변수
		Phone p1 = new Phone(); //객체화, 인스턴스화.
		/*
		 * new 예약어 기능
		 * 1. 힙영역 메모리 할당
		 * 2. 멤버변수를 기본값으로 초기화
		 *    기본값 
		 *    참조변수 : null
		 *    boolean : false
		 *    숫자    : 0
		 * 3. 생성자 호출
		 * 
		 * = : 참조값을 참조변수에 저장. 
		 */
		p1.color = "검정";
		p1.power = true;
		p1.no = "01012345678";
		System.out.println(p1.color + "," + p1.power + "," + p1.no);
		//멤버 메서드 호출(실행)
		p1.send("01043215678");
		p1.receive("01043215678");
		Phone p2 = new Phone();
		p2.color = "분홍";
		p2.power = true;
		p2.no = "01043215678";
		System.out.println(p2.color + "," + p2.power + "," + p2.no);
		p2.send(p1.no);
		p2.receive(p1.no);
		p1 = p2;
		System.out.println(p1.color + "," + p1.power + "," + p1.no);
		System.out.println(p2.color + "," + p2.power + "," + p2.no);
		p1.color="파랑";
		System.out.println(p1.color + "," + p1.power + "," + p1.no);
		System.out.println(p2.color + "," + p2.power + "," + p2.no);
	}
}