JAVA

객체

청춘고양이 2022. 6. 6. 21:07
반응형

객체란 공간을 차지하는 사물로써 프로그래밍으로써 객체는 메모리 공간을 차지하는 사물의 일부데이터 집합이다. 이러한 객체는 클래스로써 표현할 수 있으며 클래스는 멤버변수와 생성자 메서드를 가진다고 볼 수 있다. 멤버변수는 클래스내에서 지정하는 값이며 클래스를 나타낼 수 있는 대표적인 값이라고 생각하자. 그리고 우리는 객체 생성시 필요한 초기값을 설정하는데 이것을 생성자라고 약속 지었다. 그렇다면 지금 만들어진 클래스는 멤버변수와 만들어졌을 때 필요한 초기값을 설정하는 생성자만 있다. 즉, 클래스의 기능을 나타내줄 무언가가 없는데 이것이 바로 메소드이다.

public class C00Info {
	//객체(일반) : 존재(공간을 차지) 사물
	//인스턴스(자바객체) : 메모리 공간을 차지하는 사물의 일부데이터 집합
	
	//객체의 구성요소
	//속성:지니고 있는것,명사형, 멤버변수로 공간형성
	//기능:할 수 있는것,동사형,멤버매서드로 구성
	
	//클래스?
	//동일한 종류의 객체를 생성하기 위해 미리 선언된 자료형 
	
	//CF)기본자료형 : int,double,float,char,..boolean
	
	//객체 생성 기본 코드
	
	//클래스자료형 참조변수 = new 클래스생성자();
	
	//new : 객체의 저장위치 지정(힙영역) 
	//클래스 생성자 매서드: 객체 생성시 필요한 초기값을 설정 
	//참조변수 :	생성된 객체를 연결해서 사용하기 위한 변수
	
	// cf) 자바의 메모리 블럭
	//	스택영역	:참조변수,일반변수 저장	{}내에서 생성 {}벗어나면 공간 소멸
	//	힙영역	:객체		new 예약어 생성 , 소멸은 가비지컬렉터에 의해 자동(참조변수=null)
	//	클래스(매서드)영역	:공유메모리 영역

	//1)      2)   3)  4)
	//Scanner sc = new Scanner(System.in);
	//1) Scanner : 클래스 자료형
	//2) sc : 참조변수
	//3) new : 힙영역에 객체 생성
	//4) Scanner() : 생성자, 멤버변수의 초기값을 설정
}

기본 객체 생성(method x)

public class C01Car {
	String owner; //멤버변수
	int speed;	//멤버변수
	int fuel;	//멤버변수
}
public class C01CarMain {

	public static void main(String[] args) {
		C01Car hong = new C01Car();
		hong.owner="홍길동";
		hong.speed=0;
		hong.fuel=100;
		System.out.println("소유자 : " + hong.owner);
		System.out.println("현재속도 : " + hong.speed);
		System.out.println("연료량 : " + hong.fuel);
		

	}

}
class C02Person{
	String name;
	int age;
}

public class C02PersonMain {	
	public static void main(String[] args) {
		
		C02Person hong=new C02Person();
		hong.name="홍길동";
		hong.age=40;
		
	}
}

기본 객체 생성(method o)

class C04Computer{
	String SN;
	String CPUSpec;
	String RAMSpec;
	String DISKSpec;
    
    //컴퓨터를 키고 끄고 컴퓨터의 내용을 보여주는 메소드 생성
	void PowerON() {
		System.out.println(SN + "전원을 켭니다");
	}
	void PowerOFF() {
		System.out.println(SN + "전원을 끕니다");
	}
	void ShowInfo() {
		System.out.println("SN : " + SN);
		System.out.println("CPU : " + CPUSpec);
		System.out.println("RAM : " + RAMSpec);
		System.out.println("DISK : " + DISKSpec);
	}
}

public class C04ComputerMain {

	public static void main(String[] args) {
		C04Computer LGGram1122 = new C04Computer();
		LGGram1122.SN ="11-22-33";
		LGGram1122.CPUSpec="I7";
		LGGram1122.RAMSpec="16G";
		LGGram1122.DISKSpec="1T";
		LGGram1122.PowerON();
		LGGram1122.ShowInfo();
		LGGram1122.PowerOFF();
		
	}

}
반응형