본 포스팅은 기본 문법 정리를 포함하지 않습니다.
자바에서는 클래스 생성 후 인스턴스를 생성됩니다.
클래스 메소드가 인스턴스 맴버보다 생성시점이 이전이기 때문에
인스턴스 메소드는 클래스 맴버에 접근할 수 있으나 클래스 메소드는 인스턴스 맴버에 접근할 수 없습니다.
this를 통해 인스턴스 변수에 접근할 수 있습니다.
생성자를 통해 받아야 하는 인자를 강제할 수 있습니다.
생성자를 만들때는 다음의 규칙에 따라 작성합니다.
1. 리턴값이 없습니다.
2. 클래스 이름과 동일하게 이름짓습니다.
객체구조를 정확히 몰라 메소드 관리가 어렵거나,
다른곳에서 쓰이는 객체까지 건드리고 싶지 않을때 상속을 사용합니다.
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);
}
}
class SubstractionableCalculator extends Calculator{
public void substract(){
System.out.println(this.left - this.right);
}
}
public class CalculatorDemo1{
public static void main(String[] args){
SubstractionableCalculator c1 = new SubstractionableCalculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
c1.substract();
}
}
기존의 Calculator에서 substract()기능만을 추가하여
객체 생성시 Calculator 기존 기능에 추가로 substract 기능을 사용할 수 있습니다.
상속받아 생성한 클래스를 다시 상속하여 새로운 클래스를 만들수도 있습니다.
이를 통해 불필요한 코드사용을 줄일 수 있지만, 프로젝트가 커질수록
구조가 복잡해질 수 있다는 리스크를 가집니다.