메소드에 변수값 자체를 전달하는 경우 public void countUp(int cnt) { cnt++;} public static void main(String[] args) {int cnt =0;TestObject test = new TestObject(); // TestObject라는 객체 생성test.countUp(cnt);System.out.println("cnt값 : "+cnt);}결과cnt값 : 0cnt값이 1로 증가할 것 같지만 증가하지 않는다. 이유는 countUp() 메소드 안에서 쓰이는 cnt 변수는 main 메소드 안에있는 cnt와 이름만 같을뿐, 영역(?)이 다르다. 각자의 메소드 안에있는 변수값들은 해당 메소드 안에서만 쓰인다.상단의 countUp 메소드는 하단처럼 정의한 것과 ..
추상클래스는 인터페이스와 비슷한 역할을 한다.추상클래스는 추상메소드를 하나라도 포함하면 추상클래스라고 하는데,추상메소드든 클래스든 앞에 abstract를 붙여주면 된다.public abstract class A { public abstract String getName(); // 추상메소드도 인터페이스의 메소드와 마찬가지로 구현부가 없다.} 그렇다면 저 구현부가 없는 getName() 메소드를 어디서 구현해줘야 할까?답은 인터페이스와 같다. 인터페이스는 해당 인터페이스를 implements 하는 클래스에서 메소드의 구현을 해주듯이, 추상클래스도 자신을 상속받는 클래스에서 추상클래스의 구현을 해주면 된다.public class B extends A { public String getName() { retu..
인터페이스 - implements로 부름상속할 클래스(부모클래스) - extends로 부름 ------------------------------------------------------------------[CASE 1] - 자식클래스가 1개인 경우! (여기서 자식클래스는 클래스B를 말함) 1) 부모클래스 Apublic class A {public String name; public String setName(String name) {this.name = name;}} 2) 인터페이스 Bpublic interface B {public String getName(); //안에 구현내용이 없는 메소드 선언했음 -> 이건 B라는 인터페이스를 implements 하는 클래스에서 구현내용을 정의해줘야함} 3)..