하나의 파일에 여러개의 클래스를 만들수 있지만, 예를 들어 Counter라는 .java 파일에는 Counter라는 클래스는 public 으로 선언을 해야된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Updater { public void update(int count) { count++; } } public class Counter { int count = 0; // 객체변수 public static void main(String[] args) { Counter myCounter = new Counter(); System.out.println("before update:"+myCounter.count); Updater myUpdater = new Updater(); myUpdater.update(myCounter.count); System.out.println("after update:"+myCounter.count); } } | cs |
메소드 안에서의 count만 ++되므로 Counter클래스의 count는 변화가 없다. update 메소드는 int count를 전달받았기 때문
1 2 3 4 5 | class Updater { public void update(Counter counter) { counter.count++; } } | cs |
단 객체를 전달받으면 count값을 변경 시킬 수 있는데, 호출 부분에서도 명확하게 해줘야한다.
1 | myUpdater.update(myCounter); | cs |
메소드의 입력으로 객체를 전달받으면 메소드가 입력받은 객체를 그대로 사용하기 때문에 객체의 변경된 속성값이 유지된다.
728x90
'풀스택 > Java다시 복습 처음부터' 카테고리의 다른 글
java 복습 3-4(객체지향 프로그래밍) - 생성자, 오버로딩 (0) | 2019.06.06 |
---|---|
java 복습 3-3(객체지향 프로그래밍) - 상속, 오버라이딩 (0) | 2019.06.06 |
java 복습 3-2(객체지향 프로그래밍) - 메소드 (0) | 2019.06.04 |
java 복습 3-1(객체지향 프로그래밍) - class (0) | 2019.06.04 |
java 복습 2(제어문) java if문,for문,switch문,while문,for each문 (0) | 2019.06.03 |
댓글