12일차 클래스

#클래스

공통요소로 묶자!

#클래스 선언

class 클래스명{

필드(변수, 메서드)

}

#클래스 사용

클래스명 객체명 = new 클래스명();
객체명. 필드;

. : 하위 연산자

A.b : A안에 b

#객체화(인스턴스)

추상적인 개념을 실체화시킨다.

클래스로 접근하지 않고
클래스타입의 객체로 만들어서 그 객체로 접근한다.

#생성자

클래스명()

초기화의 목적이 있다.
메서드와 같은 기능을 가지고 있지만, 리턴이 없으며, 
리턴타입도 없다. 따라서 메서드라고 부르지 않는다.

(예제)

public class Car {
int price;
String color;
String brand;

Car(){}
//항상 만들기 그래야 오류가 나지 않음

Car(int price, String color, String Brand){
	this.price = price;
	this.color = color;
	this.brand = brand;
}

double speedUp(double speed){
	speed++;
	return speed;
}
	
double speedDown(double speed){
	speed--;
	return speed;
}
void showInfo() {
	System.out.println(this);
System.out.println("브랜드:"+this.brand+"\n색상:"+color+"\n가격"+price);
}
//사용한 객체의 주소를 받는것

public static void main(String[] args) {
//객체화 car 클래스를 엄마차로 실체화 시킨것
//인스턴스 변수 (실체화)

// 클래스명 () : 기본생성자(선언하지 않아도 사용가능)
//클래스를 선언하면 자동으로 선언되는 생성자
	//갑자기 오류가 남 내가만든 생성자가 초기값이 되니까

	momCar.brand = "Benz";
	momCar.color ="Black";
	momCar.price = 9000;
	
	momCar.showInfo();
	System.out.println(momCar);
	
}}

클래스
생성자 생성할 때,
Alt+Shift+S > O

생성자 생성 후 Main 안에 이렇게 변수를 넣어주면
아래와 같이 잘나옴! 이것을 숙달해야 함

Car momCar = new Car(9000, "Black","Benz");
	momCar.showInfo();
	Car dadyCar = new Car();
	Car myCar = new Car();

(결과창)

#오버 로딩

같은 이름의 메서드라도
매개변수의 객수 혹은 타입이다르면
선언 가능하다.

(예제) 오버로딩

public class OverLoading {

void add(int num1, int num2) {
	System.out.println("두정수의 합");
	System.out.println(num1+num2);
}

void add(int num1, int num2, int num3) {
	System.out.println("세정수의 합");
	System.out.println(num1+num2+num3);
}

void add(double num1, double num2) {
	System.out.println("두실수의 합");
	System.out.println(num1+num2);
}

public static void main(String[] args) {
	OverLoading o = new OverLoading();
	o.add(10,20);
	o.add(10.5, 20.9);
	o.add(1,2,3);
	
}}

*같은 이름이어도 각 변수의 수에 맞게 잘나온다.

(결과창)


좋은 웹페이지 즐겨찾기