left = 10;
right = 15; //group1의 파라미터
sum(left, right);
avg(left, right); // group1
left = 20;
right = 40; //group2의 파라미터
sum(left, right);
avg(left, right); // group2
left, right 같은 변수들을 주고, 그 변수를 이용해서 계산할 수 있는 메소드들을 그 객체 소속으로 등록해놓는다면 이 값의 상태를 유지하면서 둘 중 하나의 연산도 사용가능
아래 계산기 같은 경우 left, right 값을 받아 더하고 평균을 구해 우리에게 돌려주는 객체를 만드는 예시이다.
class Calculator{
int left, right;
public void setOprands(int left, int right){
this.left = left;
this.right = right;
}
public void sum(){
System.out.println(this.left+this.right);
}
public void avg(){
System.out.println((this.left+this.right)/2);
}
}
public class CalculatorDemo {
public static void main(String[] args){
Calculator c1 = new Calculator();
// 우항은 우리가 아는 메소드 형식이 아님! new 연산자가 붙으며 이것이 바로 객체!
또한 참조변수인 c1(객체를 다룰 리모컨 같은 것)의 데이터 형은 그 객체를 담을 수 있는 데이터 형식을 가지고 있는 변수여야 한다.
c1.setOprands(10,20);
//c1은 우리가 생성한 객체를 가르키고 있고, setOprands라는 메서드를 사용했음
//10, 20을 setOprands 메서드 파라미터로 준 상태
c1.sum();
c1.avg();
//따라서 우린 위의 메소드에 파라미터를 주지 않았지만 값을 출력할 수 있다
Calculator c2 = new Calculator();
c1.setOprands(20,40);
c1.sum();
c1.avg();
}
}
해당 내용을 정리하면,
1) 어떻게 객체를 생성하는가? new 연산자를 사용하여
Calculator(클래스명) c1(참조변수) = new Calculator();
2) 클래스를 만드는 이유?
-> 객체를 생성하기 위해
객체를 만드는 이유?
-> 객체를 사용하기 위해
객체를 사용한다는 것은?
-> 변수와 메서드를 사용한다는 것
[내용출처] 생활코딩 "Java 클래스와 인스턴스 그리고 객체지향"
자바의정석-기초편 "클래스와 객체"