[Java] 자바 내용정리2

🌟Java 언어공부2

본 포스팅은 기본 문법 정리를 포함하지 않습니다.

🎯접근 관계

자바에서는 클래스 생성 후 인스턴스를 생성됩니다. 클래스 메소드가 인스턴스 맴버보다 생성시점이 이전이기 때문에 인스턴스 메소드는 클래스 맴버에 접근할 수 있으나 클래스 메소드는 인스턴스 맴버에 접근할 수 없습니다.

🎯this

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 기능을 사용할 수 있습니다. 상속받아 생성한 클래스를 다시 상속하여 새로운 클래스를 만들수도 있습니다. 이를 통해 불필요한 코드사용을 줄일 수 있지만, 프로젝트가 커질수록 구조가 복잡해질 수 있다는 리스크를 가집니다.


Written by@이주형
平常心

GitHubFacebook