Java

TIL | Java - Class : 클래스 & Object : 객체 생성

개발 공부 2022. 10. 5. 18:51

클래스 생성

사용자 정의 클래스

따로 class를 생성하면 안에 main을 따로 정의하지 않는다.

 

클래스의 구성요소

        • 멤버변수 (Member Variable) : 클래스 안에서 선언된 변수  ex) color, size, model 등등
          • 자동 초기화된다.
          • field 밖에서 사용 가능하다.
            • field는 클래스의 속성과 상태를 나타낸다.
            • field를 멤버변수로 나타낸다.
        • 더보기

          지역변수 (Local Variable) : 메서드 중괄호 안에서 만들어지는 변수. 반드시 초기화가 필요하다.

          밖에서 값바꾸는거 불가능

          • 더보기
            매개변수 (parameter) : 지역변수의 일종, 메서드가 실행될 때 필요한 데이터를 외부로부터 받을 값에 대한 데이터 타입과 변수
        • 메서드 (method) : 연산이나 동적인 기능 표현
        • 생성자 (constructor)
          • class명+소괄호( )
          • 멤버 변수를 초기화 하는데 사용된다. 반드시 있어야 한다.
          • 반환 타입을 적지 않는다. ( = 메서드가 아니다.) 
          • 클래스 이름과 대소문자까지 똑같다.
          • 생성자를 내가 만들지 않더라도 Java Virtual Muchine 이 자동으로 생성자를 만들어준다. (강제로 만들어도 된다.)
          • 생성자는 서로 다른 모형으로 여러개 존재할 수 있다. = 생성자 오버로딩
          • 생성자는 외부에서 매개값을 받을 수도 있다.
          • 주로 사용되는 생성자는 기본 생성자, 멤버변수의 갯수만큼 받아서 초기값을 지정하는 생성자이다.
        • Java Virtual Muchine - 어떤 운영체제든 사용 가능하게 해줌

 

객체 생성

= 참조형 변수

Calculator cal = new Calculator();
//클래스명 //객체명 //new:만들다 //생성자

 

예제)

Phone 클래스

public class Phone {

	//멤버변수 선언
	String model;
	int price;
	String color;
	
	//생성자 - 
	//1. 클래스가 객체로 처음 생성될 떄 불려나가는 친구
	//2. 이름은 클래스명과 동일
	//3. 셍성자를 만들지 않으면 자동으로 생성해 줍니다.
	Phone() {
		System.out.println("생성자 호출됨");
		model = "애니콜";
		price = 1000;
		color = "빨강";
	}
	//생성자는 여러개일 수 있다. 단, 모형이 달라야한다.(매개값 지정)
	Phone(String pModel) {
		model = pModel;
		price = 2000;
		color = "블루";
	}
	Phone(String pModel, int pPrice) {
		model = pModel;
		price = pPrice;
		color = "블랙";
	}
	//매개변수의 변수이름과 타입이 같아도 타입 순서가 다르면 다른걸로 인정!
	Phone(int pPrice, String pModel) {
		model = pModel;
		price = pPrice;
		color = "화이트";
	}
	
	Phone(String pModel, int pPrice, String pColor) {
		model = pModel;
		price = pPrice;
		color = pColor;
	}
	
	//메서드
	void info() {
		System.out.println("===폰의 정보===");
		System.out.println("모델 : " + model);
		System.out.println("가격 : " + price);
		System.out.println("색상 : " + color);
	}
	
}

Phone 메인

public class PhoneMain {

	public static void main(String[] args) {

		//객체1
		Phone red = new Phone();
		red.info();
		
		//객체2
		Phone blue = new Phone("가로본능");
		blue.info();
		
		//객체3
		Phone black = new Phone("세로본능", 3000);
		black.info();
		
		//객체4
		Phone white = new Phone(4000, "세로본능");
		white.info();
		
		//모든 멤버변수를 매개변수로 받는 생성자를 만들고
		//초록, 10000,아이폰을 전달해서 객체생성
		Phone green = new Phone("아이폰", 10000, "그린");
		green.info();
		
	}


}

 

2022.10.05.wed / course11