객체 이해하기
- 객체란 무엇인가?
- 객체를 만드는 방법
- 메소드란 무엇인가?
- 객체의 변수와 메소드를 사용하는 방법
객체란 무엇인가?
객체의 사전적 의미는 '의사나 행위가 미치는 대상'입니다. 프로그래밍에서도 같은 의미를 가집니다. 객체는 메소드(함수)와 변수로 구성이 되어있어 프로그램을 작동 시 함수 등에 대한 대상이 됩니다.
객체를 만드는 방법
객체는 메소드와 변수로 구성이 되어있다고 말씀드렸습니다. 메소드(함수)와 변수를 객체화시킬 때에는 class를 이용합니다.
class Car{
String brand;
String name;
int price;
public void sell(){
System.out.println("팔렸습니다.");
}
}
객체를 만든 예시입니다. 객체를 만들기 위해서 class를 선언하고 class의 이름을 작성합니다. 그 후 블록 안에 필요로 하는 변수와 메소드(함수)를 넣어주었습니다. 브랜드 이름과 차 종류는 문자열이기에 String을 사용하였고 가격을 정수형이기에 int를 사용하였습니다. 또한 이러한 객체에서 자주 사용되는 메소드 즉 함수를 만들어 주었습니다.
메소드란 무엇인가?
함수의 일종으로 클래스 내부에서 구현되어 객체의 기능을 제공하는 함수입니다. 객체에서 반복적으로 자주 사용될 함수의 경우 class내에 메소드(함수)로 만들어두면 필요할 때마다 호출하여 사용할 수 있어서 코드가 간결해지고 재사용성이 높아집니다.
class Car{
String brand;
String name;
int price;
public void sell(){
System.out.println("팔렸습니다.");
}
}
위의 예시에서 sell이 메소드입니다. public은 접근 제어자로써 작성을 하였고 void는 함수 즉 메소드를 실행했을 때 결과 값을 반환하는 경우 결과 값의 자료형을 입력합니다. sell은 메소드의 이름입니다. 이름이 있어야 메소드를 불러올 수 있습니다.
객체의 변수와 메소드를 사용하는 방법
public class ObjectTest{
public static void main(String[] args){
Car car1 = new Car(); //car1 객체를 생성합니다.
car1.brand = "BMW"; //car1의 brand변수에 BMW를 입력합니다.
car1.name = "M850i"; //car1의 name변수에 M850i를 입력합니다.
car1.price = 43; //car1의 price변수에 43을 입력합니다.
System.out.println("브랜드 : "+car1.brand);
System.out.println("가격 : "+car1.price);
car1.sale(43, 0.5);
}
class Car{
//Car이라는 객체가 가져야할 객체 변수를 정의합니다.
String brand;
String name;
int price;
//Car객체가 가져야할 메소드를 정의합니다.
public double sale(int carPrice, double saleRate){
double result;
result = carPrice*saleRate;
System.out.println("할인가격 : " + result);
return result;
}
}
Car라는 객체를 생성하고 main함수에서 불러와서 실행하였습니다. 객체 안의 변수와 메소드를 사용하는 방법은 선언한 객체의 이름에.(점)을 붙인 이후 객체에서 선언한 변수의 이름 혹은 메소드의 이름을 적어주시면 됩니다. 이번에는 객체의 메소드의 괄호 안에 int형과 double형의 변수를 넣었는데 이것을 매개변수라고 합니다. 메소드에서 사용될 변수를 받기 위해 받을 데이터의 자료형을 넣어주고 메소드에서 사용할 이름을 작성해주면 됩니다.
브랜드 : BMW
가격 : 43
할인가격 : 21.5
위의 내용을 실행시키면 이와 같은 결과가 나옵니다.